使用 C# 從文字、URL、ID 及二進位資料建立 BarCode
IronBarcode 讓 C# 開發人員能夠透過 BarcodeWriter.CreateBarcode() 方法,從各種資料來源(包括字串、位元組陣列和記憶體串流)產生 BARCODE,並支援多種 BARCODE 格式,例如 QR Code、Code128 和 PDF417。
快速入門:一行代碼從字串建立BarCode using IronBarcode 的 API,只需最少的設定即可生成 BarCode。此範例展示如何僅用一行程式碼,從簡單的字串建立 BarCode。 如需完整的範例,請參閱《BarCode快速入門指南》。
簡化工作流程(5 個步驟)
- 下載 C# 函式庫,從資料中建立 BarCode
- 使用System.String输入创建BarCode
CreateBarcode方法 - 使用System.Byte[]输入创建BARCODE
CreateBarcode方法 - 使用 System.IO.Stream 輸入並透過
CreateBarcode方法 - 將生成的BarCode儲存為多種圖像格式
如何從字串建立BarCode?
哪些BarCode格式最適合不同類型的字串?
不同的BarCode格式針對特定資料類型與使用情境進行了最佳化。 了解支援的BarCode格式有助於選擇正確的編碼方式:
- QR 碼:最適合用於 URL、電子郵件地址及大量文字資料。 支援最多 4,296 個英數字元,並具備錯誤修正功能。
- Code128:適用於訂單編號和序號等字母數字資料。 對於現代應用程式而言,效能極高。
- PDF417:非常適合用於機票和政府身分證件等複雜資料。 最多可儲存 1,850 個英數字元。
- Code93:非常適合用於郵政服務及庫存追蹤,尤其適用於緊湊的數值資料。
- Aztec:最適合用於行動票務與交通運輸,所需空間比 QR 碼更少。
以下程式碼示範如何使用字串寫入BARCODE:
: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")
生成的BarCode結果是什麼?
此程式碼將五種不同的資料範例編碼為五種 BARCODE 類型:純文字轉為 Aztec BARCODE、URL 轉為 QR BARCODE、數字 ID 轉為 Code 93、字母數字 ID 轉為 PDF417,以及數字轉為 Codabar。 圖片儲存格式為 PNG。 有關進階匯出選項,請參閱《將BarCode建立為圖片》指南。
文字
URL
收據編號
航班編號
數量
如何自訂生成的BarCode?
建立 BARCODE 後,可利用 IronBarcode 的樣式設定功能來美化其外觀。 以下是建立帶有顏色、註解和邊距的自訂BarCode的方法:
using IronBarCode;
// Create a barcode with custom styling
GeneratedBarcode myBarcode = BarcodeWriter.CreateBarcode("PRODUCT-12345", BarcodeEncoding.Co/de128);
// 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.Co/de128);
// 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.AddBarcodeValueTextBelowBarcode()
myBarcode.AddAnnotationTextAboveBarcode("Product SKU", Font.Arial, Color.Black, 12)
' Save the customized barcode
myBarcode.SaveAsPng("customized-barcode.png")
如需更多樣式的選項,請參閱《自訂與設定BarCode樣式》教學指南。
如何從位元組陣列建立BarCode?
字元編碼為何對位元組陣列BarCode至關重要?
若要從位元組陣列建立 BARCODE,請確保字元編碼符合所需的 BarcodeEncoding 規格,因為每種 BARCODE 類型支援的字元編碼各不相同。 了解輸出資料格式可確保相容性。 以下是 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。
[{i:IronBarcode 的預設字元編碼為 ISO-8859-1.}]
如何將位元組陣列轉換為BarCode?
以下程式碼示範如何從位元組資料產生BARCODE:
: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[] 物件。 若要將這些位元組陣列轉換為 BARCODE,請將其傳遞給 BarcodeWriter 並指定所需的 BarcodeEncoding。 可選:設定 MaxWidth 和 MaxHeight 作為 BARCODE 尺寸。
處理二進位資料與特殊字元
處理二進位資料或特殊字元時,請參閱《撰寫 Unicode BarCode》以支援國際化字元。 以下是一個處理二進位資料的範例:
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")
如何從記憶體流建立BarCode?
何時應使用記憶體串流來產生BarCode?
記憶體流在處理無需磁碟儲存的資料時效果最佳,例如網頁應用程式的動態產生內容或資料庫處理。 《將BarCode匯出為串流》指南為基於串流的工作流程提供了更多背景資訊。
以下程式碼示範如何從記憶體流產生BarCode:
: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() 的輸入,以根據 MemoryStream 資料產生 BARCODE。 記憶體流具備以下幾項優勢:
- 效能:無磁碟 I/O 操作,處理臨時資料更快速
- 安全性:資料保留在記憶體中,降低敏感資訊外洩的風險
- 靈活性:可輕鬆與基於流的 API 和函式庫整合
- 資源效率:自動記憶體管理與釋放
進階流處理範例
若涉及複雜的串流處理情境,請將 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.Co/de128);
// 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.Co/de128);
// 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)
關於多執行緒應用程式中的非同步操作與效能優化,請參閱《使用 Async 與多執行緒》指南。
常見問題
如何在 C# 中從文字建立 BARCODE?
您只需一行程式碼,即可使用 IronBarcode 在 C# 中從文字建立 BarCode:BarcodeWriter.CreateBarCode("YourText", BarcodeWriterEncoding.Co/de128)。IronBarcode 支援多種格式,包括 QR 碼、Code128、PDF417、Aztec 等。
我可以將哪些類型的資料編碼成BARCODE?
IronBarcode 允許您編碼各種資料類型,包括字串、URL、ID、二進位資料(位元組陣列)以及記憶體流。IronBarcode程式庫會根據您選擇的條碼格式,自動處理轉換與編碼作業。
我應該使用哪種 BarCode 格式來表示 URL?
在 IronBarcode 中,QR 碼是編碼 URL 的最佳選擇。QR 碼最多可儲存 4,296 個英數字元,並具備錯誤校正功能,因此非常適合用於儲存網頁位址和電子郵件地址。
訂單編號和序號最適合使用哪種BarCode格式?
在使用 IronBarcode 時,Code128 是訂單編號和序號等字母數字資料的理想格式。它對於現代應用程式極為高效,並能為混合字元集提供卓越的資料密度。
我可以從二進位資料建立BarCode嗎?
是的,IronBarcode 支援透過 CreateBarcode 方法,利用 System.Byte[] 陣列或 System.IO.Stream 輸入,從二進位資料建立 BarCode,讓您能夠編碼任何類型的二進位資訊。
BarCode可以儲存為哪些圖像格式?
IronBarcode 允許您將生成的 BarCode 儲存為多種圖像格式,包括 PNG、JPEG、BMP、GIF 和 TIFF。此程式庫提供靈活的匯出選項,以滿足不同的使用情境。
PDF417 BARCODE 最多可儲存多少資料?
using IronBarcode 建立的 PDF417 BarCode 最多可儲存 1,850 個英數字元,非常適合用於機票、運送標籤和政府身分證件等複雜資料。
哪種BarCode格式最適合用於行動票務?
Using IronBarcode, Aztec barcodes are the best choice for mobile ticketing and transportation applications. They occupy less space than QR codes, while still maintaining high data capacity and readability on mobile devices.
將IronBarcode實現於專案中需要什麼程式設計技能?
基本的C#程式設計知識足以將IronBarcode實現於專案中,因為它提供了簡單的方法和全面的文檔來指導開發者。
IronBarcode適合於小型專案和大型企業應用嗎?
IronBarcode設計為可擴展且多功能,使其適合小型專案和需要強大條碼解決方案的大型企業應用。

