IronOCRでOCR結果をC#でhOCR HTMLとして保存する
IronOCRは、SaveAsHocrStringメソッドを使用することで、OCR結果をhOCR HTMLファイルとして保存することを開発者に可能にし、構造化されたHTML形式でテキストレイアウトと文字座標を保持します。
1回のセットアップと1回のメソッド呼び出しで、hOCRレンダリングを有効にし、結果を直接HTMLファイルにエクスポートします。
-
1Install IronOCR with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronOCR を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- C# ライブラリをダウンロードして、結果を hOCR として HTML ファイルに保存します。
- 対象の画像とPDFドキュメントを準備する
- RenderHocrプロパティをtrueに設定する
SaveAsHocrFileメソッドを利用してHTMLファイルを出力しますSaveAsHocrStringメソッドを使用してHTML文字列を出力する
hOCRとは何ですか、なぜ使うのですか?
hOCR は"HTML ベースの OCR"の略で、光学式文字認識 (OCR) の結果を構造化された方法で表現するために使用されるファイル形式です。 hOCRファイルはHTMLで記述され、認識したテキスト、レイアウト情報、画像や文書内の各認識文字の座標を保存する方法を提供します。 この構造化されたフォーマットにより、hOCRは、ドキュメントのインデックス作成、アクセシビリティツール、高度な検索実装など、テキスト位置データを必要とするアプリケーションで特に重宝されます。
hOCR形式は、どのようなテキストが存在するかだけでなく、そのテキストが元の文書のどこに表示されているかを理解する必要があるアプリケーションを構築する開発者にとって不可欠です。 この空間情報は、デバッグのためにテキストをハイライトする、元の画像にクリック可能なオーバーレイを作成する、スキャンしたドキュメントをアクセシブルなフォーマットに変換する際にドキュメントのレイアウトの整合性を維持する、といった機能を可能にします。 スキャンされたドキュメントを処理する企業アプリケーションのために、hOCRは高度なドキュメント理解と抽出ワークフローの基盤を提供します。
OCR結果をhOCRファイルとしてエクスポートするにはどうすればよいですか?
hOCRとして結果をエクスポートするには、最初にConfiguration.RenderHocrプロパティをtrueに設定して有効にします。 OcrResultオブジェクトをSaveAsHocrFile メソッドを使用して、OCR結果をHTMLとしてエクスポートします。 このメソッドは、入力文書の読み取り結果を含むHTMLファイルを出力します。 以下のコードは、次のファイルの使用方法を示しています。
using IronOcr;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = true;
// Add image
using var imageInput = new OcrImageInput("Potter.tiff");
imageInput.Title = "Html Title";
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Export as HTML
ocrResult.SaveAsHocrFile("result.html");Imports IronOcr
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable render as hOCR
ocrTesseract.Configuration.RenderHocr = True
' Add image
Dim imageInput = New OcrImageInput("Potter.tiff")
imageInput.Title = "Html Title"
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Export as HTML
ocrResult.SaveAsHocrFile("result.html")OcrInputクラスは、OCR処理の前に画像を準備するための広範なオプションを提供します。 フィルタを適用したり、関心領域を指定したり、複数ページのTIFFファイルを含むさまざまな入力形式を処理したりできます。 PDF OCR テキスト抽出で作業する場合、同じ hOCR エクスポート方法がシームレスに適用されます。
なぜ RenderHocr の設定が重要なのですか?
RenderHocrプロパティをtrueに設定すると、OCRプロセス中に必要なhOCR構造を生成するようにIronOCRに指示します。 この構成がなければ、SaveAsHocrStringメソッドは、レイアウトを保持した適切な形式のhOCR出力を生成しません。 この構成は、如何にしてTesseractエンジンが出力データを処理および構造化するかに影響を与えるため、Readメソッドを呼び出す前に設定されている必要があります。
hOCRフォーマットは、以下のような重要なメタデータを保持します:
- 文字レベルのバウンディングボックス
- 単語の信頼度スコア
- 行と段落の構成
- ページ寸法とDPI情報
- 検出可能なフォントの特徴
このメタデータは、コンピュータ・ビジョンワークフローを実装する場合や、単純なテキスト抽出を超えてドキュメント構造を理解する必要があるシステムを構築する場合に特に役立ちます。
どのようなファイル タイプが hOCR エクスポートをサポートしていますか?
IronOCRはTIFF、PNG、JPEG、BMP、GIFを含む様々な画像フォーマットからのhOCRエクスポートをサポートします。 PDFドキュメントは、各ページのテキストとレイアウト情報をHTML構造に保持したまま、hOCRとして処理およびエクスポートすることもできます。 このライブラリは、単一ページの画像と複数ページのドキュメントの両方をシームレスに処理します。
異なるファイルタイプで最適な結果を得るために
- TIFF:スキャン文書に最適。
- PDF:混合コンテンツ(テキストと画像)に最適です。
- PNG/JPEG:OCRが必要な写真やスクリーンショットに最適です。
- BMP:高画質スキャンに適した非圧縮フォーマット
パスポートやナンバープレートのような特殊なドキュメントタイプを扱う場合、hOCRフォーマットは、異なるテキスト要素間の空間的関係を保持するのに役立ち、場所に基づいて特定のフィールドを抽出しやすくします。
OCR結果をHTML文字列としてエクスポートするにはどうすればよいですか?
同じTIFFサンプル画像を使用し、SaveAsHocrStringメソッドを使用してOCR結果をHTML文字列としてエクスポートします。 このメソッドは HTML 文字列を返します。
// Export as HTML string
string hocr = ocrResult.SaveAsHocrString();' Export as HTML string
Dim hocr As String = ocrResult.SaveAsHocrString()文字列出力には、さらに処理したり、データベースに保存したり、ウェブアプリケーションに統合したりできる完全なhOCRマークアップが含まれています。 このアプローチは、検索可能なPDFシステムを構築したり、カスタム文書のインデックス・ソリューションを実装したりする場合に特に役立ちます。 125の国際言語で作業する開発者のために、hOCRフォーマットは、言語固有のテキスト属性と読み方向情報を保持します。
ファイルの代わりに文字列出力を使用するのはどのような場合ですか?
文字列出力は、メモリ内でhOCRデータを処理または操作したり、ウェブサービスと統合したり、結果をデータベースに保存したりする必要がある場合に最適です。 このアプローチにより、ファイルシステムへの依存を回避し、ウェブアプリケーションの動的なHTML生成が可能になります。 一般的な使用例には次のようなものがあります:
- Web API統合:APIレスポンスでhOCRデータを直接返す
- データベースストレージ: OCR結果をドキュメントのメタデータとともに保存する
- リアルタイム処理:ディスクI/Oオーバーヘッドなしで結果を処理
- クラウド機能:ファイルアクセスが制限されたサーバーレス環境で作業する
- コンテンツ管理システム:OCR結果を既存のドキュメントワークフローに統合する
進捗追跡を必要とするアプリケーションでは、文字列出力により、部分的な結果が利用可能になったときにすぐに処理できます。 これは、複数のドキュメントを同時に処理するマルチスレッド OCR 処理を実装する場合に特に有益です。
複数のページを HTML 文字列に処理するにはどうすればよいですか?
マルチページドキュメントを扱うとき、SaveAsHocrStringはすべてのページを単一のHTML文字列に統合し、適切なページの区切りを行います。 各ページのコンテンツは、適切なhOCR要素でラップされ、ドキュメント構造とページの境界が維持されます。
// Processing multi-page documents
using var multiPageInput = new OcrPdfInput("multi-page-document.pdf");
multiPageInput.Title = "Multi-Page Document";
// Configure for hOCR output
IronTesseract tesseract = new IronTesseract();
tesseract.Configuration.RenderHocr = true;
// Read all pages
OcrResult result = tesseract.Read(multiPageInput);
// Export as single HTML string with all pages
string fullHocr = result.SaveAsHocrString();
このアプローチは、PDF ストリームとシームレスに動作し、特定のページ範囲を処理したり、異なるページに異なる OCR 設定を適用したりするような高度なシナリオをサポートします。
高度な hOCR 実装のヒント
hOCRの出力品質のベストプラクティスとは
hOCR出力の品質を最大化するには、処理前に画像最適化フィルターを適用することを検討してください:
var input = new OcrImageInput("document.png");
input.DeNoise(); // Remove image noise
input.Deskew(); // Correct image rotation
input.Scale(2); // Upscale for better recognition
IronTesseract ocr = new IronTesseract();
ocr.Configuration.RenderHocr = true;
var result = ocr.Read(input);Dim input As New OcrImageInput("document.png")
input.DeNoise() ' Remove image noise
input.Deskew() ' Correct image rotation
input.Scale(2) ' Upscale for better recognition
Dim ocr As New IronTesseract()
ocr.Configuration.RenderHocr = True
Dim result = ocr.Read(input)低品質スキャンの場合、前処理ステップを追加することで、hOCRの精度を大幅に向上させることができます。 フィルタウィザードは、特定のドキュメントタイプに最適なフィルタの組み合わせを決定するのに役立ちます。
hOCR構造はどのように高度な処理をサポートしますか?
生成されたhOCRは、ドキュメント階層を表すネストされたdiv要素を持つ標準仕様に従っています:
<div class='ocr_page' title='bbox 0 0 2480 3508'>
<div class='ocr_carea' title='bbox 156 114 2324 3395'>
<p class='ocr_par' title='bbox 157 114 2323 164'>
<span class='ocr_line' title='bbox 157 114 2323 164'>
<span class='ocr_word' title='bbox 157 114 294 161'>Hello</span>
<span class='ocr_word' title='bbox 334 119 483 161'>World</span>
</span>
</p>
</div>
</div>
この構造は、正確なテキスト位置の抽出と高度な文書分析機能を可能にし、空間的なテキスト関係やレイアウトの保存を必要とするアプリケーションにとって価値があります。 テーブル抽出で作業する場合、hOCR形式は、表構造とセルの関係を維持するのに役立ちます。
bbox(バウンディング・ボックス)属性は、"bbox left top right bottom "のフォーマットで座標を含み、各テキスト要素のピクセル精度の位置データを提供します。 この情報は次のような場合に重要です:
- テキスト選択によるインタラクティブなドキュメントビューアの作成
- レイアウトを保持する再編集システムの実装
- 読み順を維持するアクセシビリティツールの構築
- ドキュメント比較システムの開発
さらに詳細な設定オプションを必要とする開発者のために、Tesseract 詳細設定ガイドでは、hOCRの出力品質と構造に影響を与える高度な設定を提供しています。
RenderHocr
よくある質問
hOCRとは何か、なぜOCRアプリケーションに有用なのか?
hOCR (HTML-based OCR)はOCR結果を構造化されたHTMLで表現するファイルフォーマットで、認識されたテキストと文字座標のような空間情報の両方を保存します。IronOCRはhOCRエクスポートをサポートしており、テキスト位置データ、ドキュメントのインデックス作成、アクセシビリティツール、スキャンされたドキュメントを処理する際のレイアウトの整合性維持などを必要とするアプリケーションに有用です。
C# OCR アプリケーションで hOCR 出力を有効にするにはどうすればよいですか?
IronOCRでhOCR出力を有効にするには、IronTesseractインスタンスでConfiguration.RenderHocrプロパティをtrueに設定します。これによりIronOCRはOCR結果をhOCRフォーマットで準備し、SaveAsHocrFileまたはSaveAsHocrStringメソッドを使ってエクスポートできるようになります。
hOCRの結果をエクスポートするには、どのような方法がありますか?
IronOCRはhOCR結果をエクスポートするための2つのメソッドを提供します:SaveAsHocrFile() は出力をディスク上のHTMLファイルに直接保存し、SaveAsHocrString() はhOCRのHTMLを文字列として返し、アプリケーションでさらに処理したり保存したりします。
たった1行のコードで、OCR結果をhOCRとしてエクスポートできますか?
はい、IronOCRはメソッドチェイニングを使って1行でhOCRをエクスポートできます。RenderHocrを有効にしたIronTesseractインスタンスを作成し、入力を読み込み、SaveAsHocrString()を呼び出すことができます。}.Read(new OcrInput("image.png")).SaveAsHocrString();
hOCRはOCR結果からどのような空間情報を保存しますか?
hOCRは認識された各文字のレイアウト情報と座標を元の画像や文書内に保持します。IronOCRのhOCRエクスポートはこの空間データを維持し、デバッグのためのテキストハイライト、画像上のクリック可能なオーバーレイの作成、オリジナルドキュメント上のテキストの表示位置の把握などの機能を可能にします。
What are the advantages of exporting OCR results as HTML strings?
Exporting OCR results as HTML strings allows for in-memory processing, integration with APIs, and storage in databases without file dependencies. This approach is beneficial for real-time applications, search systems, and cloud-based services.
How does hOCR format support advanced document processing tasks?
hOCR's structured format with bounding box data allows for precise text location extraction, enabling features like interactive text viewers, layout-preserving redaction, and accessibility tools. It supports advanced tasks requiring spatial text relationships.
What preprocessing steps improve hOCR output quality in IronOCR?
Applying image optimization filters such as de-noising, deskewing, and upscaling before OCR processing can significantly enhance hOCR output quality, especially for low-quality scans or complex document formats.
Which scenarios benefit from using HTML string output instead of file output in OCR?
HTML string output is ideal for scenarios requiring immediate processing in memory, such as web API integration, database storage, real-time analysis, and serverless applications lacking file system access.
How does IronOCR handle multi-page documents when exporting to hOCR?
IronOCR consolidates OCR results from multi-page documents into a single HTML string or file with appropriate page divisions, maintaining document structure and content continuity across pages.

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