Xamarin條碼生成器:使用IronBarcode在C#中生成條碼
在Xamarin應用程式中建立條碼並不需要複雜或耗時。 使用IronBarcode,開發者可以在Android和iOS平台上生成專業質量的條碼和QR碼,只需幾行C#程式碼。 .NET條碼程式庫消除了特定平台實作的需求,同時提供能在您的Xamarin Forms或原生Xamarin專案中的所有行動裝置上有效運作的企業級功能。
本文演示了如何使用IronBarcode在您的跨平台移動應用程式中實作條碼生成系統。 您將學習如何透過NuGet安裝程式庫,生成各種條碼格式,包括QR碼,自訂顏色和註解的外觀,並以多種文件格式匯出結果——同時維護能在Android和iOS上運行的乾淨、可維護的C#程式碼。
為什麼您需要一個專業的Xamarin Forms條碼程式庫?
從頭在Xamarin.Forms中實作條碼生成需要處理複雜的編碼演算法,管理針對特定平台的渲染差異,並確保在各種條碼符號上輸出準確。 一個專業的.NET條碼程式庫,如IronBarcode,透過簡單的C#方法內部處理所有技術上的複雜問題,消除了這些挑戰。
IronBarcode支援超過30種條碼格式,包括QR碼,Code 128,Code 39,EAN-13,UPC-A,Data Matrix,PDF 417和Aztec碼。 每種格式都是針對特定用途而優化的。 例如,QR碼在儲存URL和大容量文字資料方面表現出色,EAN-13用於零售產品,而Code 128提供高密度字母數字編碼。 程式庫會自動計算校驗和,應用適當的錯誤更正級別,並確保符合GS1標準以供商業應用。
IronBarcode的跨平台特性確保您的條碼生成程式碼無論是針對Android還是iOS,保持一致。 這種一致性超越了Xamarin應用程式——同樣的程式碼可用于ASP.NET 網路應用程式,桌面軟體和Docker容器,這使它對於具有多樣化部署需求的企業理想。 了解更多關於IronBarcode的跨平台功能。
Xamarin vs. .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?
在您的Xamarin.Forms專案中安裝IronBarcode只需幾分鐘,通過NuGet套件管理器即可完成。 打開包含跨平台移動專案的Visual Studio解決方案,並按照下列步驟進行操作。
在解決方案資源管理器中右鍵單擊您的解決方案,然後選擇"管理解決方案的NuGet套件"。 在瀏覽標籤中,搜尋"IronBarcode"。 選擇Iron Software的官方IronBarcode套件,並在您的解決方案中的所有專案上安裝此套件,包括共享專案及特定平台的專案。 您可以瀏覽完整的NuGet套件詳情,以獲取版本歷史和相依性。
或者,您可以使用套件管理器控制台,使用此命令:
Install-Package BarCode
對於Android專案,基本條碼建立不需要額外的權限。 然而,如果您計劃將生成的條碼保存到外部儲存,請向您的WRITE_EXTERNAL_STORAGE權限。 查看Android特定設置指南,以獲取詳細的平台考量。
對於iOS專案,如果您正在將QR碼或條碼保存到照片庫,請將Info.plist中,並提供適當的使用者介面說明。 iOS條碼設置文件提供了完整的指導。
設置您的授權金鑰
要使用IronBarcode的全部功能而沒有浮水印,您將需要一個授權金鑰。 您可以獲得免費試用授權,提供對所有條碼生成功能的完全存取以便評估。 在您的應用程式啟動程式碼中設置您的授權金鑰:
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE";
Imports IronBarCode
IronBarCode.License.LicenseKey = "YOUR-LICENSE-KEY-HERE"
沒有授權金鑰,IronBarcode會在評估模式下運行,在生成的條碼上顯示浮水印。 對於生產應用程式,Iron Software提供多個授權等級,包括單一專案、組織範圍以及SaaS分發授權設計,用於移動應用程式部署。
如何使用IronBarcode建立您的第一個條碼?
在Xamarin.Forms應用程式中使用IronBarcode建立第一個條碼需要最少的C#程式碼。 下面的範例生成一個Code 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);
Imports IronBarCode
Imports System.IO
Dim filePath As String = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "barcode.png")
Dim myBarcode = BarcodeWriter.CreateBarcode("https://ironsoftware.com", BarcodeEncoding.Code128)
myBarcode.ResizeTo(500, 200)
myBarcode.AddBarcodeValueTextBelowBarcode()
myBarcode.SaveAsPng(filePath)
BarcodeWriter.CreateBarcode()方法是條碼生成的主要進入點。 它接受兩個參數:要編碼的資料和BarcodeEncoding列舉中的條碼格式。 該方法返回一個GeneratedBarcode物件,透過流暢的API提供廣泛的自訂化功能。
ResizeTo()方法在保持正確的長寬比和選定符號所需的條寬的同時,調整條形碼尺寸。 AddBarcodeValueTextBelowBarcode()在條形碼下方新增人可讀的文字,這是許多零售和庫存管理場景所需的。 探索完整BarcodeWriter API參考以獲取高級功能。
輸出

為行動應用程式生成QR碼
在您的Xamarin條碼掃描器應用程式中生成QR碼,使用專門的QRCodeWriter類。 QR碼對於行動應用程式非常理想,因為裝置相機可以快速掃描它們,而不需要專用硬體:
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();
Imports IronBarCode
Imports IronSoftware.Drawing
Dim qrCode = QRCodeWriter.CreateQrCode("SKU-12345|Batch-789|Exp-2025", 500)
qrCode.ChangeBarCodeColor(Color.DarkBlue)
Dim barcodeBytes As Byte() = qrCode.ToPngBinaryData()
QRCodeWriter.CreateQrCode()方法專門用於QR碼建立,支持嵌入標誌和顏色自訂。 第二個參數指定QR碼的大小(以像素為單位)。 ToPngBinaryData()方法將生成的QR碼轉換為位元組陣列,這在資料庫中儲存或通過網路傳輸時非常有用。 查看更多QR碼生成範例以獲取包含嵌入標誌的高級配置。
如何使用不同的條碼格式?
IronBarcode的廣泛格式支持允許您生成Xamarin.Forms應用程式所需的準確條碼型別。 以下範例展示如何從單一產品程式碼字串建立EAN-13、UPC-A、DataMatrix和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");
// 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");
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");
// 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");
Imports IronBarCode
Dim productCode As String = "012345678905"
' EAN-13 for European retail
Dim ean13 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.EAN13)
ean13.SaveAsPng("product_ean13.png")
' UPC-A for North American retail
Dim upcA = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.UPCA)
upcA.SaveAsJpeg("product_upca.jpg")
' DataMatrix for small items with high data density
Dim dataMatrix = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.DataMatrix)
dataMatrix.SaveAsPdf("product_datamatrix.pdf")
' PDF417 for driver licenses and ID cards
Dim pdf417 = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.PDF417)
pdf417.SaveAsTiff("product_pdf417.tiff")
每個條碼符號都有特定的特性和用途。 EAN-13和UPC-A要求僅有數字輸入,並自動計算零售掃描精度的校驗碼。 DataMatrix在極小的空間中擅長編碼大量資料,使其非常適合跟踪電子元件和藥品。 PDF417支持廣泛的資料儲存,具備內建錯誤更正,常用於交通運輸和身份證件上。
這個程式庫會自動驗證輸入資料以符合格式要求,並對無效輸入拋出描述性異常。 此驗證確保生成的條碼符合國際ISO標準,並能在零售和物流中使用的商用條碼讀碼器中可靠掃描。 了解更多選擇合適的條碼格式以滿足您的特定用例。
輸出

條碼格式比較
下表總結了行動專案中最常用的條碼格式及其典型應用:
| 格式 | 資料型別 | 典型用例 | BarcodeEncoding值 |
|---|---|---|---|
| QR碼 | 字母數字,二進制,URL | 產品連結,聯絡人名片,支付流程 | QRCode |
| Code 128 | 字母數字 | 運送標籤,庫存 | Code128 |
| EAN-13 | 數字(13位) | 歐洲零售產品 | EAN13 |
| UPC-A | 數字(12位) | 北美零售產品 | UPCA |
| DataMatrix | 字母數字,二進制 | 電子產品,藥品,小標籤 | DataMatrix |
| 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"));
Imports IronBarCode
Imports System.IO
Imports Xamarin.Forms
Imports IronSoftware.Drawing
Dim barcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeEncoding.Code128)
' Apply styling to match your mobile UI
barcode.ChangeBarCodeColor(Color.Navy)
barcode.ChangeBackgroundColor(Color.LightGray)
barcode.SetMargins(10)
' Add human-readable annotations
barcode.AddAnnotationTextAboveBarcode("Product ID")
barcode.AddBarcodeValueTextBelowBarcode(New Font("Arial", 12))
' Determine platform-specific save path
Dim documentsPath As String
If Device.RuntimePlatform = Device.iOS Then
documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
Else ' Android
documentsPath = Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath
End If
' Export in multiple formats
barcode.SaveAsPng(Path.Combine(documentsPath, "barcode.png"))
barcode.SaveAsPdf(Path.Combine(documentsPath, "barcode.pdf"))
造型方法使您可以全面控制行動介面中條碼的外觀。 顏色可以使用RGB值或預定義的顏色常量指定,以匹配應用程式的主題。 SetMargins()方法在條形碼周圍新增填充,防止條形碼靠近影像邊緣時產生掃描問題。
在跨平台Xamarin開發中,文件處理需要平台意識。 iOS應用應保存在文件目錄或照片庫。 Android應用通常使用外部儲存目錄或應用的內部資料目錄。 程式庫支持所有主要的影像格式——PNG、JPEG、GIF、TIFF、BMP——加上文件整合的PDF。 對於更複雜的場景,請查看條碼導出文件以獲取其他輸出選項。
直接在Xamarin視圖中顯示條碼
除了保存到文件,您還可以將條碼直接顯示在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));
Imports IronBarCode
Imports System.IO
Imports Xamarin.Forms
Dim barcode = BarcodeWriter.CreateBarcode("ORDER-99812", BarcodeEncoding.QRCode, 300)
Dim pngBytes As Byte() = barcode.ToPngBinaryData()
barcodeImage.Source = ImageSource.FromStream(Function() New MemoryStream(pngBytes))
將結果指派給任何Xamarin Source屬性。 此模式不需要文件系統權限,並且是暫時顯示用例的推薦方法,例如訂單確認畫面或票務流程。 請參閱IronBarcode影像渲染指南以獲取更多詳細資訊。
您如何處理Xamarin中的條碼掃描?
雖然本文著重於條碼生成,但許多Xamarin應用程式也需要從裝置相機讀取條碼。 IronBarcode包含一個條碼讀取API,其簡單性與生成API相互呼應。 IronBarcode條碼讀取文件涵蓋完整的讀取工作流程,包括多條碼檢測和格式過濾。
對於同時生成和掃描條碼的Xamarin應用——例如倉庫收貨應用——您可以在同一個專案中結合BarcodeReader類。 兩個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}");
}
Imports IronBarCode
Try
Dim barcode = BarcodeWriter.CreateBarcode(userInputValue, BarcodeEncoding.EAN13)
barcode.SaveAsPng("output.png")
Catch ex As BarcodeException
Console.WriteLine($"Barcode generation failed: {ex.Message}")
End Try
在將使用者提供的值傳遞給條碼編碼器之前,始終先驗證該值。 對於類似EAN-13的數字格式,在編碼之前應去除空格和非數字字元。 查看IronBarcode故障排除部分中的輸入驗證指導以獲取常見資料質量問題。
您的下一步是什麼?
IronBarcode將Xamarin應用中的條碼生成從一個複雜的、特定平台的挑戰轉化為幾行C#程式碼。 無論您需要用於移動訂單流程的QR碼、倉庫標籤的Code 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影像控制項的Source屬性。
我可以在原生Xamarin專案和Xamarin.Forms中使用IronBarcode嗎?
是的。IronBarcode在Xamarin.Forms共享專案和平台特定的Xamarin.Android及Xamarin.iOS專案中運作。
IronBarcode支持自定義條碼樣式嗎?
是的。您可以更改條和背景顏色,設置頁邊距,新增註釋文字在條碼上方或下方,並使用流暢的GeneratedBarcode API調整字體屬性。
如何開始免費試用IronBarcode?
存取https://ironsoftware.com/csharp/barcode/下載免費30天試用授權金鑰。安裝NuGet套件,在啟動程式碼中設置授權金鑰,立即開始生成條碼。




