C#でデータからバーコードを作成する方法

テキスト、URL、ID、バイナリ データから C# で BarCode を作成する

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

IronBarcodeは、C#開発者が文字列、バイト配列、およびメモリストリームを含むさまざまなデータソースからバーコードを生成することを可能にします。BarcodeWriter.CreateBarcode() メソッドを使用して、QRコード、Code128、およびPDF417などの複数のバーコード形式をサポートします。

クイックスタート: 1 行で文字列からバーコードを作成

IronBarcodeのAPIを使用して、最小限のセットアップでバーコードを生成します。この例では、たった1行のコードでシンプルな文字列からバーコードを作成する方法を示します。 包括的な例については、BarCodeクイックスタートガイドを確認してください。

  1. IronBarcode をNuGetパッケージマネージャでインストール

    PM > Install-Package BarCode
  2. このコード スニペットをコピーして実行します。

    var barcode = IronBarCode.BarcodeWriter.CreateBarcode("Order123", IronBarCode.BarcodeWriterEncoding.Code128);
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronBarcode を使い始めましょう無料トライアル

    arrow pointer


文字列から BarCode を作成するには?

異なる文字列タイプに最適なバーコード形式はどれですか?

異なる BarCode フォーマットは、特定のデータタイプや使用ケースに最適化されています。 サポートされているバーコード形式を理解することは、正しいエンコーディングを選択するのに役立ちます:

  • QRコード:URL、メールアドレス、大きなテキストデータに最適です。 エラー訂正で最大4,296文字の英数字をサポートします。
  • Code128:注文番号やシリアルコードなどの英数字データに最適です。 最新のアプリケーションのために非常に効率的です。
  • PDF417:航空券や政府のIDのような複雑なデータに最適です。 最大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")
$vbLabelText   $csharpLabel

生成された BarCode の結果はどのようなものですか?

このコードは、5つの異なるデータ例を5つのバーコードタイプにエンコードします:単純なテキストをAztecに、URLをQRコードに、数字IDをCode 93に、英数字IDをPDF417に、数字をCodabarに。 画像はPNGで保存されます。 高度なエクスポートオプションについては、Create Barcode as Image ガイドを参照してください。

特徴的な正方形の渦巻き模様を持つ 'Hello, World!' テキストを含む Aztec バーコード
バーコード生成機能を示す、URL 入力から生成された QR コード
黒と白の縦棒のパターンを示す、生成された Code93 バーコードの例
フライト ID の英数字データをエンコードした、積み重ねられた行を持つ PDF417 バーコード
開始/停止文字とともに数値データを表示する Codabar バーコード

生成された BarCode をカスタマイズするにはどうすればよいですか?

バーコードを作成した後、IronBarcodeのスタイリング機能を使用して外観を向上させます。 ここでは、色、注釈、余白を使用してカスタマイズされたBarCodeを作成する方法を説明します:

: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")
$vbLabelText   $csharpLabel

スタイリング オプションについては、Customize and Style BarCode チュートリアルを参照してください。

バイト配列から BarCode を作成するには?

なぜバイト配列 BarCode では文字エンコーディングが重要なのですか?

バイト配列からバーコードを作成するには、各バーコードタイプが異なる文字エンコーディングを受け入れるため、文字エンコーディングが必要な BarcodeEncoding と一致することを確認してください。 出力データ形式を理解することで、互換性を確保します。 以下はIronBarcodeで使用可能な文字エンコーディングです:

  • ASCII:英語の文字、数字、句読点に1文字あたり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です。}]

バイト配列を 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")
$vbLabelText   $csharpLabel

このスニペットは、5つの文字列入力を System.Byte[] オブジェクトに変換します。 これらのバイト配列をバーコードに変換するには、BarcodeWriter に渡し、希望する BarcodeEncoding を指定してください。 必要に応じて、バーコードサイズのための MaxWidth および MaxHeight を設定してください。

バイナリデータと特殊文字を扱う

バイナリデータや特殊文字を扱う場合は、Writing Unicode BarCode を使用して国際的な文字をサポートしてください。 バイナリデータを扱う例です:

: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")
$vbLabelText   $csharpLabel

メモリ ストリームから BarCode を作成するには?

バーコード生成にメモリストリームを使用するのはいつですか?

メモリストリームは、Web アプリケーションやデータベース処理で動的に生成されるコンテンツなど、ディスクストレージを必要としないデータを処理する場合に最適です。 Export BarCode as Stream ガイドは、ストリームベースのワークフローに関する追加情報を提供します。

次のコードは、メモリ・ストリームから 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")
$vbLabelText   $csharpLabel

メモリ ストリームを使用する利点は何ですか?

このスニペットは、MemoryStreamSystem.Byte[] オブジェクトから作成し、それを入力として BarcodeWriter.CreateBarcode()MemoryStream データからバーコードを生成します。 メモリストリームにはいくつかの利点があります:

1.パフォーマンス: ディスクI/O操作がなく、一時データに対してより高速です。 2.セキュリティ:データはメモリ内に残り、機密情報の露出を減らします。 3.柔軟性:ストリームベースのAPIやライブラリとの容易な統合 4.リソース効率:自動メモリ管理と廃棄

高度なストリーム処理の例

ストリーム処理を含む複雑なシナリオでは、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)
$vbLabelText   $csharpLabel

マルチスレッド アプリケーションでの非同期操作とパフォーマンスの向上については、Use Async and Multithread ガイドを参照してください。

よくある質問

C# でテキストから BarCode を作成するには?

C#でIronBarcodeを使ってテキストからバーコードを作成することができます:BarcodeWriter.CreateBarcode("YourText", BarcodeWriterEncoding.Code128)。IronBarcodeはQRコード、Code128、PDF417、Aztecなど複数のフォーマットをサポートしています。

BarCode にはどのようなデータをエンコードできますか?

IronBarcodeは文字列、URL、ID、バイナリデータ(バイト配列)、メモリストリームなど様々なデータタイプをエンコードすることができます。このライブラリは、選択したバーコード形式に基づいて変換とエンコードを自動的に処理します。

URLにはどのバーコード形式を使用すればよいですか?

QRコードはIronBarcodeのURLエンコードに最適です。QRコードは最大4,296文字の英数字を格納でき、エラー訂正機能を備えているため、ウェブアドレスや電子メールアドレスに最適です。

注文番号やシリアルコードに最適なバーコード形式は?

Code128は、IronBarcodeを使用する際の注文番号やシリアルコードなどの英数字データに最適なフォーマットです。最新のアプリケーションでは非常に効率的で、文字セットが混在していても優れたデータ密度を提供します。

バイナリデータからバーコードを作成できますか?

はい、IronBarcodeはSystem.Byte[]配列またはSystem.IO.Stream入力を使用したバイナリデータからのCreateBarcodeメソッドによるバーコード作成をサポートしており、あらゆるタイプのバイナリ情報をエンコードすることができます。

バーコードはどのような画像形式で保存できますか?

IronBarcodeでは、生成されたバーコードをPNG、JPEG、BMP、GIF、TIFFなどの複数の画像形式で保存することができます。このライブラリはさまざまな使用ケースに対応する柔軟なエクスポートオプションを提供します。

PDF417バーコードにはどれくらいのデータを格納できますか?

IronBarcodeで作成されたPDF417バーコードは、最大1,850文字の英数字を格納することができ、航空券、配送ラベル、政府IDのような複雑なデータに最適です。

モバイルチケットに最適なバーコード形式は?

Aztecバーコードは、IronBarcodeを使用する場合、モバイルチケットや交通機関のアプリケーションに最適です。高いデータ容量とモバイルデバイスでの読みやすさを維持しながら、QRコードよりも少ないスペースで済みます。

プロジェクトにIronBarcodeを実装するために必要なプログラミングスキルは何ですか?

IronBarcodeをプロジェクトに実装するためには、C#プログラミングの基本的な知識があれば十分で、開発者をガイドするための簡単なメソッドと包括的なドキュメントが提供されています。

IronBarcodeは小規模プロジェクトと大規模エンタープライズアプリケーションの両方に適していますか?

IronBarcodeはスケーラブルかつ多用途に設計されており、小規模プロジェクトおよび強力なバーコードソリューションを必要とする大規模エンタープライズアプリケーションの両方に適しています。

Hairil Hasyimi Bin Omar
ソフトウェアエンジニア
すべての優れたエンジニアのように、ハイリルは熱心な学習者です。彼はC#、Python、Javaの知識を磨き、その知識を活用してIron Softwareのチームメンバーに価値を追加しています。ハイリルはマレーシアのマラ工科大学からIron Softwareのチームに参加し、化学およびプロセス工学の学士号を取得しました。
準備はできましたか?
Nuget ダウンロード 2,317,217 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package BarCode
サンプルを実行する 文字列が BarCode になるのを見る。