跳至页脚内容
USING IRONBARCODE

How to Generate Barcodes in Xamarin Using IronBarcode

在 Xamarin 应用程序中创建条形码不必复杂或耗时。 借助 IronBarcode,开发人员只需几行 C# 代码即可在 Android 项目和 iOS 平台上生成专业品质的条形码和二维码。 这个全面的 .NET 条形码库消除了对特定于平台的实现的需求,同时提供了企业级功能,可在您的 Xamarin Forms 或原生 Xamarin 项目中在所有移动设备上保持一致。

本文通过代码示例演示了如何使用 IronBarcode 在跨平台移动应用程序中实现强大的条形码生成系统。 您将学习如何通过 NuGet 安装库,生成各种条形码格式(包括二维码),使用颜色和注释自定义其外观,并将其导出为多种文件格式。 IronBarcode 可以做到这一切,同时保持代码简洁易维护,并且能够在 Android 和 iOS 平台上无缝运行。

为什么 Xamarin Forms 需要使用专业的条形码库?

在 Xamarin.Forms 中从头开始实现条形码生成需要处理复杂的编码算法、管理平台特定的渲染差异,并确保在各种条形码符号体系中都能准确输出。 专业的 .NET 条形码库,例如 IronBarcode,通过提供统一的 API 来消除这些挑战,该 API 通过简单的 C# 方法在内部处理所有技术复杂性。

IronBarcode 支持 30 多种条形码格式,包括 QR 码、Code 128、Code 39、EAN-13、UPC-A、Data Matrix、PDF 417 和 Aztec 码。 每种格式都针对特定使用场景进行了优化。 例如,二维码擅长存储网址和大段文本数据,EAN13 用于零售产品,而 Code128 提供高密度字母数字编码。 该库会自动计算校验和,应用适当的纠错级别,并确保符合 GS1 标准,以满足商业应用需求。

IronBarcode 的跨平台特性确保无论您面向的是 Android 移动平台还是 iOS 移动平台,您的条形码生成代码都保持不变。 这种一致性不仅限于 Xamarin 应用程序——相同的代码可以在 ASP.NET应用程序、桌面软件甚至 Docker 容器中运行,使其成为具有多样化部署需求的企业的理想选择。 该库内置的图像处理功能可以自动处理分辨率缩放和格式转换等常见问题。 了解更多关于IronBarcode跨平台功能的信息

如何在 Xamarin 项目中安装 IronBarcode?

通过 NuGet 包管理器,只需几分钟即可在 Xamarin.Forms 项目中安装 IronBarcode。 打开包含跨平台移动项目的 Visual Studio 解决方案,并按照以下步骤与现有的 .NET 代码无缝集成。

首先,在解决方案资源管理器中右键单击您的解决方案,然后选择"管理解决方案的 NuGet 程序包"。 在"浏览"选项卡中,搜索"IronBarCode"(注意大小写)。 选择 Iron Software 的官方 IronBarcode 软件包,并将其安装到解决方案中的所有项目中,包括共享项目和两个特定于平台的项目。 您还可以查看完整的 NuGet 包详细信息,了解版本历史记录和依赖项。

或者,您可以使用包管理器控制台,通过以下命令快速安装到您的 Xamarin 条形码生成器项目中:

Install-Package BarCode

对于 Android 应用程序项目,创建基本条形码不需要额外的权限。 但是,如果您计划将生成的扫描条形码保存到外部存储,请在AndroidManifest.xml文件中添加WRITE_EXTERNAL_STORAGE权限。有关详细的平台注意事项,请参阅Android 专属的实现指南

对于 iOS 项目,如果您要将二维码或条形码保存到照片图库,请将 NSPhotoLibraryAddUsageDescription 键添加到 Info.plist 文件中,并添加适当的描述。 iOS条形码实现文档提供了完整的设置说明。

要使用 IronBarcode 的全部功能且不带水印,您需要一个许可证密钥。 您可以从 Iron Software 网站获得免费试用许可证,该许可证可在 30 天内完全访问所有条形码生成功能。 在应用程序启动代码中设置一次许可证密钥:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

如果没有许可证密钥,IronBarcode 将以评估模式运行,生成的条形码上会带有水印。 对于生产应用,Iron Software 提供各种许可选项,包括单项目许可、组织级许可和专为移动应用部署量身定制的 SaaS 分发许可。

如何生成您的第一个条形码?

在 Xamarin.Forms 应用程序中使用 IronBarcode 创建您的第一个条形码只需要极少的 C# 代码。 以下是一个完整的示例,演示如何在您的移动应用中生成 Code128 条形码:

using IronBarCode;
using System.IO;
public void GenerateSimpleBarcode(object sender, EventArgs e)
{
    // Create a barcode with one line of code
    var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.Code128);
    // Resize to specific dimensions
    myBarcode.ResizeTo(500, 200);
    // Add text annotations
    myBarcode.AddBarcodeValueTextBelowBarcode();
    // Save as image
    string filePath = Path.Combine(Environment.GetFolderPath(
        Environment.SpecialFolder.Personal), "barcode.png");
    myBarcode.SaveAsPng(filePath);
}
using IronBarCode;
using System.IO;
public void GenerateSimpleBarcode(object sender, EventArgs e)
{
    // Create a barcode with one line of code
    var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.Code128);
    // Resize to specific dimensions
    myBarcode.ResizeTo(500, 200);
    // Add text annotations
    myBarcode.AddBarcodeValueTextBelowBarcode();
    // Save as image
    string filePath = Path.Combine(Environment.GetFolderPath(
        Environment.SpecialFolder.Personal), "barcode.png");
    myBarcode.SaveAsPng(filePath);
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

BarcodeWriter.CreateBarcode() 方法作为 .NET 应用程序中生成条形码的主要入口点。 它接受两个元素:要编码的数据和来自 BarcodeEncoding 枚举的条形码格式。 该方法返回一个 GeneratedBarcode 对象,该对象通过流畅的 API 提供丰富的自定义选项。有关高级功能,请参阅完整的BarcodeWriter API 参考文档

ResizeTo()方法调整条形码尺寸,同时保持所选符号体系的适当纵横比和条宽要求。 AddBarcodeValueTextBelowBarcode() 方法会在条形码下方添加人类可读的文本,这对于 Xamarin 中的许多零售和库存管理应用程序至关重要。

输出

如何在 Xamarin 中使用 IronBarcode 生成条形码:图 10 - PDF417 输出

生成二维码

在 Xamarin 条形码扫描器应用程序中生成二维码的过程同样简单,只需使用专门的 QRCodeWriter 类即可:

public void GenerateQRCode()
{
    // Create a QR code with custom data
    var qrCode = QRCodeWriter.CreateQrCode("SKU-12345|Batch-789|Exp-2025", 500);
    // Set error correction to high for better reliability
    qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
    // Convert to byte array for database storage
    byte[] barcodeBytes = qrCode.ToPngBinaryData();
}
public void GenerateQRCode()
{
    // Create a QR code with custom data
    var qrCode = QRCodeWriter.CreateQrCode("SKU-12345|Batch-789|Exp-2025", 500);
    // Set error correction to high for better reliability
    qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
    // Convert to byte array for database storage
    byte[] barcodeBytes = qrCode.ToPngBinaryData();
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

QRCodeWriter.CreateQrCode()方法专门用于创建二维码,并具有嵌入徽标和颜色自定义等附加功能。 第二个参数指定二维码的像素大小。 ToPngBinaryData()方法将生成的二维码转换为字节数组,非常适合存储在数据库中或在您的跨平台移动应用程序中通过网络传输。 查看更多二维码生成示例,了解更高级的应用。

如何使用不同的条形码格式(EAN13、Data Matrix 等)?

IronBarcode 广泛的格式支持使您能够生成 Xamarin.Forms 应用程序所需的精确条形码类型。 以下是如何在移动项目中使用 C# 处理各种常用条形码格式的方法:

public void GenerateMultipleFormats(string productCode)
{
    // EAN-13 for European retail
    var ean13 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.EAN13);
    ean13.SaveAsPng("product_ean13.png");
    // UPC-A for North American retail  
    var upcA = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.UPCA);
    upcA.SaveAsJpeg("product_upca.jpg");
    // DataMatrix for small items with high data density
    var dataMatrix = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.DataMatrix);
    dataMatrix.SaveAsPdf("product_datamatrix.pdf");
    // PDF417 for driver licenses and ID cards
    var pdf417 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.PDF417);
    pdf417.SaveAsTiff("product_pdf417.tiff");
}
public void GenerateMultipleFormats(string productCode)
{
    // EAN-13 for European retail
    var ean13 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.EAN13);
    ean13.SaveAsPng("product_ean13.png");
    // UPC-A for North American retail  
    var upcA = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.UPCA);
    upcA.SaveAsJpeg("product_upca.jpg");
    // DataMatrix for small items with high data density
    var dataMatrix = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.DataMatrix);
    dataMatrix.SaveAsPdf("product_datamatrix.pdf");
    // PDF417 for driver licenses and ID cards
    var pdf417 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.PDF417);
    pdf417.SaveAsTiff("product_pdf417.tiff");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

每种条形码符号体系在移动应用中都有其特定的特性和应用场景。 EAN-13 和 UPC-A 仅需输入数字,并自动计算校验位,以确保零售扫描的准确性。 DataMatrix 擅长在最小的空间内编码大量数据,使其成为追踪电子元件和药品的理想选择。 PDF417 支持具有内置纠错级别的广泛数据存储,常用于交通运输和身份识别文件。 了解更多关于如何为您的具体应用场景选择合适的条形码格式的信息

输出

如何在 Xamarin 中使用 IronBarcode 生成条形码:图 9 - PDF417 输出

.NET 条形码库会自动验证输入数据是否符合格式要求,并对无效输入抛出描述性异常。 此验证确保生成的条形码符合国际 ISO 标准,并能与零售和物流环境中使用的商用条形码阅读器可靠地扫描。

如何自定义和导出条形码?

IronBarcode 提供全面的自定义选项,以满足您的 Xamarin 应用程序的视觉要求以及针对 Android 和 iOS 平台的导出需求:

public void CustomizeAndExportBarcode()
{
    var barcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeEncoding.Code128);
    // Styling options for mobile UI consistency
    barcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Navy);
    barcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
    barcode.SetMargins(10);
    // Add annotations for human readability
    barcode.AddAnnotationTextAboveBarcode("Product ID");
    barcode.AddBarcodeValueTextBelowBarcode(IronSoftware.Drawing.Font("Arial", 12));
    // Platform-specific file handling in Xamarin
    string documentsPath;
    if (Device.RuntimePlatform == Device.iOS)
    {
        documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    }
    else // Android
    {
        documentsPath = Android.OS.Environment.GetExternalStoragePublicDirectory(
            Android.OS.Environment.DirectoryDownloads).AbsolutePath;
    }
    // Export in multiple formats for versatility
    barcode.SaveAsPng(Path.Combine(documentsPath, "barcode.png"));
    barcode.SaveAsWindowsBitmap(Path.Combine(documentsPath, "barcode.bmp"));
    barcode.SaveAsPdf(Path.Combine(documentsPath, "barcode.pdf"));
}
public void CustomizeAndExportBarcode()
{
    var barcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeEncoding.Code128);
    // Styling options for mobile UI consistency
    barcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Navy);
    barcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
    barcode.SetMargins(10);
    // Add annotations for human readability
    barcode.AddAnnotationTextAboveBarcode("Product ID");
    barcode.AddBarcodeValueTextBelowBarcode(IronSoftware.Drawing.Font("Arial", 12));
    // Platform-specific file handling in Xamarin
    string documentsPath;
    if (Device.RuntimePlatform == Device.iOS)
    {
        documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    }
    else // Android
    {
        documentsPath = Android.OS.Environment.GetExternalStoragePublicDirectory(
            Android.OS.Environment.DirectoryDownloads).AbsolutePath;
    }
    // Export in multiple formats for versatility
    barcode.SaveAsPng(Path.Combine(documentsPath, "barcode.png"));
    barcode.SaveAsWindowsBitmap(Path.Combine(documentsPath, "barcode.bmp"));
    barcode.SaveAsPdf(Path.Combine(documentsPath, "barcode.pdf"));
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

样式设置方法允许您完全控制移动界面中条形码的外观。 可以使用 RGB 值或预定义的颜色常量来指定颜色,以匹配应用程序的主题。 SetMargins() 方法会在条形码周围添加边距,防止条形码放置在边缘附近时出现扫描问题。 探索更多条形码定制技术,实现高级视觉效果。

跨平台 Xamarin 开发中的文件处理需要考虑平台特定的方面。 iOS 应用应将文件保存到文档目录或照片图库,而 Android 应用通常使用外部存储目录。 .NET Standard 库支持所有主要图像格式,包括 PNG、JPEG、GIF、TIFF 和 BMP,以及用于文档集成的 PDF。 对于更复杂的场景,请查阅条形码导出文档以了解更多输出选项。

结论

IronBarcode 将 Xamarin 应用程序中的条形码生成从复杂的挑战转变为简单的实现。 它全面的格式支持、跨平台一致性和广泛的自定义选项,使其成为需要在 .NET 环境中实现可靠条形码和二维码功能的专业移动应用程序的理想选择。

立即使用免费试用许可证,在您的 Xamarin.Forms 或原生 Xamarin 应用程序中开始实现专业的条形码生成功能。 准备购买吗? 查看价格并购买符合您项目需求的许可证。

常见问题解答

什么是Xamarin条形码生成器?

Xamarin条形码生成器是一种工具,允许开发人员在Xamarin应用中使用IronBarcode创建条形码和二维码。

IronBarcode如何简化Xamarin中的条形码生成?

IronBarcode通过提供全面的.NET条形码库简化了Xamarin中的条形码生成,让开发人员仅需几行C#代码即可创建条形码和二维码,消除了特定平台的实现。

我可以使用IronBarcode为Android和iOS生成条形码吗?

是的,IronBarcode支持在Xamarin应用中为Android和iOS平台生成条形码,确保设备之间的一致性。

我可以在Xamarin中使用IronBarcode创建哪些类型的条形码?

使用Xamarin中的IronBarcode,您可以创建各种条形码,包括二维码和其他专业质量的条形码格式。

IronBarcode适合企业级应用吗?

是的,IronBarcode提供企业级功能,确保高质量和可靠的条形码生成,适用于专业应用。

我需要广泛的编码知识才能在Xamarin中使用IronBarcode吗?

不,您不需要广泛的编码知识。IronBarcode允许您通过少量C#代码生成条形码和二维码。

IronBarcode如何处理特定平台的条形码实现?

IronBarcode通过提供一个统一的.NET库来消除特定平台的条形码实现需求,该库可以在所有Xamarin支持的平台上工作。

可以在原生Xamarin项目中使用IronBarcode吗?

是的,IronBarcode可以在Xamarin Forms和原生Xamarin项目中使用,生成条形码和二维码。

IronBarcode支持条形码的自定义样式吗?

IronBarcode提供自定义条形码外观和布局的选项,使开发人员能够根据应用的设计进行调整。

可以将IronBarcode集成到现有的Xamarin项目中吗?

是的,IronBarcode可以轻松集成到现有Xamarin项目中,提供条形码生成功能而无需大量重构。

Jordi Bardia
软件工程师
Jordi 最擅长 Python、C# 和 C++,当他不在 Iron Software 利用这些技能时,他就在游戏编程。分享产品测试、产品开发和研究的责任,Jordi 在持续的产品改进中增加了巨大的价值。多样的经验使他面临挑战并保持投入,他表示这是在 Iron Software 工作的最喜欢的方面之一。Jordi 在佛罗里达州迈阿密长大,并在佛罗里达大学学习计算机科学和统计学。