IRONSOFTWAREHOME

如何使用 IronOCR 在 C# 中擷取讀取結果

Curtis Chau
Curtis Chau
Updated: 2026年5月12日

IronOCR 的 Read 方法會傳回一個 OcrResult 物件,其中包含已擷取的文字,以及詳細的元資料,包括精確座標、尺寸、文字方向,以及每個偵測到的元素的層級結構(段落、行、字、字元)。

OCR 結果包含關於偵測到的段落、行、單字及個別字元的完整資訊。

針對每個元素,它提供文字內容、精確的 X 和 Y 座標、尺寸(寬度和高度)、文字方向(由左至右或由上至下),以及在 CropRectangle 物件中的位置。

快速入門:從第一個偵測到的單字擷取 WORD 文字

using IronTesseractRead 方法對圖片進行 OCR 識別,並透過 WORDs 集合提取第一個 WORD 的文字。

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

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

    string wordText = new IronTesseract().Read("file.jpg").WORDs[0].Text;
    C#
  3. 3部署以在您的實時環境中測試

    今天就開始在您的專案中使用IronOCR,透過免費試用
    arrow pointer

我可以從 OCR 結果中提取哪些資料?

結果值不僅包含擷取的文字,還包含 IronOCR 在 PDF 和圖像文件中偵測到的頁面、段落、行、單字、字元及 BARCODE 相關資訊。 您可以透過 Read 方法,從回傳的 OcrResult 物件中取得此資訊。

IronOCR 的全面結果系統建基於強大的 Tesseract 5 引擎,為開發人員提供超越簡單文字辨識的結構化資料擷取能力。 無論處理掃描文件照片螢幕截圖OcrResult 類別都能讓您對擷取的資料進行細緻的控制。

using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");
Visual Studio 除錯器顯示 OCR 擷取結果,包含來自日文商務文件的座標與文字

如何從 OCR 結果中取得文字內容?

OcrResult 物件以簡潔直觀的方式呈現擷取的文字,讓開發人員能直接使用,或將其整合至其他應用程式元件中。 此層級結構反映了自然文件的組織方式,使您能輕鬆處理不同細粒度層級的內容。

對於需要多語言支援的應用程式,IronOCR 能無縫處理多語言文件,並在所有 125 種支援語言中維持相同的結構化結果格式。

以下程式碼範例透過迴圈PRINT文字以驗證結果。

using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
    // Print the text of the current paragraph
    Console.WriteLine(paragraph.Text);

    // Add a blank line for better separation (optional)
    Console.WriteLine();
}

輸出

顯示 OCR 段落偵測結果的終端機畫面,其中包含關於孫正義與重田康光所萃取的文字

控制台輸出顯示 IronOCR 正以極高精準度逐行擷取段落文字。 該引擎能自動偵測段落邊界,使其非常適合處理包含多個文字區塊的複雜文件。

如何取得偵測到的文字位置座標?

除了擷取的文字外,OcrResult 還提供了詳細的位置資料。 此空間資訊對於需要維持版面配置精確度,或從特定文件區域進行目標文字擷取的應用程式而言至關重要。 座標系統採用以頁面左上角為起點的標準像素測量方式。

若需提升基於座標的操作精準度,可考慮使用 OCR 區域標定功能來鎖定特定區域,或運用電腦視覺功能自動識別文字區域。

以下程式碼示範如何遍歷每個段落,並將其座標(X 和 Y)輸出至主控台。

using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;

Console.WriteLine("--- All Detected Coordinates of Paragraphs ---");

// Use a 'for' loop to get an index for each paragraph
for (int i = 0; i < paragraphs.Length; i++)
{
    // Get the current paragraph
    Paragraph paragraph = paragraphs[i];

    // Print the paragraph number, text, and its location
    Console.WriteLine($"X: {paragraph.X}"); // X-coordinate (left edge)
    Console.WriteLine($"Y: {paragraph.Y}"); // Y-coordinate (top edge)

    // Add a blank line for better separation
    Console.WriteLine();
}

輸出

顯示 OCR 偵測到的段落座標(X,Y 值)的終端機輸出:(29,30)、(28,74) 及 (27,362)

輸出結果顯示三組座標,分別對應於三個段落。這些座標可用於繪製邊界框、擷取特定區域,或維持文字元素之間的空間關係。

OCR 結果中還包含哪些其他屬性?

除了文字和文字座標外,IronOCR 還提供其他資訊。 針對每個文字元素(段落、行、單字及個別字元),可提供以下資訊:

  • **文字:**作為字串的實際內容。
  • **X:**以像素為單位,自頁面左邊緣起算的位置。
  • **Y:**以像素為單位,自頁面頂緣起算的位置。
  • **寬度:**以像素為單位的寬度。
  • **高度:**以像素為單位的高度。
  • **文字方向:**文字的閱讀方向(由左至右或由上至下)。
  • **位置:**一個矩形,以像素為單位顯示此文字在頁面上的位置。

這些功能在實作時特別有用:

  • 文字標示與註解系統
  • 自動表單欄位偵測
  • 文件轉換時的版面配置保留
  • 透過空間文字分析進行資料擷取

在除錯與視覺化階段,請使用文字標示功能,以視覺化方式驗證偵測區域的準確性。

段落、行、WORD與字元有何區別?

IronOCR 的階層式文字結構,讓開發人員能根據其特定使用情境,在適當的細節層級進行作業。 了解這些元素之間的差異,有助於為您的應用程式選擇合適的細粒度。

以下是偵測到的段落、行數、WORD及字元的比較。

日本科技企業家孫正義與重田康光的專題人物介紹
文件中以紅色標示,展示日本科技高管孫正義與重田康光的個人簡介
文字標示功能,在關於科技投資的段落中,以紅色方框覆蓋選取的單詞
顯示 OCR 結果中個別字元邊界的字元級文字偵測

每個細分層級皆有其不同用途:

  • 段落s:最適合用於文件結構分析與大量文字擷取
  • :有助於維持閱讀順序並處理表格資料
  • WORD:非常適合搜尋功能與文字分析
  • 字元:非常適合拼寫檢查與精確的文字編輯應用

IronOCR 能否讀取 BarCode 和 QR 碼?

是的,IronOCR 能夠讀取 BARCODE 和 QR 碼。 雖然 IronOCR 的功能可能不如 IronBarcode 那樣強大,但它支援常見的 BARCODE 型別。若要啟用 BARCODE 偵測功能,請將 Configuration.ReadBarCodes 屬性設定為 true。 這項整合功能使 IronOCR 成為處理同時包含文字與 BARCODE 的文件(例如發票、運送標籤或產品目錄)的絕佳選擇。

此外,可從偵測到的BarCode中提取有價值的資訊,包括格式、數值、座標(x, y)、高度、寬度及位置,並以 IronSoftware.Drawing.Rectangle 物件形式呈現。 IronDrawing 中的此 Rectangle 類別可實現文件上的精確定位。

若需處理更進階的BarCode讀取情境,請參閱我們文件中的完整BarCode讀取範例

using IronOcr;
using System;
using static IronOcr.OcrResult;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = true;

// Add image
using OcrInput ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(ocrInput);

// Output information to console
foreach(var barcode in ocrResult.Barcodes)
{
    Console.WriteLine("Format = " + barcode.Format);
    Console.WriteLine("Value = " + barcode.Value);
    Console.WriteLine("X = " + barcode.X);
    Console.WriteLine("Y = " + barcode.Y);
}
Console.WriteLine(ocrResult.Text);

BarCode.Detection的輸出結果會是什麼樣子?

IronOCR 的 BarCode 偵測功能與文字擷取功能無縫整合,提供包含文字內容與 BarCode 資料在內的統一結果。 這項雙重能力對於需要同時提取並關聯這兩類資訊的自動化文件處理工作流程而言,具有極高價值。

顯示 QR 碼與 EAN8 BARCODE 偵測結果的除錯主控台,包含格式、數值及座標

此輸出範例展示了 IronOCR 同時偵測多種 BARCODE 型別的能力,針對每個偵測到的 BARCODE,提供格式識別(例如 QR 碼或 EAN8)、解碼值以及精確的座標資訊。 這套全面性的資料讓開發者能夠建置精細的文件處理應用程式,以高效處理混合內容型別。

常見問題

OcrResult 物件包含什麼資訊?

IronOCR 的 OcrResult 物件包含提取的文字以及詳細的中繼資料,包括精確的 X/Y 座標、尺寸(寬度和高度)、文字方向(從左到右或從上到下),並按段落、行、單字和單個字元為每個檢測到的元素組織階層結構。

我可以如何快速提取 OCR 結果中的第一個單字?

您可以使用 IronOCR 的 Read 方法來提取第一個單字的文字,並存取 Words 集合:`string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;` 這可立即存取 OCR 結果中的個別單字元素。

OCR 結果中有哪些座標資料可用?

IronOCR 提供每個檢測元素(段落、行、單字和字元)的精確 X 和 Y 座標,以及寬度和高度尺寸。此座標資料可透過 CropRectangle 物件存取,從而能夠對文字元素進行精確的位置追踪。

我可以提取超出文字內容的中繼資料嗎?

可以,IronOCR 提取完整的中繼資料,包括在 PDF 和影像文件中發現的頁面、段落、行、單字、字元甚至條碼。OcrResult 物件提供每個元素的文字方向、階層結構和空間資訊存取。

哪些文件型別可以處理以獲得 OCR 結果?

IronOCR 可以處理各種文件型別,包括掃描檔、照片、截圖、PDF 和影像檔案。Read 方法在這些格式之間一致地運作,返回相同的結構化 OcrResult 物件,包含完整的中繼資料。

提取的文字如何在結果中組織?

IronOCR 將提取的文字按階層結構組織,這與自然文件組織相呼應。OcrResult 物件以不同的粒度級別呈現內容,從整個頁面到單個字元,使得在應用程式中容易使用適當級別的文字。

Can IronOCR read barcodes and QR codes?

Yes, IronOCR can read common barcode types, including QR codes, by enabling barcode detection in the configuration. This integration allows for comprehensive processing of documents containing both text and barcodes.

How does IronOCR help with hierarchical text analysis?

IronOCR's hierarchical text structure allows developers to work at different granularity levels, such as paragraphs, lines, words, and characters, making it suitable for various applications like document structure analysis and text search functionality.

What advanced features does IronOCR offer for coordinate-based operations?

IronOCR offers OCR region targeting for focused text extraction and Computer Vision capabilities to automatically identify text regions, enhancing precision in coordinate-based applications.

What does the barcode detection output look like in IronOCR?

The barcode detection output in IronOCR includes format identification, decoded values, and precise coordinates, seamlessly integrated with text extraction for efficient processing of mixed content documents.

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

...
閱讀更多

準備開始了嗎?

Nuget Downloads 6,236,385版本:2026.9剛剛發布

立即獲取您的30天試用金鑰
無需信用卡或帳戶建立
C# PDF的NuGet程式庫
使用NuGet安裝

版本: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. 在解決方案資源管理器中,右鍵點擊參考,管理NuGet包
  2. 選擇瀏覽並搜尋"IronOCR"
  3. 選擇包並安裝
C# PDF DLL
下載 DLL

版本: 2026.9

這裡下載Windows安裝程式。

  1. 下載並解壓IronOCR至您的方案目錄下的~/Libs等位置
  2. 在Visual Studio解決方案資源管理器中,右鍵點擊參考。選擇瀏覽,"IronOCR.dll"

授權從$999

有問題嗎?聯絡我們的開發團隊。

Key in blue circle

立即免費取得 30 天試用金鑰

Your trial license will be sent to your email address

無任何限制。100% 解鎖。無需信用卡。

bullet_checked無需信用卡或建立帳號無任何限制。100% 解鎖。無需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
獲取您的無義務諮詢
填寫以下表格或發送電子郵件至sales@ironsoftware.com
您的詳細資訊將始終保密。
被全球數百萬工程師信任
Iron Software的客戶標誌
立即獲取您的30天試用金鑰
無需信用卡或帳戶建立