從文本、網址、ID、數字、二進位數據和記憶體流創建條碼

This article was translated from English: Does it need improvement?
Translated
View the article in English

海里海西米·賓·奧馬

可以從字串、二進位資料或記憶體流中生成條碼。 所有這些數據格式都可以用作輸入到 BarcodeWriter.CreateBarcode() method.


開始使用 IronBarcode

立即在您的專案中使用IronBarcode,並享受免費試用。

第一步:
green arrow pointer

從字符串創建條碼

以下代碼片段示範如何用字串寫入條碼:

: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")
VB   C#

在這段程式碼片段中,我們將五個不同的數據範例編碼成五種不同的條碼類型:簡單文字到Aztec條碼、URL到QR Code、數字ID到Code 93、字母數字ID到PDF417,以及數字到Codabar。 這些圖像然後被保存為 PNG。 以下是上述程式碼片段生成的圖片:

文本
網址
收據編號
航班號碼
數字

從位元組陣列建立條碼

要從位元組陣列中的資料創建條碼,首先確保字元編碼符合要求 條碼編碼,因為每種條碼類型接受不同的字符編碼。 以下是可以在 IronBarcode 中使用的不同字符编码:

  • ASCII (美國資訊交換標準碼):

    • 定義:此編碼使用 7 位元來表示每個字符,包括英文字母、數字、標點符號和控制字符。
  • 範例:字母'A'的ASCII碼是65,'B'的是66,依此類推。
  • UTF-8 (統一碼轉換格式 8 位元):

    • 定義:UTF-8 是一種可變長度字符編碼,能夠表達所有 Unicode 字符。 它使用 8 位元序列來編碼字符,使用的位元組數量取決於字符。
  • 範例:字母“A”的UTF-8編碼與其ASCII碼點相同,即65。然而,對於ASCII範圍外的字符,UTF-8使用多個字節。 例如,歐元符號的UTF-8編碼是(€)是序列 0xE2 0x82 0xAC。
  • UTF-16 (統一碼轉換格式 16位元):

    • 定義:UTF-16 是另一種使用 16 位元序列來編碼字符的可變長度字符編碼。 它能夠表示整個Unicode字符集。
  • 範例:拉丁字母“A”的UTF-16編碼是0x0041,希臘字母alpha的UTF-16編碼是(α)是 0x03B1。
  • UTF-32 (Unicode 轉換格式 32 位元):

    • 定義:UTF-32對每個字符使用固定的32位元序列,這使得它直接了當,但對於ASCII範圍外的字符來說,在存儲空間上可能會造成浪費。
  • 範例:拉丁字母'A'的UTF-32編碼是0x00000041,希臘字母alpha的UTF-32編碼是(α)0x000003B1.
  • ISO-8859-1 (Latin-1):

    • 定義:ISO-8859-1 是一種字符編碼,它擴展了 ASCII 以包括來自西歐語言的字符。 它為每個字符使用8位元。

    • 示例:字母「A」的 ISO-8859-1 代碼仍為 65,「B」是 66,但它也包括像「é」這樣的字符。(233)和 'ü'(252).

    [{我(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")
VB   C#

在給定的片段中,5個字串輸入被轉換為一個 System.Byte[] object. 要將這些位元組陣列轉換為條碼,將它們包含為參數在 條碼編寫器, 以及所需的 條碼編碼. 可選擇設置 最大寬度最大高度 條碼大小。

從記憶體流創建條形碼

以下程式碼片段演示如何從記憶體流生成條形碼:

: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")
VB   C#

此代碼片段是對前一個的擴展。 在這裡,我們創建新的 記憶體流 來自早期的實例 System.Byte[] objects. 與以前一樣,用戶可以輸入這些新實例到 BarcodeWriter.CreateBarcode() 生成條碼จาก 記憶體流 物件。

Hairil related to 從記憶體流創建條形碼

海里海西米·賓·奧馬

軟體工程師

和所有優秀的工程師一樣,Hairil 是一位熱衷學習的人。他正在精進自己對 C#、Python 和 Java 的知識,利用這些知識為 Iron Software 團隊的成員創造價值。Hairil 從馬來西亞的馬來西亞工藝大學加入了 Iron Software 團隊,他在那裡獲得了化學和過程工程學士學位。