使用 C# 從文字、URL、ID 和二進位資料建立條碼
IronBarcode可讓 C# 開發人員使用 BarcodeWriter.CreateBarcode() 方法從各種資料來源(包括字串、位元組陣列和記憶體流)產生條碼,並支援多種條碼格式,如 QR 碼、Code128 和 PDF417。
快速入門:一行程式碼即可從字串建立條碼
使用 IronBarcode 的 API 可以輕鬆產生條碼。本範例展示如何僅使用一行程式碼,從簡單的字串建立條碼。 如需查看更詳細的範例,請查閱條碼快速入門指南。
最簡工作流程(5個步驟)
- 下載 C# 庫,用於從資料建立條碼
- 使用`CreateBarcode`方法,透過**`System.String`**輸入建立條碼。
- 使用`CreateBarcode`方法,以**`System.Byte[]`**為輸入建立條碼。
- 使用`CreateBarcode`方法,透過**`System.IO.Stream`**輸入建立條碼。
- 將產生的條碼儲存為多種影像格式
如何從字串建立條碼?
哪些條碼格式最適合不同類型的字串?
不同的條碼格式針對特定的資料類型和使用情境進行了最佳化。 了解支援的條碼格式有助於選擇正確的編碼:
-二維碼:最適合用於網址、電子郵件地址和大段文字資料。 支援最多 4,296 個字母數字字符,並具有糾錯功能。
- Code128 :非常適合用於字母數字數據,例如訂單號碼和序號。 適用於現代應用,效率極高。
- PDF417 :非常適合處理複雜數據,例如機票和政府身分證件。 最多可儲存 1,850 個字母數字字元。
- Code93 :非常適合郵政服務和庫存跟踪,具有緊湊的數位數據。
- Aztec :最適合移動票務和交通運輸,所需空間比二維碼少。
以下程式碼示範如何使用字串編寫條碼:
:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-string.cs
using IronBarCode;
string text = "Hello, World!";
string url = "https://ironsoftware.com/csharp/barcode/";
string receiptID = "2023-08-04-12345"; // Receipt ID (numeric id)
string flightID = "FLT2023NYC-LAX123456"; // Flight ID (alphanumeric id)
string number = "1234";
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
Imports IronBarCode
Private text As String = "Hello, World!"
Private url As String = "https://ironsoftware.com/csharp/barcode/"
Private receiptID As String = "2023-08-04-12345" ' Receipt ID (numeric id)
Private flightID As String = "FLT2023NYC-LAX123456" ' Flight ID (alphanumeric id)
Private number As String = "1234"
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png")
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png")
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png")
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png")
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png")
產生的條碼結果是什麼?
程式碼將五種不同的資料範例編碼為五種條碼類型:簡單文字到 Aztec,URL 到 QR 碼,數字 ID 到 Code 93,字母數字 ID 到 PDF417,數字到 Codabar。 圖片儲存為PNG格式。 如需進階匯出選項,請參閱"建立條碼影像"指南。
文字
URL
收據編號
航班號碼
數位
如何自訂產生的條碼?
建立條碼後,使用 IronBarcode 的樣式功能來增強其外觀。 以下是如何建立帶有顏色、註釋和邊距的自訂條碼:
using IronBarCode;
// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);
// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);
// Add text annotations
myBarcode.AddBarcodeValue文字BelowBarcode();
myBarcode.AddAnnotation文字AboveBarcode("Product SKU", Font.Arial, Color.Black, 12);
// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
using IronBarCode;
// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128);
// Apply custom styling
myBarcode.ResizeTo(300, 100);
myBarcode.SetMargins(10);
myBarcode.ChangeBarCodeColor(Color.DarkBlue);
// Add text annotations
myBarcode.AddBarcodeValue文字BelowBarcode();
myBarcode.AddAnnotation文字AboveBarcode("Product SKU", Font.Arial, Color.Black, 12);
// Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png");
Imports IronBarCode
' Create a barcode with custom styling
Dim myBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Code128)
' Apply custom styling
myBarcode.ResizeTo(300, 100)
myBarcode.SetMargins(10)
myBarcode.ChangeBarCodeColor(Color.DarkBlue)
' Add text annotations
myBarcode.AddBarcodeValue文字BelowBarcode()
myBarcode.AddAnnotation文字AboveBarcode("Product SKU", Font.Arial, Color.Black, 12)
' Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png")
如需更多樣式選項,請參閱"自訂條碼樣式"教學。
如何從位元組數組建立條碼?
為什麼字元編碼對位元組數組條碼很重要?
若要從位元組陣列建立條碼,請確保字元編碼與所需的 BarcodeEncoding 一致,因為每種條碼類型接受不同的字元編碼。 了解輸出資料格式可確保相容性。 以下是IronBarcode支援的字元編碼:
- ASCII :每個字元使用 7 位元來表示英文字母、數字和標點符號。 例如:'A' = 65。
- UTF-8 :所有 Unicode 字元的可變長度編碼。 例如:€ = 0xE2 0x82 0xAC。
- UTF-16 :使用 16 位元序列表示 Unicode。 例如:α = 0x03B1。
- UTF-32 :每個字元固定為 32 位元序列。 例如:α = 0x000003B1。
- ISO-8859-1 :擴展 ASCII 以支援西歐語言。 例如:é = 233。
IronBarcode的預設字元編碼是 ISO-8859-1。
如何將位元組數組轉換為條碼?
以下程式碼示範如何從位元組資料產生條碼:
:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-byte.cs
using IronBarCode;
using System.Text;
byte[] text = Encoding.UTF8.GetBytes("Hello, World!");
byte[] url = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/");
byte[] receiptID = Encoding.UTF8.GetBytes("2023-08-04-12345"); // Receipt ID (numeric id)
byte[] flightID = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456"); // Flight id (alphanumeric id)
byte[] number = Encoding.UTF8.GetBytes("1234");
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
Imports IronBarCode
Imports System.Text
Private text() As Byte = Encoding.UTF8.GetBytes("Hello, World!")
Private url() As Byte = Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/")
Private receiptID() As Byte = Encoding.UTF8.GetBytes("2023-08-04-12345") ' Receipt ID (numeric id)
Private flightID() As Byte = Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456") ' Flight id (alphanumeric id)
Private number() As Byte = Encoding.UTF8.GetBytes("1234")
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png")
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png")
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png")
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png")
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png")
這段程式碼將五個字串輸入轉換為 System.Byte[] 物件。 若要將這些位元組陣列轉換為條碼,請將它們傳遞給 BarcodeWriter,並指定所需的 BarcodeEncoding。 (可選)設定 MaxWidth 和 MaxHeight 以指定條碼尺寸。
處理二進位資料和特殊字符
處理二進位資料或特殊字元時,請使用"編寫 Unicode 條碼"功能以支援國際字元。 以下是一個處理二進位資料的範例:
using IronBarCode;
using System.文字;
using System.IO;
// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);
// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
base64Data,
BarcodeEncoding.QRCode
);
// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);
// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
using IronBarCode;
using System.文字;
using System.IO;
// Example: Encoding binary data (like a small file) into QR Code
byte[] binaryData = File.ReadAllBytes("document.pdf");
string base64Data = Convert.ToBase64String(binaryData);
// Create QR code with high error correction for binary data
GeneratedBarcode binaryBarcode = BarcodeWriter.CreateBarcode(
base64Data,
BarcodeEncoding.QRCode
);
// Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High);
// Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500);
binaryBarcode.SaveAsPng("binary-data-qr.png");
Imports IronBarCode
Imports System.Text
Imports System.IO
' Example: Encoding binary data (like a small file) into QR Code
Dim binaryData As Byte() = File.ReadAllBytes("document.pdf")
Dim base64Data As String = Convert.ToBase64String(binaryData)
' Create QR code with high error correction for binary data
Dim binaryBarcode As GeneratedBarcode = BarcodeWriter.CreateBarcode(base64Data, BarcodeEncoding.QRCode)
' Set high error correction for data integrity
binaryBarcode.SetQRCodeErrorCorrection(QRCodeErrorCorrection.High)
' Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500)
binaryBarcode.SaveAsPng("binary-data-qr.png")
如何從記憶體流建立條碼?
何時應該使用記憶體流產生條碼?
記憶體流最適用於處理不需要磁碟儲存的數據,例如 Web 應用程式中動態產生的內容或資料庫處理。 《將條碼匯出為串流》指南為基於串流的工作流程提供了更多背景資訊。
以下程式碼示範如何從記憶體流產生條碼:
:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-stream.cs
using IronBarCode;
using System.IO;
using System.Text;
MemoryStream text = new MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"));
MemoryStream url = new MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"));
MemoryStream receiptID = new MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")); // Receipt ID (numeric id)
MemoryStream flightID = new MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")); // Flight id (alphanumeric id)
MemoryStream number = new MemoryStream(Encoding.UTF8.GetBytes("1234"));
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png");
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png");
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png");
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png");
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png");
Imports IronBarCode
Imports System.IO
Imports System.Text
Private text As New MemoryStream(Encoding.UTF8.GetBytes("Hello, World!"))
Private url As New MemoryStream(Encoding.UTF8.GetBytes("https://ironsoftware.com/csharp/barcode/"))
Private receiptID As New MemoryStream(Encoding.UTF8.GetBytes("2023-08-04-12345")) ' Receipt ID (numeric id)
Private flightID As New MemoryStream(Encoding.UTF8.GetBytes("FLT2023NYC-LAX123456")) ' Flight id (alphanumeric id)
Private number As New MemoryStream(Encoding.UTF8.GetBytes("1234"))
BarcodeWriter.CreateBarcode(text, BarcodeEncoding.Aztec).SaveAsPng("text.png")
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode).SaveAsPng("url.png")
BarcodeWriter.CreateBarcode(receiptID, BarcodeEncoding.Code93, 250, 67).SaveAsPng("receiptID.png")
BarcodeWriter.CreateBarcode(flightID, BarcodeEncoding.PDF417, 250, 67).SaveAsPng("flightID.png")
BarcodeWriter.CreateBarcode(number, BarcodeEncoding.Codabar, 250, 67).SaveAsPng("number.png")
使用記憶體流有哪些好處?
此程式碼片段從 System.Byte[] 物件建立 MemoryStream,然後將其用作 BarcodeWriter.CreateBarcode() 的輸入,以從記憶體流資料產生條碼。 記憶體流具有以下幾個優點:
1.效能:無磁碟 I/O 操作,臨時資料傳輸速度更快 2.安全性:資料保留在記憶體中,減少了敏感資訊外洩的風險。 3.靈活性:易於與基於流的 API 和庫集成 4.資源效率:自動記憶體管理與處置
進階流程處理範例
對於涉及流處理的複雜場景,請將IronBarcode與其他流處理操作結合使用:
using IronBarCode;
using System.IO;
using System.文字;
// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
var barcodeStreams = new List<Stream>();
foreach (var item in dataItems)
{
// Convert string to stream
var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));
// Generate barcode from stream
var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);
// Export barcode back to stream
var outputStream = new MemoryStream();
barcode.SaveAsPng(outputStream);
outputStream.Position = 0; // Reset position for reading
barcodeStreams.Add(outputStream);
}
return barcodeStreams;
}
// Usage example
var order數位s = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(order數位s);
using IronBarCode;
using System.IO;
using System.文字;
// Example: Processing multiple barcodes in a batch using streams
public static List<Stream> GenerateBarcodeStreams(List<string> dataItems)
{
var barcodeStreams = new List<Stream>();
foreach (var item in dataItems)
{
// Convert string to stream
var dataStream = new MemoryStream(Encoding.UTF8.GetBytes(item));
// Generate barcode from stream
var barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128);
// Export barcode back to stream
var outputStream = new MemoryStream();
barcode.SaveAsPng(outputStream);
outputStream.Position = 0; // Reset position for reading
barcodeStreams.Add(outputStream);
}
return barcodeStreams;
}
// Usage example
var order數位s = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(order數位s);
Imports IronBarCode
Imports System.IO
Imports System.Text
Imports System.Collections.Generic
' Example: Processing multiple barcodes in a batch using streams
Public Shared Function GenerateBarcodeStreams(dataItems As List(Of String)) As List(Of Stream)
Dim barcodeStreams As New List(Of Stream)()
For Each item In dataItems
' Convert string to stream
Dim dataStream As New MemoryStream(Encoding.UTF8.GetBytes(item))
' Generate barcode from stream
Dim barcode = BarcodeWriter.CreateBarcode(dataStream, BarcodeEncoding.Code128)
' Export barcode back to stream
Dim outputStream As New MemoryStream()
barcode.SaveAsPng(outputStream)
outputStream.Position = 0 ' Reset position for reading
barcodeStreams.Add(outputStream)
Next
Return barcodeStreams
End Function
' Usage example
Dim order數位s As New List(Of String) From {"ORD-001", "ORD-002", "ORD-003"}
Dim barcodes = GenerateBarcodeStreams(order數位s)
有關非同步操作和提高多執行緒應用程式效能的信息,請參閱"使用非同步和多執行緒"指南。
常見問題解答
如何在 C# 中從文字建立 BarCode?
在 C# 中使用 IronBarcode 只需一行代碼即可從文本创建條形碼:BarcodeWriter.CreateBarcode("YourText",BarcodeWriterEncoding.Code128)。IronBarcode 支援多種格式,包括 QR Code、Code128、PDF417、Aztec 等。
哪些類型的資料可以編碼到 BarCode 中?
IronBarcode 可讓您對各種資料類型進行編碼,包括字串、URL、ID、二進位資料(位元組陣列)和記憶體串流。該程式庫會根據您所選擇的 BarCode 格式自動處理轉換和編碼。
URL 應該使用哪種 BarCode 格式?
QR 碼是 IronBarcode 編碼 URL 的最佳選擇。QR 碼最多可儲存 4,296 個字母與數位字元,並包含錯誤修正功能,因此是網址與電子郵件地址的理想選擇。
哪種 BarCode 格式最適合訂單號碼和序列碼?
使用 IronBarcode 時,Code128 是字母數字資料(如訂單號碼和序列代碼)的理想格式。它對於現代應用程式而言非常有效率,並為混合字元集提供優異的資料密度。
我可以從二進位資料建立 BarCode 嗎?
是的,IronBarcode 支持通過 CreateBarcode 方法使用 System.Byte[] 數组或 System.IO.Stream 輸入的二進制數据创建條形碼,允許您對任何类型的二進制信息進行编碼。
我可以用哪些影像格式儲存 BarCode?
IronBarcode 允許您將產生的 BarCode 儲存為多種圖像格式,包括 PNG、JPEG、BMP、GIF 和 TIFF。該程式庫針對不同的使用情況提供了靈活的匯出選項。
PDF417 BarCode 可以儲存多少資料?
使用 IronBarcode 製作的 PDF417 BarCode 可儲存多達 1,850 個字母數字字符,使其成為複雜資料(如機票、運輸標籤和政府 ID)的完美選擇。
哪種 BarCode 格式最適合行動購票?
使用 IronBarcode 時,Aztec BarCode 是行動票務和運輸應用程式的最佳選擇。與 QR 條碼相比,它們所需的空間更少,同時在行動裝置上維持高資料容量和可讀性。

