如何在 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. 使用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);
$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}");
}
$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);
$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");
$vbLabelText   $csharpLabel

處理不同類型的文檔

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

處理歷史文檔

許多機構都保存著舊格式的掃描文件。 IronOCR可以有效率地處理這些文件,包括支援文件管理系統中常用的多頁 TIFF 文件

語言支援

雖然此範例側重於英文文本,但IronOCR支援超過 125 種國際語言。 這使其成為處理多語言文件或非英語文件的理想選擇。

文件掃描最佳實踐

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

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

常見問題排除

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

-掃描品質不佳:在 OCR 處理前應用增強濾鏡
-文件傾斜:使用 Deskew() 方法校正方向
-混合內容:如果文件同時包含文字和非文字元素,則處理特定區域

如需更詳細的指導,請瀏覽我們全面的 C# OCR 教程,或查看簡單的 OCR 範例以快速入門。

後續步驟

現在您已經了解如何從掃描文件中提取文本,您可以探索更高級的功能,例如使任何 PDF 可搜尋或處理用於 Web 應用程式的PDF 流。 IronOCR 的靈活性使其適用於從簡單的文件數位化到複雜的企業文件處理工作流程等各種應用情境。

常見問題解答

如何使用 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 的處理同樣出色。對於影像檔案 (JPG、PNG、GIF、TIFF、BMP) 使用 LoadImage 方法,對於 PDF 文件則使用 LoadPdf 方法。ReadDocument 方法可與這兩種輸入類型搭配使用,以擷取文字內容。

OCR 如何協助處理不可搜尋的 PDF 文件?

IronOCR 透過使用 OCR 技術擷取文字,將不可搜尋、以圖片為基礎的 PDF 轉換為可搜尋的內容。這種轉換讓您更容易找到文件中的特定資訊,並大幅提升文件的可讀性,特別是對有視覺障礙的個人而言。

OCR 文字擷取的主要商業應用為何?

IronOCR 可讓企業從 PDF 中萃取關鍵資料進行分析和系統整合,簡化工作流程。它對於處理法律文件、研究論文和自動化資料輸入特別有用。設計師和行銷人員也可以擷取圖片,以便在各種專案中強化和重複使用。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 5,556,263 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖片變成可搜尋的文字。