C#でバーコードやQRコードをOCRで読む方法

IronOCRを使ってC#でBarCodeとQRコードを読み取る方法

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

IronOCRはReadBarCodes = trueを設定することにより、C#でバーコードとQRコードを読み取ります。 QRコード、Code 128、Data Matrixを含む20以上のバーコード形式をサポートしています。

クイックスタート: PDF からバーコードを即座に読み取る

1つの設定でBarCode検出を有効にし、IronOCRでPDFをスキャンしてください。 以下のコードは、BarCode読み取りをオンにし、PDFを処理し、デコードされた値を取得する方法を示しています。

```cs:title=今すぐIronOCRのバーコードリーダーをお試しください。 var result = new IronOcr.IronTesseract() { Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = true }.}.Read(new IronOcr.OcrPdfInput("document.pdf")); foreach(var bc in result.BarCodes) Console.WriteLine(bc.Value);


<div class="hsg-featured-snippet">
    <h3>最小限のワークフロー(5ステップ)</h3>
    <ol>
        <li><a class="js-modal-open" data-modal-id="trial-license-after-download" href="https://nuget.org/packages/IronOcr/">バーコードと QR コードを読み取るための C# ライブラリをダウンロードします。</a></li>
        <li>対象の画像と PDF ドキュメントをインポートします。</li>
        <li><strong><code>ReadBarCodes</code></strong>プロパティをtrueに設定することで、バーコード読み取りを有効にします。</li>
        <li>通常どおり OCR を実行するには、 <code>Read</code>メソッドを使用します。</li>
        <li>検出されたテキストとバーコードの値を出力します。</li>
    </ol>
</div>

<br class="clear">

## どのように PDF ドキュメントから BarCode を読み取りますか?

`IronTesseract`オブジェクトを作成し、読み取りを実行します。 バーコード検出を有効にするには、**`ReadBarCodes`** プロパティを true に設定します。 [`OcrPdfInput`](https://ironsoftware.com/csharp/ocr/how-to/input-pdfs/) コンストラクタを使ってPDFドキュメントをインポートします。 取り込んだPDFに対してOCRを実行するには、``Read``メソッドを使います。

以下は、このPDF文書を使用した例です:

<iframe loading="lazy" src="/static-assets/ocr/how-to/barcodes/pdfWithBarcodes.pdf#view=fit" width="100%" height="400px"></iframe>

```csharp
:path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.cs
IronOCRのデバッグ出力はPDFからテキストと3つのバーコード(A,B,C)を抽出したものです。

複数の BarCode 値がバーコードの下に表示され、抽出されたテキストに含まれます。

なぜIronOCRはテキストとBarCodeの両方の値を抽出するのですか? IronOCRの二重抽出は包括的な文書分析を提供します。 テキストとバーコードの両方を含むドキュメントを処理する場合、ライブラリは [standard OCR text extraction](https://ironsoftware.com/csharp/ocr/examples/simple-csharp-ocr-tesseract/) を実行し、同時にバーコード シンボロジーをデコードします。 この統一されたアプローチにより、複数の処理パスや個別のライブラリが不要になります。 テキスト抽出は人間が読める要素をキャプチャし、BarCode検出は機械が読めるデータを識別してデコードします。 これは、バーコードの値が印刷されたテキストと関連する請求書、出荷ラベル、在庫報告書などの文書に役立ちます。 [`OcrResult`クラス](https://ironsoftware.com/csharp/ocr/examples/results-objects/)は、これらの出力を分離し、`Text`プロパティを通してテキストにアクセスし、`Barcodes`コレクションを通してバーコードデータにアクセスします。 ### どのような BarCode フォーマットがサポートされていますか? IronOCRは20以上のバーコード形式をサポートしています: **1次元BarCode:**。 - コード128、コード39、コード93 - EAN-13、EAN-8 - UPC-A、UPC-E - コードバー - ITF(インターリーブ2/5) - 三井住友海上 - プレッシー **2Dバーコード:**。 - QRコード - データマトリックス - PDF417 - アステカコード - MaxiCode [MICR小切手の読み取り](https://ironsoftware.com/csharp/ocr/examples/read-micr-cheque/)や[アイデンティティ文書の処理](https://ironsoftware.com/csharp/ocr/troubleshooting/identity-documents/)のような特殊なアプリケーションでは、IronOCRのバーコード機能がテキスト抽出機能を補完します。 ### バーコード読み取り専用ライブラリの代わりに OCR を使用すべきなのはどのような場合ですか? IronOCRの統合バーコード読み取りをお選びください: 1.**混合コンテンツ処理**:テキストとBarCodeの両方を含む文書(出荷ラベル、請求書、または[スキャンされた文書](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/))。 2.**単一ライブラリ優先**:依存関係を最小限に抑え、1つのソリューションを使用したい。 3.**PDF処理**: あなたはすでに[PDFのOCRテキスト抽出](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)にIronOCRを使用しています。 4.**複雑なドキュメントレイアウト**:文書には、テキスト領域や[テーブル](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/)内にバーコードが埋め込まれています。 以下の場合は、専用の BarCode ライブラリを使用してください: - バーコードのみの大量画像の処理 - リアルタイムの BarCode スキャンが必要(応答時間 50ms 未満) - 特殊なアルゴリズムを必要とする、破損したバーコードや低品質のバーコードの処理 - カメラの最適化によるモバイルバーコードスキャニングの実装 ## 文書から QR コードを読み取るにはどうすればよいですか? . 。 バーコード読み取りと同様に、`ReadBarCodes` プロパティを true に設定します。 ファイルパス以外のコード変更は必要ありません。 このPDF文書をQRコードで処理します: ```csharp :path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-qr-codes.cs ```
Visual StudioでのIronOCR出力。ドキュメントから抽出されたテキストと正常にデコードされたQRコードA、B、Cを示す。
### なぜ同じ設定が BarCode と QR コードの両方で機能するのですか? IronOCRの統一バーコード検出エンジンは、すべての機械読み取り可能なコードを同等に扱います。 The `ReadBarCodes` configuration activates a comprehensive symbology detector that recognizes both 1D (linear barcodes) and 2D (QR codes, Data Matrix) formats without requiring format-specific settings. このデザインは、実装を簡素化し、構成の複雑さを軽減します。 検出アルゴリズムは自動的に - パターン認識に基づいてシンボルタイプを識別 - 適切なデコードアルゴリズムを適用 - 方向とサイズのバリエーションに対応 - バーコードの種類に関係なく、一貫した形式で結果を返します。 このアプローチは、[コンピュータ ビジョン モデル](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/)が、普遍的な検出機能を提供するために複数のフォーマットでトレーニングする方法を反映しています。 ### OCRでQRコードを読み取るときによくある問題とは

QRコードを処理する際の一般的な課題には、次のようなものがあります: 1.**解決課題**:PDF の QR コードは、最小モジュール サイズ以下にダウンサンプリングされることがあります。[DPI 設定](https://ironsoftware.com/csharp/ocr/how-to/dpi-setting/)を使用して、適切な解像度を確保してください (300 DPI 以上を推奨)。 2.**画質**:スキャンされたQRコードは、ぼやけやノイズ、歪みに悩まされることがよくあります。 [画像補正フィルター](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/)を適用して、明瞭度を高めます: ```csharp // Apply filters to improve QR code readability ocrTesseract.Configuration.ReadBarCodes = true; var input = new OcrImageInput("qr-code-scan.jpg"); input.DeNoise(); input.Sharpen(); input.EnhanceResolution(); var result = ocrTesseract.Read(input); ``` 3.**向きの問題**:角度のあるQRコードは正しくデコードできないことがあります。 [ページ回転検出](https://ironsoftware.com/csharp/ocr/how-to/detect-page-rotation/)を有効にして、ずれたドキュメントを処理します。 4.**混在コンテンツの干渉**:QRコードに重なるテキストやグラフィックは、検出を妨げる可能性があります。 必要に応じて、[切り抜き領域](https://ironsoftware.com/csharp/ocr/troubleshooting/crop-regions-rectangles/)を使用してQRコード領域を切り分けます。 ### QRコードの認識精度を高めるにはどうすればよいですか? これらのテクニックを使用してQRコード認識を最適化します: 1.**画像の前処理**:[フィルターウィザード](https://ironsoftware.com/csharp/ocr/how-to/filter-wizard/)を使用して、最適なエンハンスメント設定を決定します: ```csharp // Enhanced QR code reading with preprocessing var ocrTesseract = new IronTesseract(); ocrTesseract.Configuration.ReadBarCodes = true; // Configure for better QR detection var input = new OcrImageInput("document-with-qr.pdf"); input.TargetDPI = 300; // Ensure sufficient resolution input.Binarize(); // Convert to black and white input.DeNoise(); // Remove image artifacts var result = ocrTesseract.Read(input); ``` 2.**複数のページを扱う**:[複数ページにまたがるQRコードのある文書](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/)の場合: ```csharp // Process multi-page documents efficiently using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf"); pdfInput.TargetDPI = 300; var results = ocrTesseract.Read(pdfInput); foreach (var page in results.Pages) { Console.WriteLine($"Page {page.PageNumber}:"); foreach (var barcode in page.Barcodes) { Console.WriteLine($" QR Code: {barcode.Value}"); Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}"); } } ``` 3.**非同期処理**:複数のドキュメントでより良いパフォーマンスを得るには、[非同期メソッド](https://ironsoftware.com/csharp/ocr/how-to/async/)を使用してください: ```csharp // Asynchronous QR code reading var result = await ocrTesseract.ReadAsync(imageInput); ``` 4.**デバッグ認識の問題**: [結果のハイライト](https://ironsoftware.com/csharp/ocr/how-to/highlight-texts-as-images/)を有効にして、IronOCRが何を検出したかを視覚化してください: ```csharp result.SaveAsHighlightedImage("qr-detection-debug.png"); ``` ### 大規模 BarCode 処理のパフォーマンス最適化

BarCode や QR コードを含む数千のドキュメントを処理する場合は、以下の最適化戦略を実行します: 1.**マルチスレッド**:[マルチスレッド処理](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)を活用して、複数のドキュメントを同時に処理します: ```csharp // Process multiple documents in parallel var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" }; var results = documents.AsParallel().Select(doc => { var tesseract = new IronTesseract(); tesseract.Configuration.ReadBarCodes = true; return tesseract.Read(new OcrPdfInput(doc)); }).ToList(); ``` 2.**メモリ管理**:[abort tokens](https://ironsoftware.com/csharp/ocr/examples/abort-token/) を長時間実行する操作に使用してください: ```csharp // Implement cancellation for large batch processing using var cts = new CancellationTokenSource(); ocrTesseract.Configuration.CancellationToken = cts.Token; // Cancel if processing takes too long cts.CancelAfter(TimeSpan.FromMinutes(5)); ``` 3.**結果のエクスポート**:結果を[検索可能なPDF](https://ironsoftware.com/csharp/ocr/examples/make-pdf-searchable/)として保存し、テキストとBarCodeデータの両方を維持します: ```csharp // Export results with embedded barcode values result.SaveAsSearchablePdf("output-with-barcodes.pdf"); ``` ### ビジネス アプリケーションとの統合 IronOCRのバーコード機能は、既存の.NETアプリケーションとシームレスに統合されます。 一般的な統合シナリオは以下のとおりです: - **在庫管理**:出荷明細から製品コードを抽出する - **ドキュメントアーカイブ**:埋め込まれたバーコード識別子によってスキャンされたドキュメントをインデックス化する。 - **請求書処理**:[財務ドキュメント](https://ironsoftware.com/csharp/ocr/troubleshooting/financial-language-pack/)で、BarCode SKU を行項目に一致させる。 - **医療記録**:医療フォームと一緒に患者のリストバンドバーコードを処理する。 大量の BarCode や QR コードを処理するプロダクション アプリケーションでは、[処理状況の追跡](https://ironsoftware.com/csharp/ocr/how-to/progress-tracking/)を実装して、処理状況を監視し、実際の測定基準に基づいてパフォーマンスを最適化することを検討してください。

よくある質問

C#アプリケーションでBarCode読み取りを有効にするにはどうすればよいですか?

IronOCRでは、TesseractConfigurationでReadBarCodes = trueを設定することでバーコードの読み取りを有効にします。この設定一つで、通常のテキスト認識と並行してPDFや画像からのバーコード値の自動抽出が有効になり、20以上のバーコードフォーマットをサポートします。

同じ文書からテキストと BarCode の両方を読み取ることはできますか?

そうです、IronOCRは二重抽出を行います - 標準的なOCRによって人間が読めるテキストを取り込み、同時に機械が読めるバーコードをデコードします。OcrResultクラスはこれらの出力を分離し、テキストはTextプロパティから、バーコードデータはBarCodesコレクションからアクセスできるようになっています。

検出できるバーコード形式は?

IronOCRは、1次元バーコード(Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, Codabar, ITF, MSI, Plessey)と2次元バーコード(QR Code, Data Matrix, and more)を含む20以上のバーコードフォーマットをサポートしています。

PDF文書からBarCodeを抽出する方法を教えてください。

IronTesseractオブジェクトを作成し、ReadBarCodesをtrueに設定し、OcrPdfInputコンストラクタを使ってPDFをインポートし、Readメソッドを使用します。IronOcrはOCRを実行し、検出されたすべてのバーコードの値を抽出します。

テキストOCRとバーコード読み取りには、別々のライブラリが必要ですか?

IronOCRの統一されたアプローチは、複数の処理パスや別々のライブラリを必要としません。IronOCRは標準的なOCRテキスト抽出を行い、同時にバーコードのデコードを一度に行います。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 5,246,844 | バージョン: 2025.12 リリース