在許多業務工作流程中,掃描的 PDF 文件必須轉換為可搜尋或可編輯的文字。

本 從掃描的 PDF 中提取文字,使用 Aspose.PDF OCR in C# 教程示範如何利用 Aspose.PDF for .NET 中整合的 OCR 引擎,從基於圖像的頁面中提取純文字。

遵循本指南,您將獲得一個即用即跑的解決方案,能夠處理任何掃描的 PDF,無論其大小或語言為何。

使用 Aspose.PDF OCR SDK 從掃描的 PDF 中提取文字

掃描的 PDF 僅包含圖像,因此典型的文字提取 API 什麼也不返回。OCR(光學字符識別)將這些圖像轉換為機器可讀的字符,從而實現索引、資料挖掘和下游處理。在 C# 中自動化 OCR 可消除手動 copy‑paste 步驟,提高準確性,並能在大量文件批次中擴展。

Aspose.PDF 提供 Aspose.Pdf.Ocr 命名空間,其中包括 OcrTextRecognitionOptions、OcrTextAbsorber 和語言列舉。此庫透過 NuGet 發行。使用以下命令安裝它:

Install-Package Aspose.PDF

欲了解更多資訊,請造訪 Aspose.PDF 產品頁面。

使用 Aspose.PDF OCR 在 C# 中從掃描的 PDF 提取文字

  1. 將掃描的 PDF 載入 Aspose.Pdf.Document。
  2. 設定 OCR 選項(語言、解析度、頁面分隔符)。
  3. 將 OcrTextAbsorber 套用至文件的頁面集合。
  4. 取得已辨識的文字並儲存。

此範例示範如何載入掃描的 PDF、設定 OCR、擷取文字,並使用 C# 將結果寫入檔案。

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void RecognizeTextWithOcr()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf();

// Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Configure OCR recognition options
        var options = new Aspose.Pdf.Ocr.OcrTextRecognitionOptions
        {
            Language = Aspose.Pdf.Ocr.OcrLanguage.English,
            Resolution = 300,
            PageSeparator = "\n\n"
        };

// Recognize text from all pages
        var absorber = new Aspose.Pdf.Ocr.OcrTextAbsorber(options);
        document.Pages.Accept(absorber);

// Save recognized text
        System.IO.File.WriteAllText(dataDir + "recognized-text.txt", absorber.Text);
    }
}

Aspose.PDF 對此任務重要的功能

  • 整合式 OCR 引擎 – 無需外部依賴;OCR 引擎位於 Aspose.Pdf.Ocr 命名空間中。
  • 語言選擇 – OcrLanguage 列舉讓您指定字典以獲得更佳的辨識效果。
  • 解析度控制 – 較高的 DPI 可提升字元還原度,尤其是對於淡薄的掃描件。
  • PageSeparator – 可自訂字串以在輸出文字中分隔頁面。
  • Thread‑safe page collection – 允許對大型 PDF 進行平行處理。

這些功能使得一個強大、單一庫的解決方案能夠從任何掃描的 PDF 中提取文字。

在 C# 中的安裝與設定

  1. 在 Visual Studio 中打開您的 .NET 解決方案。
  2. 打開 Package Manager Console,然後執行 Install-Package Aspose.PDF。
  3. 在類文件的頂部添加 using Aspose.Pdf; 和 using Aspose.Pdf.Ocr;。
  4. 確保您擁有臨時或完整許可證;如果沒有,輸出可能會包含水印。

有關授權詳情,請參閱臨時授權頁面。

C# 的逐步實作

此部分回答什麼? 提取文字的確切程式碼步驟是什麼?

  1. 初始化文件
    var pdfPath = "path/to/scanned.pdf";
    var document = new Document(pdfPath);
    
  2. 建立 OCR 選項
    var ocrOptions = new OcrTextRecognitionOptions
    {
        Language = OcrLanguage.English,
        Resolution = 300,
        PageSeparator = "\n--- Page Break ---\n"
    };
    
  3. 執行吸收器
    var absorber = new OcrTextAbsorber(ocrOptions);
    document.Pages.Accept(absorber);
    
  4. 存取提取的文字
    string extractedText = absorber.Text;
    
  5. 儲存或處理文字
    System.IO.File.WriteAllText("output.txt", extractedText);
    

此程式碼遵循上述完整範例的相同流程,但將邏輯分解為易於理解的步驟。

取得免費授權

透過請求臨時授權,可免費評估 Aspose.PDF,請點此:https://purchase.aspose.com/temporary-license/

免費額外資源

結論

本指南帶您了解如何使用 Aspose.PDF OCR 在 C# 中從掃描的 PDF 中提取文字。您學會了如何安裝庫、配置 OCR 選項以提高準確性、實作乾淨的提取流程,並對大型文件應用效能優化。透過這些技術,任何 .NET 開發人員都能將僅含圖像的 PDF 轉換為可搜尋、可編輯的文字流。

常見問題

  1. 如何在 C# 中使用 Aspose.PDF 從掃描的 PDF 中提取文字? 建立一個 Document,設定 OcrTextRecognitionOptions,在頁面上執行 OcrTextAbsorber,然後讀取 Text 屬性。

  2. Aspose.PDF 支援哪些 OCR 語言? 此函式庫透過 OcrLanguage 列舉支援多種語言,包括英語、法語、德語、西班牙語、中文等。

  3. 如何提升低解析度掃描的 OCR 準確度? 提高 Resolution(例如 300 DPI),選擇正確的語言,並考慮對圖像進行前處理以提升對比度。

  4. 平行處理大型 PDF 安全嗎? 可以,將文件拆分為頁範圍,並在不同執行緒上處理每個範圍,同時監控記憶體使用情況。

  5. OCR 功能需要什麼授權? 只要擁有有效的 Aspose.PDF for .NET 授權,即可完整使用 OCR 功能;亦可取得臨時授權以進行評估。

  6. 在哪裡可以找到有關 OCR 設定的更多文件? 在 Aspose.PDF OCR 設定文件中提供了詳細的 OCR 配置指南,網址為 https://docs.aspose.com/pdf/net/.

閱讀更多