
C# 文字列からバーコードを生成する:IronBarcodeによる完全なチュートリアル
文字列データを BarCode 画像にエンコードすることは、在庫システム、小売アプリケーション、文書管理の基本要件です。 このチュートリアルでは、 IronBarcodeを使用して C# で文字列値からバーコードを生成する方法を説明します。インストールから、バーコード画像を複数の形式で保存する方法、本番環境向けにスタイルを設定する方法、データベースデータから大量のバーコードを処理する方法まで、すべてを網羅しています。
IronBarcodeは、 Iron Softwareが開発した.NETライブラリで、Windowsアプリケーション、Webサービス、クラウドホスト型APIを開発する.NET開発者向けに、バーコードの生成と読み取りを簡素化します。無料トライアルを開始して、以下のコード例を実際に試してみてください。
IronBarcodeを.NETプロジェクトにインストールするにはどうすればよいですか?
IronBarcodeのインストールは、.NET CLIまたはVisual Studio内のNuGetパッケージマネージャーを使用すれば、数秒で完了します。
オプション1 - .NET CLI( .NET 10に推奨):
dotnet add package Barcode
オプション2 - Visual StudioのNuGetパッケージマネージャーコンソール:
または、NuGetパッケージマネージャーGUIで"IronBarcode"を検索し、公式パッケージをインストールします。 このライブラリは、.NET Framework 4.6.2以降および.NET 5から.NET 10までを対象としており、最新 for .NETワークロードとの互換性を確保しています。
インストール後、各ファイルの先頭に1つのusingディレクティブを追加して、バーコードを生成または読み取ります。
using IronBarCode;Imports IronBarCodeそのディレクティブは、このガイドで説明されている公開タイプであるBarcodeEncodingを公開します。
文字列から簡単なバーコードをC#で生成するには?
BarcodeWriter.CreateBarcodeメソッドは、バーコード生成のエントリーポイントです。 エンコードしたい文字列をGeneratedBarcodeオブジェクトが返されます。
using IronBarCode;
// Generate a Code 128 barcode from a product SKU string
string productCode = "SKU-78432-A";
var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128);
barcode.SaveAsPng("product_barcode.png");Imports IronBarCode
' Generate a Code 128 barcode from a product SKU string
Dim productCode As String = "SKU-78432-A"
Dim barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128)
barcode.SaveAsPng("product_barcode.png")バーコード生成出力
C# 文字列からバーコードを生成: IronBarcodeを使用した完全なチュートリアル: 画像1 - 出力されたバーコード例
これにより、製品文字列からCode128バーコードイメージが作成され、PNGファイルとして保存されます。CreateBarcodeメソッドはすべてのエンコードの複雑さを処理するため、最小限のコードでバーコードイメージを生成できます。 IronBarcodeは、PNG、JPEG、GIF、TIFF、BMP、およびSVG形式での保存をサポートしています。
この方法は、出力寸法を制御するためのオプションの幅と高さのパラメータも受け入れ、対象環境での適切なスキャン品質を確保するのに役立ちます。
using IronBarCode;
// Specify width and height in pixels for the barcode image
string productCode = "SKU-78432-A";
var barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128, 400, 120);
barcode.SaveAsPng("product_barcode_sized.png");Imports IronBarCode
' Specify width and height in pixels for the barcode image
Dim productCode As String = "SKU-78432-A"
Dim barcode = BarcodeWriter.CreateBarcode(productCode, BarcodeEncoding.Code128, 400, 120)
barcode.SaveAsPng("product_barcode_sized.png")寸法を明示的に設定することは、特に感熱式ラベルプリンター用のラベルを作成する際に役立ちます。感熱式ラベルプリンターでは、出力サイズがラベル用紙のサイズと完全に一致する必要があるからです。
IronBarcodeはどのようなバーコードフォーマットをサポートしていますか?
IronBarcodeは、さまざまな用途に対応するため、20種類以上のバーコードタイプをサポートしています。 適切なフォーマットを選択することで、スキャンが正しく行われ、アプリケーションに必要なデータ容量が確保されます。
using IronBarCode;
string url = "https://ironsoftware.com/csharp/barcode/";
string numericId = "0123456789012";
// QR Code -- best for URLs, text data, and mobile scanning
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode)
.SaveAsPng("qrcode.png");
// UPC-A -- required for retail point-of-sale systems (12 digits)
BarcodeWriter.CreateBarcode(numericId, BarcodeEncoding.UPCA)
.SaveAsPng("upc_barcode.png");
// PDF417 -- suited for documents that need higher data capacity
BarcodeWriter.CreateBarcode("Extended product details here", BarcodeEncoding.PDF417)
.SaveAsJpeg("pdf417_barcode.jpeg");Imports IronBarCode
Dim url As String = "https://ironsoftware.com/csharp/barcode/"
Dim numericId As String = "0123456789012"
' QR Code -- best for URLs, text data, and mobile scanning
BarcodeWriter.CreateBarcode(url, BarcodeEncoding.QRCode) _
.SaveAsPng("qrcode.png")
' UPC-A -- required for retail point-of-sale systems (12 digits)
BarcodeWriter.CreateBarcode(numericId, BarcodeEncoding.UPCA) _
.SaveAsPng("upc_barcode.png")
' PDF417 -- suited for documents that need higher data capacity
BarcodeWriter.CreateBarcode("Extended product details here", BarcodeEncoding.PDF417) _
.SaveAsJpeg("pdf417_barcode.jpeg")BarCode画像出力について
C# 文字列からバーコードを生成: IronBarcodeを使用した完全なチュートリアル: 画像2 - 生成されたバーコード
下の表は、各主要フォーマットを使用するタイミングを要約しています:
| 形式 | 最適な用途 | 文字セット |
|---|---|---|
QRCode | URL、テキスト、モバイルスキャン | ASCII + ユニコード |
Code128 | 英数字の製品コード、配送ラベル | 完全なASCII |
UPCA / EAN13 | 小売POSシステム | 数値のみ |
PDF417 | 身分証明書、搭乗券、書類 | バイナリデータ |
DataMatrix | 小型ラベル、電子機器 | ASCII + バイナリ |
Aztec | 交通機関のチケット、モバイル搭乗券 | ASCII + ユニコード |
サポートされているエンコーディングの全リストについては、 IronBarcodeバーコードタイプのリファレンスを参照してください。
バーコード画像をC#でカスタマイズおよびスタイル設定するには?
IronBarcodeは、基本的なバーコード生成機能に加え、外部の画像処理ライブラリを使用することなく、色調整、注釈の追加、バーコード画像のサイズ変更などを行うための流暢なスタイリングAPIを提供しています。
using IronBarCode;
using IronSoftware.Drawing;
string orderNumber = "ORD-2024-00542";
var styledBarcode = BarcodeWriter.CreateBarcode(orderNumber, BarcodeEncoding.Code128);
// Adjust colors to match brand identity
styledBarcode.ChangeBarCodeColor(Color.DarkBlue);
styledBarcode.ChangeBackgroundColor(Color.White);
// Add readable text annotations above and below the bars
styledBarcode.AddAnnotationTextAboveBarcode("Order Number", new Font("Arial", 12), Color.Black, 5);
styledBarcode.AddBarcodeValueTextBelowBarcode(new Font("Arial", 10), Color.Gray, 5);
// Resize to fit a thermal label at 400 x 150 pixels
styledBarcode.ResizeTo(400, 150);
styledBarcode.SaveAsPng("styled_order_barcode.png");Imports IronBarCode
Imports IronSoftware.Drawing
Dim orderNumber As String = "ORD-2024-00542"
Dim styledBarcode = BarcodeWriter.CreateBarcode(orderNumber, BarcodeEncoding.Code128)
' Adjust colors to match brand identity
styledBarcode.ChangeBarCodeColor(Color.DarkBlue)
styledBarcode.ChangeBackgroundColor(Color.White)
' Add readable text annotations above and below the bars
styledBarcode.AddAnnotationTextAboveBarcode("Order Number", New Font("Arial", 12), Color.Black, 5)
styledBarcode.AddBarcodeValueTextBelowBarcode(New Font("Arial", 10), Color.Gray, 5)
' Resize to fit a thermal label at 400 x 150 pixels
styledBarcode.ResizeTo(400, 150)
styledBarcode.SaveAsPng("styled_order_barcode.png")スタイル付きバーコード出力
C# 文字列からバーコードを生成: IronBarcodeを使用した完全なチュートリアル: 画像3 - スタイル付きバーコード
どのようなスタイリングプロパティが利用できますか?
GeneratedBarcodeクラスはいくつかのスタイリングメソッドのカテゴリを公開します。
- 色の制御 --
Colorを受け付けます。 -テキスト注釈- バーコードの上または下に、カスタムフォント、サイズ、色でテキストを追加できます -余白制御-- バーコードの周囲に余白を設定することで、ラベルが密集している場合でもスキャナーのパフォーマンスが向上します。 -回転-- 縦向きが必要なラベルレイアウトのために、バーコード画像を横または斜めに回転させます。 -リサイズ-- エンコードされたデータを歪ませることなく、ピクセル単位で幅と高さを固定します。
スタイリング手法は自然に連携し、コードの可読性を維持しながら、アプリケーションのビジュアルデザインにマッチしたバーコード画像を生成します。 より詳しい手順については、バーコードスタイリングのハウツーガイドを参照してください。
データベースデータから複数のバーコードを生成するにはどうすればよいですか?
実際のアプリケーションでは、製品カタログ、在庫補充、注文発送ワークフローなど、複数のアイテムの集合体に対してバーコードを生成する必要が生じることがよくあります。 IronBarcodeは、追加の設定なしでバッチ処理に対応します。
using IronBarCode;
// Data sourced from a database query result
List<string> productIds =
[
"PROD-001-X",
"PROD-002-Y",
"PROD-003-Z",
"PROD-004-W"
];
// Generate one barcode image per product ID
foreach (string productId in productIds)
{
var barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128, 300, 100);
barcode.SaveAsPng($"barcodes/{productId}.png");
}Imports IronBarCode
' Data sourced from a database query result
Dim productIds As New List(Of String) From {
"PROD-001-X",
"PROD-002-Y",
"PROD-003-Z",
"PROD-004-W"
}
' Generate one barcode image per product ID
For Each productId As String In productIds
Dim barcode = BarcodeWriter.CreateBarcode(productId, BarcodeEncoding.Code128, 300, 100)
barcode.SaveAsPng($"barcodes/{productId}.png")
Next出力 BarCode
C# 文字列からバーコードを生成: IronBarcodeを使用した完全なチュートリアル: 画像4 - 複数生成されたバーコード
大量処理への対応
上記のループパターンは、変更を加えることなく数千件のレコードにも対応できます。 大量のバーコード生成において、 IronBarcodeは非同期処理とマルチスレッド処理をサポートし、マルチコアサーバー上でのスループットを最大化します。
生成されたバーコード画像は、PDFレポートに埋め込んだり、ラベルに印刷したり、文書管理システムに保存したりすることができます。 各画像は、元の文字列をバイナリパターンでエンコードしており、バーコードスキャナーがそれをデコードしてテキストに戻す。
1回の実行で数千個のバーコードを生成するような本番バッチジョブの場合は、ループを開始する前にIronBarcodeエンジンを事前にウォームアップすることを検討してください。 最初のCreateBarcodeの呼び出しは、内部エンコーディングキャッシュを初期化します。 その結果、同じプロセス内での後続の呼び出しはより速く完了する。 バッチ全体を単一の時間指定メソッドでラップすることで、バッチが終了する前に、生成されたバーコードの総数、エンコードの失敗、経過時間などの集計統計情報を簡単にログに記録することもできます。 このパターンはHangfireや.NET標準のIHostedServiceといったバックグラウンドジョブフレームワークとスムーズに統合します。
バーコードをさまざまなファイル形式で保存およびエクスポートするにはどうすればよいですか?
GeneratedBarcodeは、ビジネスアプリケーションで使用される最も一般的な画像形式をカバーする保存メソッドを提供します。
using IronBarCode;
string value = "EXPORT-TEST-001";
var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120);
// Save to disk in multiple formats
barcode.SaveAsPng("barcode.png"); // Lossless -- best for print
barcode.SaveAsJpeg("barcode.jpg"); // Compressed -- smaller file size
barcode.SaveAsGif("barcode.gif"); // Compatible with legacy systems
barcode.SaveAsTiff("barcode.tiff"); // Multi-page archival format
barcode.SaveAsBmp("barcode.bmp"); // Uncompressed bitmap
// Export as a byte array for in-memory operations (API responses, database storage)
byte[] pngBytes = barcode.ToStream(Image形式.Png).ToArray();
適切なフォーマットの選択は、最終消費者のニーズによって決まります。 PNGは、印刷用のラベルや文書に適しています。 JPEGは、ストレージ容量が制約となる用途に適しています。 バーコードをPDFドキュメントに直接埋め込むためには、IronBarcodeはIronPDFと統合して、プログラム的にバーコード画像をスタンプまたは挿入します。
ToStreamオーバーロードは、ディスクへの書き込みが望ましくないウェブAPIやクラウドファンクションで特に価値があります。 バイト配列は、データベースのBLOB列に格納したり、クラウドストレージにアップロードしたり、ファイルシステム上の中間ファイルを経由せずにHTTPレスポンスに直接ストリーミングしたりできます。
エンコード前に文字列データを検証するにはどうすればよいですか?
すべての文字列がすべてのバーコード形式に対して有効であるとは限りません。 UPC-Aは正確に12桁の数字を必要とし、EAN-13は13桁を必要とします。また、一部の1次元フォーマットでは、限られたASCIIサブセット以外の文字は拒否されます。 無効なデータをIronBarCodeEncodingExceptionが発生します。 呼び出しをtry/catchブロックで囲み、入力値を事前に検証することで、本番環境での未処理例外を防ぐことができます。
using IronBarCode;
bool TryCreateBarcode(string value, BarcodeEncoding encoding, string outputPath)
{
if (string.IsNullOrWhiteSpace(value))
{
Console.WriteLine("Value must not be empty.");
return false;
}
try
{
var barcode = BarcodeWriter.CreateBarcode(value, encoding);
barcode.SaveAsPng(outputPath);
return true;
}
catch (IronBarCodeEncodingException ex)
{
Console.WriteLine($"Encoding failed: {ex.Message}");
return false;
}
}
// Usage
TryCreateBarcode("SKU-001", BarcodeEncoding.Code128, "output.png"); // succeeds
TryCreateBarcode("NOT-NUMERIC", BarcodeEncoding.UPCA, "output.png"); // encoding exceptionImports IronBarCode
Function TryCreateBarcode(value As String, encoding As BarcodeEncoding, outputPath As String) As Boolean
If String.IsNullOrWhiteSpace(value) Then
Console.WriteLine("Value must not be empty.")
Return False
End If
Try
Dim barcode = BarcodeWriter.CreateBarcode(value, encoding)
barcode.SaveAsPng(outputPath)
Return True
Catch ex As IronBarCodeEncodingException
Console.WriteLine($"Encoding failed: {ex.Message}")
Return False
End Try
End Function
' Usage
TryCreateBarcode("SKU-001", BarcodeEncoding.Code128, "output.png") ' succeeds
TryCreateBarcode("NOT-NUMERIC", BarcodeEncoding.UPCA, "output.png") ' encoding exception入力データの適切なフォーマットを選択する
バーコード形式が実行時に設定可能な場合、コンテンツタイプを適切なエンコーディングにマッピングするヘルパー関数によって、サイレントエラーを回避できます。
- 文字列にURL、メールアドレス、またはマルチバイトユニコード文字が含まれる場合は、
BarcodeEncoding.QRCodeを使用します。 - 一般的な英数字文字列が約80文字までであれば
BarcodeEncoding.Code128を使用します。 - データが純粋に数値であり長さが固定されている場合のみ、
BarcodeEncoding.UPCAを使用します。 チェックデジットはIronBarcodeによって自動的に計算されます。 - 非常に短い英数字文字列で物理的に小さいラベルに収める必要がある場合は、
BarcodeEncoding.DataMatrixを使用します。
フォーマット検証を実行してからCreateBarcodeを呼び出すことで、エラーメッセージをアプリケーションログの暗号化されたスタックトレースではなく、ユーザー向けのものに保ちます。
文字列値からバーコードを読み取るにはどうすればよいですか?
多くのシステムにおいて、バーコードの生成はワークフローの半分に過ぎない。 バーコード読み取りAPIは、画像を元の文字列に戻すためにBarcodeReader.Readを使用します。
using IronBarCode;
// Read all barcodes from an image file
var results = BarcodeReader.Read("product_barcode.png");
foreach (var result in results)
{
// Output the decoded string value
Console.WriteLine($"Decoded value: {result.Value}");
Console.WriteLine($"形式 detected: {result.BarcodeType}");
}Imports IronBarCode
' Read all barcodes from an image file
Dim results = BarcodeReader.Read("product_barcode.png")
For Each result In results
' Output the decoded string value
Console.WriteLine($"Decoded value: {result.Value}")
Console.WriteLine($"形式 detected: {result.BarcodeType}")
Nextこれにより、往復バーコードワークフローを簡単に構築できます。つまり、製品レコードからバーコードを生成し、ディスクまたはラベルプリンターのキューに保存し、後で物理的なラベルをスキャンして値をデコードし、レコードを検索します。 PDFファイルからバーコードを読み取る、またはライブカメラフィード向けには、IronBarcodeは同じ簡素なAPIを持つ専用メソッドを提供しています。
ASP.NET Core Web APIでIronBarcodeを使用するにはどうすればよいでしょうか?
IronBarcodeは、ASP.NET Coreコントローラーと最小限のAPIハンドラー内で動作します。 最も一般的なパターンは、バーコード画像をファイルとして返すか、ブラウザでレンダリングするためのbase64エンコードされたデータURIを返す。
using IronBarCode;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// Minimal API endpoint -- returns a barcode PNG for the given value
app.MapGet("/barcode/{value}", (string value) =>
{
var barcode = BarcodeWriter.CreateBarcode(value, BarcodeEncoding.Code128, 400, 120);
byte[] imageBytes = barcode.ToStream(Image形式.Png).ToArray();
return Results.File(imageBytes, "image/png");
});
app.Run();
このエンドポイントは、URLパスで渡された任意の値に対して、必要に応じてバーコードを生成します。 本番環境への導入においては、同じバーコード値に対するリクエストが繰り返されても画像が再生成されないように、キャッシュ機能を追加してください。 依存性注入やレスポンスキャッシュなど、より詳細な手順については、 ASP.NETバーコード生成チュートリアル全文をご覧ください。
次のステップは何ですか?
IronBarcodeを使えば、C#で文字列データからバーコードを生成するのは簡単です。 流暢なAPIは、バーコードエンコードの複雑さを処理すると同時に、カスタマイズやバッチ処理のための柔軟性も提供します。 在庫管理用のシンプルなCode 128バーコードであれ、モバイルアプリケーション用のQRコードであれ、 IronBarcodeは.NETアプリケーション向けに信頼性の高いバーコード機能を提供します。
さらに詳しく知りたい場合は:
IronBarcodeをダウンロードし、このガイドのコードサンプルをローカルで実行してください。
- 本番環境への導入には**ライセンスを購入してください。ライセンスには無料トライアル期間が含まれています。 APIリファレンス、高度な設定、プラットフォーム固有の注意事項については、ドキュメントを参照してください。 QRコード生成、バーコードスキャン、PDF統合などに関するコード例をご覧ください**。
- ASP.NETバーコード統合 -- MVCビューとRazor Pagesでバーコードをレンダリングするための完全なガイド
- バーコードスキャナーとの連携- C# で画像、PDF、USB スキャナーからバーコードを読み取ります

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。
関連する記事


