跳過到頁腳內容
使用IRONBARCODE

Xamarin條碼生成器:使用IronBarcode在C#中生成條碼

在 Xamarin 應用程式中建立條碼不必複雜或耗時。 借助IronBarcode,開發人員只需幾行 C# 程式碼即可在 Android 和 iOS 平台上產生專業品質的條碼和二維碼。 這個.NET條碼庫消除了對特定於平台的實現的需求,同時提供了企業級功能,可在您的 Xamarin Forms 或原生 Xamarin 專案中的所有行動裝置上保持一致。

本文示範如何使用IronBarcode在跨平台行動應用程式中實作條碼產生系統。 您將學習如何透過NuGet安裝庫,產生各種條碼格式(包括二維碼),使用顏色和註釋自訂外觀,以及以多種檔案格式匯出結果——所有這些都是在保持簡潔、易於維護的 C# 程式碼的同時完成的,該程式碼可在 Android 和 iOS 上運行。

為什麼 Xamarin Forms 需要專業的條碼庫?

在 Xamarin.Forms 中從頭開始實現條碼產生需要處理複雜的編碼演算法、管理平台特定的渲染差異,並確保在各種條碼符號系統中都能準確輸出。 專業的.NET條碼庫,例如IronBarcode,透過提供統一的 API 來消除這些挑戰,該 API 透過簡單的 C# 方法在內部處理所有技術複雜性。

IronBarcode支援 30 多種條碼格式,包括 QR 碼、代碼 128、Code 39、EAN-13、UPC-A、Data Matrix、PDF 417 和 Aztec 碼。 每種格式都針對特定使用場景進行了最佳化。 例如,二維碼擅長儲存網址和大量文字數據,EAN-13 用於零售產品,而 代碼 128 提供高密度字母數字編碼。 此函式庫會自動計算校驗和,套用適當的糾錯級別,並確保符合 GS1 標準,以滿足商業應用需求。

IronBarcode的跨平台特性確保無論目標平台是 Android 還是 iOS,您的條碼產生程式碼都保持不變。 這種一致性不僅限於 Xamarin 應用程式——相同的程式碼可以在ASP.NET Web 應用程式、桌面軟體和 Docker 容器中運行,使其成為具有多樣化部署需求的企業的理想選擇。 了解更多關於IronBarcode跨平台功能的資訊

Xamarin 與.NET MAUI:理解上下文

多年來,Xamarin 一直是微軟面向 C# 開發人員的主要跨平台行動開發框架。 雖然微軟現在已經過渡到.NET MAUI作為現代繼任者,但許多生產應用程式仍然運行在 Xamarin.Forms 和 Xamarin.Android/iOS 上。 IronBarcode可以與這兩個框架一起使用,因此本文中顯示的模式同樣適用於維護 Xamarin 專案或遷移到.NET MAUI。

如果您今天要啟動一個全新的行動項目,請考慮使用.NET MAUI和IronBarcode。 IronBarcode .NET MAUI文件涵蓋了此處所示的相同功能,並提供了.NET MAUI特定的專案設定步驟。

為什麼不從零開始建立條碼邏輯?

編寫自訂條碼編碼邏輯會帶來一些維護風險。 您必須處理特定格式的校驗和演算法、長條寬度計算、靜區要求以及不同硬體供應商之間的掃描器相容性。 IronBarcode將所有這些都抽像到一個簡潔的 API 背後。 IronBarcode API 參考文件記錄了每個方法和參數,以便您的團隊可以快速找到適合每種場景的工具。

如何在 Xamarin 專案中安裝IronBarcode ?

透過NuGet套件管理器,只需幾分鐘即可在 Xamarin.Forms 專案中安裝IronBarcode 。 開啟包含跨平台移動專案的 Visual Studio 解決方案,然後依照下列步驟操作。

在解決方案資源管理器中以滑鼠右鍵按一下您的解決方案,然後選擇"管理解決方案的NuGet套件"。 在"瀏覽"標籤中,搜尋"IronBarcode"。 選擇Iron Software的官方IronBarcode軟體包,並將其安裝到解決方案中的所有專案中,包括共用專案和兩個特定於平台的專案。 您可以查看完整的NuGet套件詳細信息,以了解版本歷史記錄和依賴項。

或者,您可以使用以下命令開啟軟體套件管理器控制台:

Install-Package BarCode
Install-Package BarCode
SHELL

對於 Android 項目,建立基本條碼不需要額外的權限。 但是,如果您打算將產生的條碼儲存到外部存儲,請將 WRITE_EXTERNAL_STORAGE 權限新增至您的 AndroidManifest.xml。 請查看Android 專用設定指南,以了解詳細的平台注意事項。

對於 iOS 項目,如果您要將二維碼或條碼儲存到照片圖庫,請將 NSPhotoLibraryAddUsageDescription 鍵新增至您的 Info.plist 中,並新增適當的面向使用者的描述。 iOS條碼設定文件提供了完整的說明。

設定您的許可證密鑰

要使用 IronBarcode 的全部功能且不含浮水印,您需要一個許可證金鑰。 您可以獲得免費試用許可證,該許可證提供對所有條碼生成功能的完整存取權限,供您評估使用。 在應用程式啟動程式碼中設定一次許可證密鑰:

IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
$vbLabelText   $csharpLabel

如果沒有許可證金鑰, IronBarcode將以評估模式運行,產生的條碼上會帶有浮水印。 對於生產應用, Iron Software提供各種許可級別,包括單一項目許可、組織級許可和專為行動應用部署設計的 SaaS 分發許可。

如何使用IronBarcode產生您的第一個條碼?

在 Xamarin.Forms 應用程式中使用IronBarcode來建立您的第一個條碼只需要極少的 C# 程式碼。 以下範例產生 代碼 128 條碼,將其儲存為 PNG 格式,並新增人類可讀的文字標籤:

using IronBarCode;
using System.IO;

string filePath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.Personal),
    "barcode.png");

var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.Code128);
myBarcode.ResizeTo(500, 200);
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SaveAsPng(filePath);
using IronBarCode;
using System.IO;

string filePath = Path.Combine(
    Environment.GetFolderPath(Environment.SpecialFolder.Personal),
    "barcode.png");

var myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.Code128);
myBarcode.ResizeTo(500, 200);
myBarcode.AddBarcodeValueTextBelowBarcode();
myBarcode.SaveAsPng(filePath);
$vbLabelText   $csharpLabel

BarcodeWriter.CreateBarcode() 方法是條碼產生的主要入口點。 它接受兩個參數:要編碼的資料和來自 BarcodeEncoding 枚舉的條碼格式。 此方法傳回一個 GeneratedBarcode 對象,該物件透過流暢的 API 提供廣泛的自訂功能。

ResizeTo() 方法調整條碼尺寸,同時保持所選符號系統的適當縱橫比和條寬要求。 AddBarcodeValueTextBelowBarcode() 在條形圖下方添加人類可讀的文本,這是許多零售和庫存管理場景所必需的。 查閱完整的BarcodeWriter API 參考文檔,以了解進階功能。

輸出

如何在 Xamarin 中使用IronBarcode來產生條碼:圖 10 - PDF417 輸出

為行動應用程式產生二維碼

若要在您的 Xamarin 條碼掃描器應用程式中產生 QR 碼,請使用專用的 QRCodeWriter 類別。 二維碼非常適合行動應用,因為設備攝影機無需專用硬體即可快速掃描它們:

using IronBarCode;

var qrCode = QRCodeWriter.CreateQrCode("SKU-12345|Batch-789|Exp-2025", 500);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);

byte[] barcodeBytes = qrCode.ToPngBinaryData();
using IronBarCode;

var qrCode = QRCodeWriter.CreateQrCode("SKU-12345|Batch-789|Exp-2025", 500);
qrCode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);

byte[] barcodeBytes = qrCode.ToPngBinaryData();
$vbLabelText   $csharpLabel

QRCodeWriter.CreateQrCode() 方法專門用於建立二維碼,支援嵌入徽標和顏色自訂。 第二個參數指定二維碼的像素大小。 ToPngBinaryData() 方法將產生的二維碼轉換為位元組數組,可用於儲存在資料庫中或透過網路傳輸。 查看更多二維碼產生範例,了解包含嵌入式徽標等進階配置。

如何處理不同的條碼格式?

IronBarcode 廣泛的格式支援可讓您產生 Xamarin.Forms 應用程式所需的條碼類型。 以下範例示範如何從單一產品代碼字串建立 EAN-13、UPC-A、數據矩陣 和 PDF417 條碼:

using IronBarCode;

string productCode = "012345678905";

// 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");

// 數據矩陣 for small items with high data density
var dataMatrix = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.數據矩陣);
dataMatrix.SaveAsPdf("product_datamatrix.pdf");

// PDF417 for driver licenses and ID cards
var pdf417 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.PDF417);
pdf417.SaveAsTiff("product_pdf417.tiff");
using IronBarCode;

string productCode = "012345678905";

// 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");

// 數據矩陣 for small items with high data density
var dataMatrix = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.數據矩陣);
dataMatrix.SaveAsPdf("product_datamatrix.pdf");

// PDF417 for driver licenses and ID cards
var pdf417 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.PDF417);
pdf417.SaveAsTiff("product_pdf417.tiff");
$vbLabelText   $csharpLabel

每種條碼符號體係都有其特定的特點和應用場景。 EAN-13 和 UPC-A 僅需輸入數字,並自動計算校驗位,以確保零售掃描的準確性。 數據矩陣 擅長在最小的空間內編碼大量數據,使其成為追蹤電子元件和藥品的理想選擇。 PDF417 支援大容量資料存儲,並內建糾錯功能,常用於交通運輸和識別文件。

該庫會自動驗證輸入資料是否符合格式要求,並對無效輸入拋出描述性異常。 此驗證可確保產生的條碼符合國際 ISO 標準,並能與零售和物流中使用的商用條碼閱讀器可靠地掃描。 了解更多關於如何為您的特定應用場景選擇合適的條碼格式的資訊

輸出

如何在 Xamarin 中使用IronBarcode來產生條碼:圖 9 - PDF417 輸出

條碼格式比較

下表總結了最常用的條碼格式及其在行動專案中的典型應用:

行動應用條碼格式比較
格式 資料類型 典型用例 條碼編碼值
QR 圖碼 字母數字、二進制、URL 產品連結、聯絡卡、付款流程 `QRCode`
代碼 128 字母數字 出貨標籤、庫存 `Code128`
EAN-13 數(13 位) 歐洲零售產品 `EAN13`
UPC-A 數(12 位) 北美零售產品 `UPCA`
數據矩陣 字母數字、二進位 電子產品、藥品、小標籤 `數據矩陣`
PDF417 字母數字、二進位 身分證件、登機證、交通工具 `PDF417`

如何自訂和匯出用於行動用戶介面的條碼?

IronBarcode提供豐富的自訂選項,以滿足您的 Xamarin 應用程式的視覺需求。 以下範例展示如何應用顏色、新增文字註解以及儲存到特定平台的文件位置:

using IronBarCode;
using System.IO;
using Xamarin.Forms;

var barcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeEncoding.Code128);

// Apply styling to match your mobile UI
barcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Navy);
barcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
barcode.SetMargins(10);

// Add human-readable annotations
barcode.AddAnnotationTextAboveBarcode("Product ID");
barcode.AddBarcodeValueTextBelowBarcode(new IronSoftware.Drawing.Font("Arial", 12));

// Determine platform-specific save path
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
barcode.SaveAsPng(Path.Combine(documentsPath, "barcode.png"));
barcode.SaveAsPdf(Path.Combine(documentsPath, "barcode.pdf"));
using IronBarCode;
using System.IO;
using Xamarin.Forms;

var barcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeEncoding.Code128);

// Apply styling to match your mobile UI
barcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.Navy);
barcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);
barcode.SetMargins(10);

// Add human-readable annotations
barcode.AddAnnotationTextAboveBarcode("Product ID");
barcode.AddBarcodeValueTextBelowBarcode(new IronSoftware.Drawing.Font("Arial", 12));

// Determine platform-specific save path
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
barcode.SaveAsPng(Path.Combine(documentsPath, "barcode.png"));
barcode.SaveAsPdf(Path.Combine(documentsPath, "barcode.pdf"));
$vbLabelText   $csharpLabel

樣式設定方法讓您可以完全控制行動介面中條碼的外觀。 可以使用 RGB 值或預先定義的顏色常數來指定顏色,以符合應用程式的主題。 SetMargins() 方法在條碼周圍添加填充,防止條碼放置在影像邊緣附近時出現掃描問題。

跨平台 Xamarin 開發中的文件處理需要平台感知能力。 iOS 應用程式應該會將檔案儲存到文件目錄或照片圖庫。 Android 應用程式通常使用外部儲存目錄或應用程式內部資料目錄。 該庫支援所有主流圖像格式——PNG、JPEG、GIF、TIFF、BMP——以及用於文件整合的PDF。 對於更複雜的場景,請查閱條碼匯出文件以了解更多輸出選項。

在 Xamarin 檢視中直接顯示條碼

除了儲存到檔案之外,您還可以透過將產生的條碼轉換為 StreamImageSource,直接在 Xamarin 頁面中顯示條碼。 這樣可以避免在僅顯示場景下進行不必要的磁碟讀寫操作:

using IronBarCode;
using System.IO;
using Xamarin.Forms;

var barcode = BarcodeWriter.CreateBarcode("ORDER-99812", BarcodeEncoding.QRCode, 300);
byte[] pngBytes = barcode.ToPngBinaryData();

barcodeImage.Source = ImageSource.FromStream(() => new MemoryStream(pngBytes));
using IronBarCode;
using System.IO;
using Xamarin.Forms;

var barcode = BarcodeWriter.CreateBarcode("ORDER-99812", BarcodeEncoding.QRCode, 300);
byte[] pngBytes = barcode.ToPngBinaryData();

barcodeImage.Source = ImageSource.FromStream(() => new MemoryStream(pngBytes));
$vbLabelText   $csharpLabel

將結果指派給任何 Xamarin 控件,方法是設定其 Source 屬性。 這種模式無需檔案系統權限即可運作,是訂單確認畫面或票務流程等瞬態顯示用例的建議方法。 更多詳情請參閱IronBarcode影像渲染指南

在 Xamarin 中如何處理條碼掃描?

雖然本文重點介紹條碼生成,但許多 Xamarin 應用程式也需要從裝置攝影機讀取條碼。 IronBarcode包含一個條碼讀取 API,其簡潔性與產生 API 類似。 IronBarcode條碼閱讀器文件涵蓋了完整的讀取工作流程,包括多條碼偵測和格式過濾。

對於既產生又掃描條碼的 Xamarin 應用程式(例如,倉庫收貨應用程式),您可以將 BarcodeWriterBarcodeReader 類別合併到同一個專案中。 這兩個 API 都使用同一個NuGet包,無需任何其他依賴項。 IronBarcode 的完整範例庫包含一個掃描和生成工作流程,並示範了這種組合方法。

錯誤處理和驗證

生產條碼產生應始終包含錯誤處理,尤其是在對來自使用者輸入或外部系統的資料進行編碼時。 IronBarcode會針對格式違規拋出類型異常——例如,將非數字字串傳遞給 EAN-13 編碼器。 將產生呼叫封裝在 try-catch 區塊中,並向使用者顯示清晰的錯誤訊息,可提高應用程式的穩定性:

using IronBarCode;

try
{
    var barcode = BarcodeWriter.CreateBarcode(userInputValue, BarcodeEncoding.EAN13);
    barcode.SaveAsPng("output.png");
}
catch (BarcodeException ex)
{
    Console.WriteLine($"Barcode generation failed: {ex.Message}");
}
using IronBarCode;

try
{
    var barcode = BarcodeWriter.CreateBarcode(userInputValue, BarcodeEncoding.EAN13);
    barcode.SaveAsPng("output.png");
}
catch (BarcodeException ex)
{
    Console.WriteLine($"Barcode generation failed: {ex.Message}");
}
$vbLabelText   $csharpLabel

在將使用者提供的值傳遞給條碼編碼器之前,請務必先驗證這些值。 對於 EAN-13 等數字格式,在編碼前去除空格和非數字字元。 請查看IronBarcode故障排除部分中的輸入驗證指南,以了解常見的資料品質問題。

下一步計劃是什麼?

IronBarcode將 Xamarin 應用程式中複雜的、特定於平台的條碼產生挑戰簡化為幾行 C# 程式碼。 無論您需要用於行動訂單流程的二維碼、用於倉庫標籤的 代碼 128 碼,還是用於零售產品的 EAN-13 碼,該庫都提供了一個在 Android 和 iOS 上完全相同的 API,並且在ASP.NET、桌面和伺服器環境中也同樣適用。

為了進一步鞏固你在這裡學到的知識,請探索以下資源:

下載IronBarcode並開始免費試用——無需信用卡即可體驗所有功能 30 天。 IronBarcode教學合輯-掃描、批次產生和PDF整合的逐步指南 IronBarcode範例庫-提供 40 多個常見條碼任務的複製貼上程式碼範例 -授權與定價-行動部署的單一開發者、團隊和 SaaS 授權選項

  • .NET MAUI遷移指南-如果您要將 Xamarin 專案遷移到現代.NET行動技術棧, IronBarcode無需任何程式碼變更即可在兩種環境中正常運作。

首先安裝NuGet包,然後執行上面的第一個範例,以確認您的環境已正確設定。 本文中的格式比較表和自訂範例將為您提供根據應用程式的具體要求自訂條碼輸出所需的一切資訊。

常見問題解答

什麼是Xamarin條碼生成器?

Xamarin條碼生成器是一種工具或程式庫,允許C#開發者在Xamarin Android和iOS應用中創建條碼和QR碼。IronBarcode通過統一的.NET API提供此功能。

IronBarcode 如何使 Xamarin 中的條碼生成簡化?

IronBarcode提供了一個單一的.NET條碼API,在Android和iOS上運行完全相同,消除了平台特定的實現需求,無需手動處理編碼算法或格式驗證。

我可以使用 IronBarcode 為 Android 和 iOS 生成條碼嗎?

是的。IronBarcode支持Xamarin應用中的條碼生成,適用於Android和iOS平台,並在多個設備間產生一致的結果,無需平台特定代碼更改。

IronBarcode在Xamarin中支持哪些條碼格式?

IronBarcode支持超過30種格式,包括QR碼、Code 128、Code 39、EAN-13、UPC-A、DataMatrix、PDF417和Aztec碼。所有格式均可通過相同的BarcodeEncoding枚舉訪問。

IronBarcode適合用於生產移動應用嗎?

是的。IronBarcode包括輸入驗證、符合ISO的編碼、GS1標準支持和授權密鑰激活,以確保生產版本中無水印輸出。

IronBarcode同時適用於.NET MAUI和Xamarin嗎?

是的。IronBarcode適用於Xamarin和.NET MAUI。在兩個框架中使用相同的NuGet包和API,使得遷移簡單。

如何在Xamarin視圖中顯示生成的條碼?

在生成的條碼上調用ToPngBinaryData()獲得字節數組,然後將ImageSource.FromStream(() => new MemoryStream(bytes))分配給您的Xamarin Image控件的Source屬性。

我可以在Xamarin.Forms和本地Xamarin專案中使用IronBarcode嗎?

是的。IronBarcode在Xamarin.Forms共享專案和平台特定的本地Xamarin.Android和Xamarin.iOS專案中都能運行。

IronBarcode支持自定義條碼樣式嗎?

是的。您可以更改條和背景顏色、設置邊距、在條碼的上方或下方添加註釋文字,並使用流暢的GeneratedBarcode API調整字體屬性。

如何開始免費試用IronBarcode?

訪問https://ironsoftware.com/csharp/barcode/下載免費30天試用授權密鑰。安裝NuGet包,在您的啟動代碼中設置授權密鑰,立即開始生成條碼。

Jordi Bardia
軟體工程師
Jordi 在 Python、C# 和 C++ 上最得心應手,當他不在 Iron Software 展現技術時,便在做遊戲編程。在分担產品测测试,產品開發和研究的责任時,Jordi 為持续的產品改進增值。他说这种多样化的经验使他受到挑战并保持参与, 而这也是他与 Iron Software 中工作一大乐趣。Jordi 在佛罗里达州迈阿密长大,曾在佛罗里达大学学习计算机科学和统计学。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我