從文字、URLs、IDs和二進位資料生成條碼於C
IronBarcode使C#開發者能夠從各種資料來源生成條碼,包括字串、位元組陣列和記憶體流,使用BarcodeWriter.CreateBarcode()方法支持多種條碼格式,如QR Code、Code128和PDF417。
快速入門:在一行中從字串建立條碼
使用IronBarcode的API來生成條碼,設置簡單。本範例展示了如何僅使用一行程式碼從簡單字串建立條碼。 如需完整範例,請查看條碼快速入門指南。
最小化工作流程(5步驟)
- 下載C#庫以從資料建立條碼
- 使用System.String輸入透過
CreateBarcode方法建立條碼 - 使用System.Byte[]輸入透過
CreateBarcode方法建立條碼 - 使用System.IO.Stream輸入透過
CreateBarcode方法建立條碼 - 將生成的條碼儲存為多種影像格式
如何從字串生成條碼?
不同字串型別的最佳條碼格式是什麼?
不同的條碼格式優化用於特定資料型別和用例。 了解支持的條碼格式有助於選擇合適的編碼:
- QR Codes:最適合用于URLs、電子郵件地址和大型文字資料。 支持最多4,296個字母數字元,附帶錯誤修正。
- Code128:理想用於字母資料如訂單號和序列碼。 對現代應用程式高度有效。
- PDF417:完美用於複雜資料如飛行票和政府身份證。 可儲存最多1,850個字母數字元。
- Code93:對郵政服務和庫存跟蹤而言非常出色,使用緊湊的資料。
- Aztec:適用於移動票務和交通,比QR碼更省空間。
以下程式碼演示了如何用字串寫入條碼:
: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 Code,數字ID至Code 93,字母數ID至PDF417,及數字至Codabar。 影像以PNG格式儲存。 如需進階匯出選項,請參閱建立條碼為影像指南。
文字
URL
收據ID
航班ID
數字
如何自訂生成的條碼?
建立條碼後,使用IronBarcode的造型功能提升其外觀。 這是如何建立帶有顏色、註解和邊距的自訂條碼:
:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-data-3.cs
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.AddBarcodeValueTextBelowBarcode();
myBarcode.AddAnnotationTextAboveBarcode("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")
如需更多造型選項,請探索自訂與造型條碼教程。
如何從位元組陣列生成條碼?
為何位元組陣列條碼的字元編碼很重要?
要從位元組陣列建立條碼,請確保字元編碼與所需的BarcodeEncoding對齊,因為每種條碼型別接受的字元編碼不同。 了解輸出資料格式以確保相容性。 以下是IronBarcode中可用的字元編碼:
- ASCII:對於英文字母、數字和標點符號每字元使用7位。 範例:'A' = 65。
- UTF-8:適合所有Unicode字元的可變長度編碼。 範例:€ = 0xE2 0x82 0xAC。
- UTF-16:對Unicode使用16位序列。 範例:α = 0x03B1。
- UTF-32:每字元固定32位序列。 範例:α = 0x000003B1。
- ISO-8859-1:延伸ASCII用於西歐語言。 範例:é = 233。
[{i:在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[]物件。 要將這些位元組陣列轉換為條碼,將它們傳遞給BarcodeEncoding。 可選擇設置MaxHeight來控制條碼尺寸。
處理二進位資料和特殊字元
處理二進位資料或特殊字元時,請使用撰寫Unicode條碼以支持國際字元。 這是處理二進位資料的範例:
:path=/static-assets/barcode/content-code-examples/how-to/create-barcode-from-data-5.cs
using IronBarCode;
using System.Text;
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 = QRCodeWriter.CreateQrCode(
base64Data,
errorCorrectionLevel: QRCodeWriter.QrErrorCorrectionLevel.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 = QRCodeWriter.CreateQrCode(
base64Data,
errorCorrectionLevel:=QRCodeWriter.QrErrorCorrectionLevel.High
)
' Save with appropriate size for data density
binaryBarcode.ResizeTo(500, 500)
binaryBarcode.SaveAsPng("binary-data-qr.png")
如何從記憶體流生成條碼?
什麼時候應使用記憶體流生成條碼?
處理不需要磁碟儲存的資料時,記憶體流最有效,例如網頁應用程式或資料庫處理中的動態生成內容。 以流匯出條碼指南提供了附加的背景知識來進行基於流的工作流程。
以下程式碼展示了從記憶體流生成條碼:
: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")
使用記憶體流有什麼好處?
此片段從MemoryStream資料生成條碼。 記憶體流提供了幾個優勢:
- 效能:無磁碟I/O操作,對暫時資料更快
- 安全性:資料保留在記憶體中,減少敏感資訊的暴露
- 靈活性:輕鬆整合到基於流的API和程式庫
- 資源效率:自動記憶體管理與處理
進階流處理範例
對於涉及流處理的複雜場景,將IronBarcode與其他流操作結合:
using IronBarCode;
using System.IO;
using System.Text;
// 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 orderNumbers = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNumbers);
using IronBarCode;
using System.IO;
using System.Text;
// 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 orderNumbers = new List<string> { "ORD-001", "ORD-002", "ORD-003" };
var barcodes = GenerateBarcodeStreams(orderNumbers);
Imports IronBarCode
Imports System.IO
Imports System.Text
' 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 orderNumbers As New List(Of String) From {"ORD-001", "ORD-002", "ORD-003"}
Dim barcodes = GenerateBarcodeStreams(orderNumbers)
對於多執行緒應用程式中的異步操作和改進效能,請參閱使用異步和多執行緒指南。
常見問題
如何在C#中從文字建立條碼?
您可以使用IronBarcode在C#中從文字建立條碼,只需一行程式碼:BarcodeWriter.CreateBarcode('YourText', BarcodeWriterEncoding.Code128)。IronBarcode支持多種格式,包括QR碼、Code128、PDF417、Aztec等。
我可以將哪些型別的資料編碼為條碼?
IronBarcode允許您編碼各種資料型別,包括字串、URL、ID、二進制資料(位元組陣列)和記憶流。程式庫會根據您選擇的條碼格式自動處理轉換和編碼。
我應該使用哪種條碼格式來標記URL?
QR碼是IronBarcode中編碼URL的最佳選擇。QR碼可儲存多達4,296個字母數字字元,並包括錯誤校正功能,使其非常適合於網頁地址和電子郵件地址。
哪種條碼格式最適合訂單號和序列碼?
當使用IronBarcode時,Code128是對字母資料如訂單號和序列碼的理想格式。它對於現代應用程式非常高效,並為混合字元集提供了出色的資料密度。
我可以從二進制資料建立條碼嗎?
是的,IronBarcode支持使用System.Byte[]陣列或System.IO.Stream輸入通過CreateBarcode方法建立來自二進制資料的條碼,使您能夠編碼任何型別的二進制資訊。
我可以用哪些影像格式保存條碼?
IronBarcode允許您將生成的條碼保存為多種影像格式,包括PNG、JPEG、BMP、GIF和TIFF。程式庫為不同的使用情境提供了靈活的導出選項。
PDF417條碼中能儲存多少資料?
使用IronBarcode建立的PDF417條碼可以儲存多達1,850個字母數字字元,使其非常適合複雜資料,如機票、運單標籤和政府ID。
哪種條碼格式最適合移動票務?
Aztec條碼在使用IronBarcode時是移動票務和交通應用的最佳選擇。它們需要的空間比QR碼少,同時在移動裝置上保持高資料容量和可讀性。
將IronBarcode實現於專案中需要什麼程式設計技能?
基本的C#程式設計知識足以將IronBarcode實現於專案中,因為它提供了簡單的方法和全面的文件來指導開發者。
IronBarcode適合於小型專案和大型企業應用嗎?
IronBarcode設計為可擴展且多功能,使其適合小型專案和需要強大條碼解決方案的大型企業應用。

