フッターコンテンツにスキップ
IRONBARCODEの使用

C# のデータ マトリックス ジェネレーター - コード例付きの完全なチュートリアル

データマトリックスバーコードは、小さな物理的領域に大量のエンコードされたデータを詰め込むことができるため、医薬品のラベル表示、電子部品のマーキング、スペースが限られている在庫管理システムでの品目追跡などに最適な選択肢となっています。 このチュートリアルでは、 IronBarcodeを使用して C# でデータマトリックスバーコードを生成し、その外観をカスタマイズし、さまざまなデータ型をエンコードし、さまざまなファイル形式にエクスポートする方法を、すべて分かりやすく実用的なコードで解説します。

今IronBarcodeを始めましょう。
green arrow pointer

データマトリックスバーコードの特長とは?

データマトリクスバーコードは、白黒のドットを行と列に並べたグリッドでデータをエンコードする2次元シンボルです。 UPCやEANといった従来の直線型バーコードとは異なり、10×10モジュールという小さなスペースに、最大2,335文字の英数字、または3,116桁の数字を保存できます。 内蔵されたリード・ソロモン式誤り訂正機能により、シンボルの最大30%が破損していても、最新のバーコードスキャナーで正確に読み取ることができます。

これらの特性により、データマトリクスは、医療や物流センターでのラベリングだけでなく、小型部品、郵便バーコード、電子部品のマーキングに最適です。 医療業界では医薬品の追跡にGS1データマトリックス規格が用いられており、製造業者は世界中の製品を識別するために生産ラインにこの規格を組み込んでいる。単一のバーコードに膨大なデータを格納できるため、現在では完全なアプリケーション追跡可能性を求める様々な業界で国際的に利用されている。

ISO/IEC 16022規格はデータマトリックスのエンコーディングを規定しており、 IronBarcodeがデフォルトで使用するECC200バリアントを定義しています。 ECC200は、Data Matrixのどのバージョンよりも効率的なエラー訂正機能と最大のデータ容量を備えているため、新規導入に最適な選択肢となります。

データマトリックスと一般的なバーコードフォーマットの比較
形式 タイプ 最大文字数 エラー訂正 典型的な使用例
データマトリックス(ECC200) 2D 2,335 英数字 リード・ソロモン法(約30%) 製薬、電子機器、物流
QRコード 2D 4,296 英数字 リード・ソロモン法(最大30%) URL、マーケティング、支払い
UPC-A 1D 12桁 該当なし 小売商品の識別
コード 128 1D 約50文字 チェックサムのみ 配送、一般物流

C#プロジェクトにバーコードライブラリをインストールするにはどうすればよいですか?

NuGetパッケージマネージャーを使用すれば、 IronBarcodeのインストールは1分もかかりません。 Visual StudioでPackage Manager Consoleを開き、実行してください:

Install-Package BarCode

C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイド: 画像 1 - C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイドに関連する 5 枚中 1 枚目

または、 NuGetパッケージマネージャーのGUIで、 Iron Software社のBarCodeを検索してください。 インストール後、C#ファイルに名前空間を追加します:

using IronBarCode;
using IronBarCode;
$vbLabelText   $csharpLabel

必要な設定は以上です。 IronBarcodeは、ISO/IEC 16022規格に準拠した複雑なデータマトリックスエンコーディングを内部的に処理するため、アプリケーションロジックの開発に集中できます。 オフラインインストールやカスタムパッケージソースなどの追加のセットアップオプションについては、 IronBarcode のインストールガイドおよび高度なNuGetインストールページを参照してください。

サポートされているターゲットフレームワーク

IronBarcodeは、.NET 10、 .NET 8、 .NET 6、 .NET 5、 .NET Standard 2.0、および.NET Framework 4.6.2以降を対象としています。 プロジェクトがこれらのフレームワークのいずれかを対象としている場合、 NuGetパッケージは追加の設定なしでインストールされます。

データマトリックスバーコードを初めて作成するにはどうすればよいですか?

データマトリックスバーコードを生成するには、たった1行のコードで済みます。

// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
// Create a Data Matrix barcode with product information
var myBarcode = BarcodeWriter.CreateBarcode("PROD-12345-2024", BarcodeWriterEncoding.DataMatrix);

// Save as a high-quality PNG image
myBarcode.SaveAsImage("product-label.png");
$vbLabelText   $csharpLabel

このコードは、テキスト"BarcodeWriterEncoding.DataMatrix"パラメータは、 IronBarcodeにデータマトリックス形式を使用するように指示します。 生成されるバーコードは自動的にECC200規格に準拠しており、エラー訂正機能が組み込まれているため、実際の使用環境下でも信頼性の高いスキャンが保証されます。

バーコード出力

C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイド: 画像 2 - 最初のバーコード出力

アプリケーションですぐに使用するには、バーコードをビットマップとして取得するか、直接PDFにエクスポートしてください。

// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
// Get barcode as a bitmap for direct display in a UI control
var barcodeBitmap = myBarcode.ToBitmap();

// Save as PDF for document integration
myBarcode.SaveAsPdf("barcode-document.pdf");
$vbLabelText   $csharpLabel

IronBarcodeは、PNG、JPEG、BMP、GIF、TIFF、SVG、およびPDF形式へのエクスポートをサポートしています。 既存のPDF文書にバーコードを作成して印字し、発注書、請求書、出荷明細書などに埋め込むこともできます。

データマトリックスバーコードにはどのようなデータ型をエンコードできますか?

Data Matrixは複数のエンコードモードをサポートしており、それぞれ異なる文字セットに最適化されています。 IronBarcodeは、入力されたコンテンツに基づいて最も効率的なモードを自動的に選択します。

// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
// Encode alphanumeric product codes
var productCode = BarcodeWriter.CreateBarcode("ABC-123-XYZ", BarcodeWriterEncoding.DataMatrix);
productCode.SaveAsImage("product-code.png");

// Encode numeric serial numbers (numeric mode uses less space)
var serialNumber = BarcodeWriter.CreateBarcode("987654321098765", BarcodeWriterEncoding.DataMatrix);
serialNumber.SaveAsImage("serial-number.png");

// Encode URLs for product landing pages or support portals
var urlCode = BarcodeWriter.CreateBarcode("https://example.com/product/12345", BarcodeWriterEncoding.DataMatrix);
urlCode.SaveAsImage("url-datamatrix.png");

// Encode Unicode text for international applications
var unicodeBarcode = BarcodeWriter.CreateBarcode("製品-2024-東京", BarcodeWriterEncoding.DataMatrix);
unicodeBarcode.SaveAsImage("unicode-datamatrix.png");
$vbLabelText   $csharpLabel

数値データは、英数字テキストと比較してバーコードのサイズを小さくするコンパクトなエンコード方式を使用します。 バイナリエンコーディングは、手動設定なしで特殊文字とUnicodeテキストを処理します。 IronBarcodeは最も効率的なエンコードモードを自動的に選択するため、明示的に指定する必要はありません。

出力

ここでは、4種類のデータすべてが有効なデータマトリックスバーコードに正常にエンコードされています。

C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイド: 画像 3 - 4 種類のデータタイプで作成されたデータマトリックスバーコード

エンコードオプションと文字セットのサポートについてさらに詳しく知りたい場合は、 IronBarcodeのエンコードに関するドキュメントバーコードデータ型のリファレンスを参照してください。

データマトリックスバーコードの外観をカスタマイズするにはどうすればよいですか?

IronBarcodeは、サイズ、色、注釈、余白などを制御するための、バーコードのカスタマイズオプションを豊富に提供しています。

// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
// Create barcode with custom styling
var customBarcode = BarcodeWriter.CreateBarcode("CUSTOM-2024", BarcodeWriterEncoding.DataMatrix);

// Set specific dimensions in pixels
customBarcode.ResizeTo(500, 500);

// Adjust colors for special label requirements
customBarcode.ChangeBarCodeColor(IronSoftware.Drawing.Color.DarkBlue);
customBarcode.ChangeBackgroundColor(IronSoftware.Drawing.Color.LightGray);

// Add human-readable text below the barcode symbol
customBarcode.AddAnnotationTextBelowBarcode("Product: CUSTOM-2024");

// Set margins to preserve the required quiet zone
customBarcode.SetMargins(10);

customBarcode.SaveAsImage("custom-datamatrix.png");
$vbLabelText   $csharpLabel

これらのカスタマイズは、企業のブランディング要件や特定のラベル表示基準に適合させるのに役立ちます。 ResizeTo メソッドは適切なモジュール比率を維持します。これは、あらゆるスキャナ距離でのデータマトリックスの読み取りに不可欠です。 色の変更は、特殊な印刷工程や、カラーラベルや金属素材などの基材の制約に対応するために行われます。 SetMargins によって設定された静止領域のマージンは、ISO/IEC 16022 仕様で定義されている最小空白要件を満たしています。

C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイド: 画像 4 - カスタムデータマトリックス出力

適切なバーコードサイズの選択

データマトリックスバーコードの最小読み取りサイズは、スキャナーと印刷解像度によって異なります。 汎用スキャン用途には、最低でも0.3mmのモジュールサイズを推奨します。 300 DPIの印刷解像度では、500ピクセルのバーコードは約42mm四方となり、信頼性の高いハンディスキャナーでのスキャンに十分なサイズです。 ラベルが小さい場合は、DPIを上げるか、データ量を減らして、シンボルがスキャン可能なサイズ範囲内に収まるようにしてください。

複数のバーコードを一括生成するにはどうすればよいですか?

バッチ生成により、生産実行、出荷ラベル、またはシリアル化された在庫用の大量のデータマトリックスコードを作成する際に必要な作業が削減されます。

// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
// Generate barcodes for a batch of products
string[] productIds = { "PROD-001", "PROD-002", "PROD-003", "PROD-004", "PROD-005" };

foreach (string id in productIds)
{
    var batchBarcode = BarcodeWriter.CreateBarcode(id, BarcodeWriterEncoding.DataMatrix);
    batchBarcode.ResizeTo(150, 150);
    batchBarcode.AddAnnotationTextBelowBarcode(id);

    // Save each barcode with a unique filename
    string filename = $"barcode_{id.Replace("-", "_")}.png";
    batchBarcode.SaveAsImage(filename);
}
$vbLabelText   $csharpLabel

このパターンは、それぞれに固有の識別子が関連付けられた大量のラベルセットを必要とする物流および医療ワークフローに適しています。 ウェブアプリケーションの場合、 PDFドキュメントにバーコードを直接印字するか、バイト配列としてストリーミングすることで、中間ファイルを保存することなくリアルタイムでラベルを生成できます。

C# のデータマトリックスジェネレーター: IronBarcodeを使用した完全ガイド: 画像 5 - バッチデータマトリックスバーコード作成

大規模バッチ処理における非同期処理とマルチスレッド処理

数千個のバーコードを生成する場合、同期処理がボトルネックとなる。 IronBarcodeは、非同期処理とマルチスレッド処理機能を備えており、複数のCPUコアでバーコードを並列に生成できます。 1万枚のラベルをバッチ処理する場合、並列処理を用いることで、逐次ループ処理に比べて総生成時間を桁違いに短縮できる。

高スループットが求められるシナリオでは、数千もの個別の画像ファイルを保存するのではなく、 IronBarcodeのPDFスタンプAPIを使用してバーコードをPDFシートにグループ化することを検討してください。個別の画像ファイルを保存すると、WindowsとLinuxの両方の環境でファイルシステムのオーバーヘッドが発生する可能性があります。

データマトリックスバーコードの読み取りと検証方法を教えてください

バーコードの生成はワークフローの半分に過ぎません。スキャナーがバーコードを正しく読み取れることを確認することで、品質管理のサイクルが完了します。IronBarcodeにはバーコードリーダーが内蔵されており、生成した画像を生成後すぐにデコードできます。

// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"形式: {result.BarcodeType}");
}
// Generate a barcode
var generated = BarcodeWriter.CreateBarcode("VERIFY-2024", BarcodeWriterEncoding.DataMatrix);
generated.SaveAsImage("verify-test.png");

// Read it back to confirm correct encoding
var results = BarcodeReader.Read("verify-test.png");
foreach (var result in results)
{
    Console.WriteLine($"Decoded value: {result.Value}");
    Console.WriteLine($"形式: {result.BarcodeType}");
}
$vbLabelText   $csharpLabel

この往復検証パターンは、医薬品などの規制産業において特に価値があります。医薬品業界では、 DSCSA規制により、処方薬のパッケージに貼付されたシリアル化されたバーコードが機械で読み取り可能であり、かつ正しい形式であることが義務付けられています。 生成パイプラインの一部として読み戻しチェックを実行することで、ラベルが生産ラインに到達する前にエンコードエラーを検出できます。

より高度な読み取りシナリオについては、 IronBarcodeの読み取りに関するドキュメントおよびPDFからのバーコード読み取りガイドを参照してください。

一般的なスキャン互換性に関する考慮事項

スキャナのファームウェアバージョンによって、データマトリックスシンボルの解釈における静止領域とモジュールコントラストの許容範囲が異なります。旧型のハンドヘルドスキャナを対象とする場合は、モジュールサイズを大きくし、コントラストの高い白地に黒の文字を使用し、静止領域の幅を少なくとも2モジュール分確保してください。GS1アプリケーション識別子ガイドでは、バッチ番号、有効期限、GTINなどのサプライチェーン識別子を単一のデータマトリックスシンボル内にエンコードするパターンが提供されています。

次のステップは何ですか?

IronBarcodeを使用した C# での Data Matrix バーコード生成は、一貫したパターンに従います。NuGet パッケージをインストールし、 BarcodeWriter.CreateBarcodeBarcodeWriterEncoding.DataMatrix とともに呼び出し、必要なカスタマイズを適用し、ターゲット形式にエクスポートします。 単一のバーコードプロトタイプから大量バッチ処理パイプラインまで、すべて同じAPIで処理できます。

この件をさらに進めるための推奨手順は以下のとおりです。

  • バーコード読み取りについて学ぶIronBarcodeの読み取りガイドでは、画像、PDF、ライブカメラストリームからバーコードをデコードする方法を解説しています。
  • 他の 2D フォーマットもお試しください。IronBarcodeは、同じ API を使用して、 QR コード、PDF417、Aztec、およびすべての主要な 1D フォーマットも生成します。
  • ドキュメントにバーコードを埋め込むPDFスタンプチュートリアルでは、既存のPDFにプログラムでバーコードを追加する方法を示しています。
  • 非同期処理によるスケーリング:大規模なバッチジョブを並列化するために、非同期処理とマルチスレッドに関するガイドを参照してください。
  • ライセンスの確認IronBarcodeのライセンスページには、開発者からOEM再配布までのオプションが記載されています。

無料トライアルを開始して、制限なくすべての機能をお試しください。または、 IronBarcodeの完全なドキュメントを参照して、詳細なAPIリファレンスや追加のコード例をご確認ください。

NuGet 購入の準備ができていませんか?

PM >  Install-Package BarCode

IronBarcodeNuGet でチェックしてください。1000万回以上のダウンロードで、C#によるPDF開発を変革しています。 また、DLLをダウンロードできます。

よくある質問

データマトリックスバーコードとは何ですか?

データマトリックスバーコードは、ISO/IEC 16022規格に準拠した2次元シンボルで、小さなグリッドに最大2,335文字の英数字または3,116桁の数字をエンコードします。医薬品のラベル、電子機器のマーキング、在庫管理などに広く使用されています。

C# でデータマトリックスバーコードを生成するにはどうすればよいでしょうか?

データ文字列とBarcodeWriterEncoding.DataMatrixを指定してBarcodeWriter.CreateBarcodeを呼び出し、結果に対してSaveAsImageまたはSaveAsPdfを呼び出します。IronBarcodeはECC200エンコードとエラー訂正を自動的に処理します。

データマトリックス生成にIronBarcodeを使用するメリットは何ですか?

IronBarcode は、1 行のコードで ECC200 データ マトリックス バーコードを生成し、自動エンコード モードの選択を処理し、追加の依存関係なしで PNG、PDF、SVG などの形式にエクスポートします。

IronBarcodeはデータマトリクスバーコードを異なるファイル形式にエクスポートできますか?

はい。IronBarcodeは、Data MatrixバーコードをPNG、JPEG、BMP、GIF、TIFF、SVG、PDFにエクスポートできます。また、既存のPDFドキュメントに直接バーコードをスタンプすることもできます。

IronBarcodeでデータマトリクスバーコードをカスタマイズできますか?

はい。IronBarcodeは、寸法用に ResizeTo、色用に ChangeBarCodeColor と ChangeBackgroundColor、人間が読めるテキスト用に AddAnnotationTextBelowBarcode、静かな領域を制御するために SetMargins を提供します。

データマトリクスバーコードはどのような業種に特に適していますか?

データマトリックスバーコードは、医薬品の DSCSA 準拠、電子機器のコンポーネント識別、物流のパッケージ追跡、ヘルスケアの GS1 準拠の医薬品ラベル作成などに広く使用されています。

IronBarcode はどのバージョンの Data Matrix を生成しますか?

IronBarcodeはデフォルトでECC200データマトリックスバーコードを生成します。ECC200はISO/IEC 16022規格の現在のバージョンであり、最高のデータ容量とリード・ソロモンエラー訂正機能を備えています。

他の 2D コードではなく、データマトリックス バーコードを使用する理由は何ですか?

データ マトリックス バーコードは、小さな物理的フットプリントでの高いデータ密度、最大 30% のシンボル損傷に耐えるリード ソロモン エラー訂正、および世界中の規制産業で認められている ISO/IEC 標準化により好評を得ています。

Jordi Bardia
ソフトウェアエンジニア
Jordiは、最も得意な言語がPython、C#、C++であり、Iron Softwareでそのスキルを発揮していない時は、ゲームプログラミングをしています。製品テスト、製品開発、研究の責任を分担し、Jordiは継続的な製品改善において多大な価値を追加しています。この多様な経験は彼を挑戦させ続け、興味を持たせており、Iron Softwareで働くことの好きな側面の一つだと言います。Jordiはフロリダ州マイアミで育ち、フロリダ大学でコンピュータサイエンスと統計学を学びました。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね