如何在 C# 中讀取掃描文件 | IronOCR

使用 IronOCR 在 C# 中讀取掃描文件

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

IronOCR 讓 C# 開發人員能夠利用 OCR 技術從掃描的 PDF 和圖像中提取文字,僅需幾行程式碼,即可將無法搜尋的圖像型文件轉換為可搜尋且可存取的內容。

許多 PDF 檔案包含無法搜尋的圖像化文字。 IronOCR 將其轉換為可搜尋的內容,使查找特定資訊更為容易,並提升文件的可存取性,特別是對視力障礙者而言。

相較於手動複製或重新建立文字與圖片,自動化擷取能確保準確性與效率。 這對於研究、法律文件以及內容創作特別有用,因為在這些領域中,重複使用 PDF 的特定部分是常見的做法。

企業可從 PDF 檔案中擷取關鍵資料,用於分析或系統整合,從而簡化工作流程。 設計師和行銷人員亦可擷取圖片,以便進行後製處理並在各類專案中重複使用。

在本教學中,我們將深入探討 OcrPdfInput 方法,涵蓋各項可用選項與參數,以展示 IronOCR 如何為各類應用簡化 PDF 文字與圖像的擷取流程。

若要使用此功能,您還必須安裝 IronOcr.Extensions.AdvancedScan 套件。

快速入門:從掃描的 PDF 或圖片中擷取文字

幾秒鐘內即可開始使用——只需一行程式碼,您就能透過 IronOCR 的 OcrInput.LoadPdfLoadImage 載入掃描的 PDF 或圖像,並立即透過 ReadDocument 擷取文字。 非常適合希望快速部署 OCR 的開發人員。

  1. using NuGet 套件管理員安裝 https://www.nuget.org/packages/IronOcr

    PM > Install-Package IronOcr
  2. 請複製並執行此程式碼片段。

    var text = new IronOcr.IronTesseract().ReadDocument(new IronOcr.OcrInput().LoadPdf("scanned.pdf")).Text;
  3. 部署至您的生產環境進行測試

    立即透過免費試用,在您的專案中開始使用 IronOCR

    arrow pointer

如何從掃描文件中擷取文字?

若要從文件中的所有圖片中擷取文字,請使用 ReadDocument 方法。 此方法會處理文件,並傳回一個包含已擷取文字的物件,可透過 Text 屬性存取該文字。 以下範例示範如何使用此方法處理一個 TIFF 樣本檔案。

IronOCR 支援多種文件格式進行掃描。 圖片方面,可處理 JPG、PNG、GIF、TIFF 及 BMP 格式;PDF 支援則涵蓋單頁與多頁文件。 此函式庫採用先進的 Tesseract 5 技術,確保在所有支援的格式中皆能達到高準確度。

請注意

  • 此方法目前僅適用於英語、中文、日語、韓語及拉丁字母。
  • 若要在 .NET Framework 上使用進階掃描功能,專案必須在 x64 架構上執行。 )}]

原始文件呈現為何種樣式?

《哈利波特》書頁,顯示第八章

我該如何實作 OCR 程式碼?

:path=/static-assets/ocr/content-code-examples/how-to/read-scanned-document-read-scanned-document.cs
using IronOcr;
using System;

// Instantiate OCR engine
var ocr = new IronTesseract();

// Configure OCR engine
using var input = new OcrInput();
input.LoadImage("potter.tiff");

// Perform OCR
OcrResult result = ocr.ReadDocument(input);

Console.WriteLine(result.Text);
Imports IronOcr
Imports System

' Instantiate OCR engine
Private ocr = New IronTesseract()

' Configure OCR engine
Private input = New OcrInput()
input.LoadImage("potter.tiff")

' Perform OCR
Dim result As OcrResult = ocr.ReadDocument(input)

Console.WriteLine(result.Text)
$vbLabelText   $csharpLabel

我對 OCR 處理能期待什麼樣的結果?

Visual Studio 除錯視窗顯示經 OCR 處理的《哈利波特》掃描文件範例輸出

若您需要對 PDF 檔案執行 OCR,只需將 LoadImage 方法替換為 LoadPdf 即可。 這使 IronOCR 能夠以相同的方式處理並從掃描的 PDF 檔案中擷取文字。

進階文件處理選項

在處理掃描文件時,您通常需要對 OCR 流程擁有更多控制權。 IronOCR 提供多項進階功能,可提升您的文字擷取成效。

處理多頁文件

對於多頁文件,IronOCR 可高效處理批次處理:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load a multi-page PDF
input.LoadPdf("multi-page-document.pdf");

// Process all pages
OcrResult result = ocr.ReadDocument(input);

// Access individual page results
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load a multi-page PDF
input.LoadPdf("multi-page-document.pdf");

// Process all pages
OcrResult result = ocr.ReadDocument(input);

// Access individual page results
foreach (var page in result.Pages)
{
    Console.WriteLine($"Page {page.PageNumber}: {page.Text}");
}
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()

    ' Load a multi-page PDF
    input.LoadPdf("multi-page-document.pdf")

    ' Process all pages
    Dim result As OcrResult = ocr.ReadDocument(input)

    ' Access individual page results
    For Each page In result.Pages
        Console.WriteLine($"Page {page.PageNumber}: {page.Text}")
    Next

End Using
$vbLabelText   $csharpLabel

優化 OCR 效能

掃描文件的品質會直接影響 OCR 的準確度。 IronOCR 內建影像優化濾鏡,可提升文字辨識效果:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load and enhance image quality
input.LoadImage("low-quality-scan.jpg");
input.Deskew();  // Correct image skew
input.DeNoise(); // Remove background noise
input.Binarize(); // Convert to black and white

OcrResult result = ocr.ReadDocument(input);
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();

// Load and enhance image quality
input.LoadImage("low-quality-scan.jpg");
input.Deskew();  // Correct image skew
input.DeNoise(); // Remove background noise
input.Binarize(); // Convert to black and white

OcrResult result = ocr.ReadDocument(input);
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()
    ' Load and enhance image quality
    input.LoadImage("low-quality-scan.jpg")
    input.Deskew()  ' Correct image skew
    input.DeNoise() ' Remove background noise
    input.Binarize() ' Convert to black and white

    Dim result As OcrResult = ocr.ReadDocument(input)
End Using
$vbLabelText   $csharpLabel

建立可搜尋的 PDF 檔案

在處理掃描文件時,最實用的功能之一便是能夠建立可搜尋的 PDF 檔案。 此格式在保留原始文件外觀的同時,新增了一層文字:

using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-document.pdf");

// Process and save as searchable PDF
OcrResult result = ocr.ReadDocument(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
using IronOcr;

var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("scanned-document.pdf");

// Process and save as searchable PDF
OcrResult result = ocr.ReadDocument(input);
result.SaveAsSearchablePdf("searchable-output.pdf");
Imports IronOcr

Dim ocr As New IronTesseract()
Using input As New OcrInput()
    input.LoadPdf("scanned-document.pdf")

    ' Process and save as searchable PDF
    Dim result As OcrResult = ocr.ReadDocument(input)
    result.SaveAsSearchablePdf("searchable-output.pdf")
End Using
$vbLabelText   $csharpLabel

處理不同類型的文件

IronOCR 擅長處理商務環境中常見的各種文件類型。 無論您處理的是發票、合約或歷史文件,此函式庫皆提供專門功能,可從不同來源擷取資料。

處理舊版文件

許多組織都擁有以舊格式儲存的掃描文件檔案庫。 IronOCR 能高效處理這些任務,包括支援文件管理系統中常見的多頁 TIFF 檔案

語言支援

雖然此範例以英文文本為主,但 IronOCR 支援超過 125 種國際語言。 這使其非常適合處理多語言文件或非英語文件。

文件掃描的最佳實踐

為在處理掃描文件時獲得最佳效果:

  1. 掃描品質:為獲得最佳效果,請使用至少 300 DPI 的解析度
  2. 檔案格式:對於文字文件,TIFF 和 PNG 格式比 JPEG 更能保留畫質
  3. 預處理:根據文件狀態套用適當的篩選器
  4. 效能:處理大量批次時,請考慮使用多執行緒功能

常見問題排除

在處理掃描文件時,您可能會遇到各種挑戰。 以下是常見問題的解決方案:

  • 掃描品質不佳:在 OCR 處理前請先套用增強濾鏡
  • 傾斜的文件:請使用 Deskew() 方法來修正方向
  • 混合內容:若文件同時包含文字與非文字元素,請針對特定區域進行處理

如需更詳細的指引,請參閱我們的完整 C# OCR 教學,或查看簡單的 OCR 範例以快速上手。

後續步驟

既然您已了解如何從掃描文件中擷取文字,接下來可以探索更多進階功能,例如讓任何 PDF 文件可搜尋,或是為網頁應用程式處理 PDF 流。 IronOCR 的靈活性使其適用於從簡單的文件數位化到複雜的 Enterprise 文件處理工作流程等各種情境。

常見問題

如何在 C# 中從掃描的 PDF 中擷取文字?

IronOCR 讓您能輕鬆地在 C# 中從掃描的 PDF 檔案中擷取文字。使用 LoadPdf 方法載入您的掃描 PDF 檔案,然後呼叫 ReadDocument 來擷取文字。例如:var text = new IronOcr.IronTesseract().ReadDocument(new IronOcr.OcrInput().LoadPdf("scanned.pdf")).Text; 這一行程式碼即可載入您的 PDF 並擷取所有文字內容。

該 OCR 函式庫支援哪些檔案格式進行文字擷取?

IronOCR 支援廣泛的文件格式進行 OCR 掃描。針對圖像,它支援 JPG、PNG、GIF、TIFF 及 BMP 格式;針對 PDF,則可處理單頁與多頁文件。此程式庫採用先進的 Tesseract 5 技術,確保在所有支援的格式中皆能達到高準確度。

我需要安裝額外的套件才能使用 OCR 功能嗎?

是的,若要使用 IronOCR 的完整 OCR 功能,除了主 IronOCR程式庫外,您還需安裝 IronOcr.Extensions.AdvancedScan 套件。此擴充套件提供增強的掃描功能,用於處理掃描文件。

除了 PDF 檔案外,我也能從掃描的圖片中擷取文字嗎?

是的,IronOCR 對掃描圖像和 PDF 檔案的處理效果同樣出色。請使用 LoadImage 方法處理圖像檔案(JPG、PNG、GIF、TIFF、BMP),或使用 LoadPdf 處理 PDF 文件。ReadDocument 方法適用於這兩種輸入類型,用以擷取文字內容。

OCR 如何協助處理無法搜尋的 PDF 文件?

IronOCR 透過 OCR 技術擷取文字,將不可搜尋的圖像型 PDF 轉換為可搜尋內容。此轉換使查找文件中的特定資訊更加容易,並顯著提升文件的可存取性,對於視障人士而言尤為重要。

OCR 文字擷取的主要商業應用有哪些?

IronOCR 讓企業能夠從 PDF 中擷取關鍵資料,用於分析與系統整合,從而簡化工作流程。它特別適用於處理法律文件、研究論文,以及自動化資料輸入。設計師和行銷人員亦可擷取圖片,進行後製處理並在各類專案中重複使用。

IronOCR 能否整合至現有應用程式中?

IronOCR 設計上可輕鬆透過 C# 整合至現有應用程式中,讓開發人員能以最少的努力,為其軟體增添 OCR 功能。

使用 IronOCR 進行文件管理有哪些好處?

使用 IronOCR 進行文件管理,可將掃描文件轉換為可搜尋且可編輯的文字,從而簡化工作流程,減少人工資料輸入的需求,並提升文件的可存取性。

IronOCR 如何提升資料準確性?

IronOCR 透過其先進的辨識演算法與影像校正功能來提升資料準確性,確保文字擷取過程既可靠又精確。

IronOCR 是否有提供免費試用版?

是的,Iron Software 提供 IronOCR 的免費試用版,讓使用者能在決定購買前測試其功能與效能。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 5,896,332 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronOcr
執行範例 觀看您的圖片轉為可搜尋文字。