如何在 HTML 中將結果保存為 hOCR | IronOCR

Save OCR Results as hOCR HTML in C# with IronOCR.

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

IronOCR 可讓開發人員透過設定 RenderHocr 為 true,並使用 SaveAsHocrFileSaveAsHocrString 方法,將 OCR 結果儲存為 hOCR HTML 檔案,以結構化的 HTML 格式保留文字排版和字元座標。

快速入門:將 OCR 輸出儲存為 hOCR HTML 檔案

只需一次設定和一次方法呼叫,即可啟用 hOCR 渲染並將結果直接匯出至 HTML 檔案。

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronOCR

    PM > Install-Package IronOcr

  2. 複製並運行這段程式碼。

    var hocr = new IronTesseract { Configuration = { RenderHocr = true } }.Read(new OcrInput("image.png")).SaveAsHocrString();
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronOCR,免費試用!
    arrow pointer


什麼是 hOCR 以及為何要使用它? hOCR,即"基於 HTML 的 OCR",是一種用於以結構化方式表示光學字元辨識 (OCR) 結果的檔案格式。 hOCR 檔案以 HTML 寫成,提供一種方式來儲存識別的文字、版面資訊,以及影像或文件中每個識別字元的座標。 這種結構化的格式使得 hOCR 對於需要文字位置資料的應用程式特別有價值,例如文件索引、可存取性工具和進階搜尋實作。 對於建立應用程式的開發人員而言,hOCR 格式是不可或缺的,因為他們不僅需要瞭解出現了哪些文字,還需要瞭解這些文字在原始文件上出現的位置。 這些空間資訊可實現以下功能:[高亮顯示文字以進行除錯](https://ironsoftware.com/csharp/ocr/examples/highlight-texts-for-debugging/)、在原始影像上建立可點選的覆蓋層,以及在將文件掃描轉換為可存取格式時維持文件版面的完整性。 對於處理 [ 掃描文件](https://ironsoftware.com/csharp/ocr/examples/read-scanned-document/)的企業應用程式而言,hOCR 提供了進階文件理解與擷取工作流程的基礎。

如何將 OCR 結果匯出為 hOCR 檔案? <!--說明:顯示逐步過程的截圖 --> 若要將結果匯出為 hOCR,請先將 **Configuration.RenderHocr** 屬性設定為 true,以啟用該屬性。 從 `Read` 方法取得 [OcrResult 物件](https://ironsoftware.com/csharp/ocr/examples/results-objects/)之後,使用 `SaveAsHocrFile` 方法將 OCR 結果匯出為 HTML。 此方法可輸出 HTML 檔案,其中包含輸入文件的閱讀結果。 以下程式碼示範如何使用以下[範例 TIFF](/static-assets/ocr/how-to/html-export/Potter.tiff)檔案。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html.cs ``` [OcrInput 類別](https://ironsoftware.com/csharp/ocr/examples/csharp-ocr-input-for-iron-tesseract/)提供廣泛的選項,可在 OCR 處理前準備影像。 您可以套用篩選器、指定感興趣的區域,並處理各種輸入格式,包括 [ 多頁 TIFF 檔案](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multipage-tiff/)。 當使用 [PDF OCR 文字擷取](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)工作時,相同的 hOCR 匯出方法可無縫套用。

為什麼設定 RenderHocr 很重要? 將 `RenderHocr` 屬性設定為 true 會指示 IronOCR 在 OCR 過程中產生必要的 hOCR 結構。 如果沒有此設定,`SaveAsHocrFile` 和 `SaveAsHocrString` 方法將無法在保留版面的情況下產生正確格式化的 hOCR 輸出。 此設定必須在呼叫 `Read` 方法之前設定,因為它會影響 [Tesseract 引擎](https://ironsoftware.com/csharp/ocr/features/tesseract/)處理和結構輸出資料的方式。 hOCR 格式保留了重要的元資料,包括 - 字元級邊界框 - 詞彙置信度分數 - 行和段結構 - 頁面尺寸與 DPI 資訊 - 可檢測時的字型特徵 在執行 [ 電腦視覺](https://ironsoftware.com/csharp/ocr/how-to/computer-vision/)工作流程或建立需要瞭解文件結構的系統時,這些元資料尤其有用,而不只是簡單的文字擷取。

哪些檔案類型支援 hOCR 匯出? IronOCR 支援從各種影像格式匯出 hOCR,包括 TIFF、PNG、JPEG、BMP 和 GIF。 [PDF文件](https://ironsoftware.com/csharp/ocr/examples/csharp-pdf-ocr/)也可以處理並匯出為hOCR,每個頁面的文字和排版資訊都會保留在HTML結構中。 該函式庫可無縫處理單頁圖片和多頁文件。 為達到不同檔案類型的最佳效果: - **TIFF**:掃描文件的理想選擇,支援多頁處理 - **PDF**:非常適合混合內容(文字和圖像) - **PNG/JPEG**:最適合需要 OCR 的照片或螢幕截圖 - **BMP**:適合高品質掃描的未壓縮格式 在處理專門的文件類型(例如 [ 護照](https://ironsoftware.com/csharp/ocr/examples/read-passport/)或 [ 牌照](https://ironsoftware.com/csharp/ocr/examples/read-license-plate/))時,hOCR 格式有助於保留不同文字元素之間的空間關係,使根據位置提取特定欄位變得更加容易。

如何將 OCR 結果匯出為 HTML 字串? <!--說明:顯示逐步過程的截圖 --> 使用相同的 TIFF 範例影像,利用 `SaveAsHocrString` 方法將 OCR 結果匯出為 HTML 字串。 此方法會返回 HTML 字串。 ```csharp :path=/static-assets/ocr/content-code-examples/how-to/html-export-export-html-string.cs ``` 字串輸出包含完整的 hOCR 標記,可進一步處理、儲存於資料庫或整合至網頁應用程式。 這種方法在建立 [ 可搜尋的 PDF 系統](https://ironsoftware.com/csharp/ocr/examples/make-pdf-searchable/)或實施自訂文件索引解決方案時特別有用。 對於使用 [125 種國際語言](https://ironsoftware.com/csharp/ocr/examples/intl-languages/)的開發人員而言,hOCR 格式保留了特定語言的文字屬性和閱讀方向資訊。

何時應該使用字串輸出而非檔案? 當您需要在記憶體中處理或操作 hOCR 資料、與 Web 服務整合或將結果儲存於資料庫時,字串輸出是最理想的選擇。 此方法可避免檔案系統的依賴性,並可為網路應用程式動態產生 HTML。 常見的使用案例包括 - **Web API 整合**:在 API 回應中直接傳回 hOCR 資料 - **資料庫儲存**:儲存 OCR 結果與文件元資料 - **即時處理**:無需磁碟 I/O 開銷即可處理結果 - **雲端功能**:在檔案存取受限的無伺服器環境中工作 - **內容管理系統**:將 OCR 結果整合至現有的文件工作流程中 對於需要[進度追蹤](https://ironsoftware.com/csharp/ocr/examples/progress-tracking/)的應用程式,字串輸出可在部分結果可用時立即進行處理。 這對於實施 [ 多執行緒 OCR 處理](https://ironsoftware.com/csharp/ocr/examples/csharp-tesseract-multithreading-for-speed/)(在此處會同時處理多個文件)尤其有利。

如何將多個頁面處理成 HTML 字串? 在處理多頁文件時,`SaveAsHocrString` 可將所有頁面合併為單一的 HTML 字串,並具有適當的頁面分割。 每個頁面的內容都以適當的 hOCR 元素包覆,維持文件結構和頁面邊界。 ```csharp // 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(); // Or process page by page foreach (var page in result.Pages) { string pageHocr = page.SaveAsHocrString(); // Process individual page hOCR } ``` 此方法可與 [PDF 串流](https://ironsoftware.com/csharp/ocr/examples/ocr-for-pdf-stream/)無縫運作,並支援進階方案,例如處理特定頁面範圍或對不同頁面套用不同的 OCR 配置。 ## 進階 hOCR 實作技巧 <!--說明:顯示程式碼執行輸出或結果的截圖 -->

什麼是 hOCR 輸出品質的最佳實作? 為了最大化 hOCR 輸出的品質,請考慮在處理之前套用 [ 影像最佳化篩選器](https://ironsoftware.com/csharp/ocr/examples/ocr-image-filters-for-net-tesseract/): ```csharp 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); ``` 對於 [ 低品質掃描](https://ironsoftware.com/csharp/ocr/examples/ocr-low-quality-scans-tesseract/),額外的預處理步驟能大幅提升 hOCR 的精確度。 [ 過濾器精靈](https://ironsoftware.com/csharp/ocr/examples/filter-wizard/) 有助於為您的特定文件類型確定最佳的過濾器組合。

hOCR 結構如何支援進階處理? 生成的 hOCR 遵循標準規格,以嵌套的 div 元素代表文件層級: ```html

Hello World

``` 此結構可實現精確的文字位置擷取和進階的文件分析功能,因此對於需要空間文字關係或版面保存的應用程式來說非常有價值。 在處理 [ 表格萃取](https://ironsoftware.com/csharp/ocr/examples/read-table-in-document/)時,hOCR 格式有助於維持表格結構和儲存格關係。 bbox (邊界框)屬性包含"bbox 左上右下"格式的座標,為每個文字元素提供精確的像素位置資料。 這些資訊對於下列工作至關重要 - 建立具備文字選擇功能的互動式文件檢視器 - 實施保留版面的刪節系統 - 建立可維持閱讀順序的無障礙工具 - 開發文件比較系統 對於需要更詳細組態選項的開發人員,[Tesseract詳細組態指南](https://ironsoftware.com/csharp/ocr/examples/csharp-configure-setup-tesseract/)提供了影響 hOCR 輸出品質和結構的進階設定。

常見問題解答

什麼是 hOCR,為什麼它對 OCR 應用程式有用?

hOCR(基於 HTML 的 OCR)是一種以結構化 HTML 表示 OCR 結果的檔案格式,可同時儲存辨識的文字和空間資訊(如字元座標)。IronOOCR 支援 hOCR 匯出,這對於需要文字位置資料、文件索引、可存取性工具,以及在處理掃描文件時維持版面完整性的應用程式來說非常有價值。

如何在我的 C# OCR 應用程式中啟用 hOCR 輸出?

若要使用 IronOCR 啟用 hOCR 輸出,請在您的 IronTesseract 範例上設定 Configuration.RenderHocr 屬性為 true。這會告訴 IronOCR 以 hOCR 格式準備 OCR 結果,讓您可以使用 SaveAsHocrFile 或 SaveAsHocrString 方法匯出這些結果。

有哪些方法可用於匯出 hOCR 結果?

IronOCR 提供了兩種匯出 hOCR 結果的方法:SaveAsHocrFile() 可以直接將輸出儲存到磁碟上的 HTML 檔案,而 SaveAsHocrString() 則可以將 hOCR HTML 回傳成字串,以便在您的應用程式中進一步處理或儲存。

只需一行代碼就可以將 OCR 結果匯出為 hOCR 嗎?

是的,IronOCR 允許使用方法鏈單行匯出 hOCR。您可以在單一語句中建立啟用 RenderHocr 的 IronTesseract 範例、讀取輸入並呼叫 SaveAsHocrString(): var hocr = new IronTesseract { Configuration = { RenderHocr = true }.}.Read(new OcrInput("image.png")).SaveAsHocrString();

hOCR 可從 OCR 結果中保留何種類型的空間資訊?

hOCR 會保留原始影像或文件中每個辨識字元的排版資訊與座標。IronOCR 的 hOCR 匯出保留了這些空間資料,可實現各種功能,例如高亮顯示文字以進行除錯、在影像上建立可點選的覆蓋圖,以及瞭解文字出現在原始文件上的位置。

Chaknith Bin
軟體工程師
Chaknith 在 IronXL 和 IronBarcode 上工作。他對 C# 和 .NET 擁有深厚的專業知識,幫助改進了軟體並支持客戶。他從用戶互動中得到的見解有助於改善產品、文檔和整體體驗。
審核人
Jeff Fritz
Jeffrey T. Fritz
首席程序经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席程序经理。他是 .NET Conf 虚拟会议系列的执行制作人,并主持“Fritz 和朋友”这一每周两次的开发者的直播节目,在节目上讨论技术并与观众一起编写代码。Jeff 撰写研讨会、主持演讲,并计划大型 Microsoft 开发者活动(包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP Summit)的内容。
準備好開始了嗎?
Nuget 下載 5,246,844 | 版本: 2025.12 剛發表