跳過到頁腳內容
使用 IRONOCR
使用 IronOCR 發揮可搜尋 PDF 的威力

利用 IronOCR 發揮可搜尋 PDF 的威力:網路研討會重溫

在"使用 IronOCR 簡化文件轉換"網路研討會中,軟體銷售工程師 Chipego Kalinda 和銷售營運經理 Darren Steddy 透過即時程式碼和真實案例,探討了IronOCR的三個實際用例,演示了將掃描的 PDF 轉換為可搜尋、符合規範的文檔是多麼有效和容易。

IronOCR 允許企業只需幾行程式碼即可將掃描的 PDF 文件轉換為可搜尋、符合規範的文檔,自動提取資料並滿足 PDF/UA 等無障礙標準,從而實現法律合規性和營運效率。

如何使 PDF 檔案符合 PDF/UA 標準?

為什麼 PDF/UA 標準對我的業務很重要?

許多組織必須滿足 PDF/UA 等可訪問性和合規性標準——無論是為了內部政策、公共部門要求還是長期存檔。 PDF/UA(一般無障礙)標準確保殘疾使用者(特別是使用螢幕閱讀器等輔助科技的使用者)能夠完全存取 PDF 檔案。 這不僅僅是合規的問題,而是要確保所有用戶都能平等地獲取信息,同時避免與無障礙訪問違規相關的潛在法律問題。

IronOCR 方法為何如此簡單?

Chipego 示範了 IronOCR 如何僅用幾行程式碼將普通的、不合規的 PDF 轉換為完全符合 PDF/UA 規範的文件

using IronOcr;
using IronPdf;

// Initialize IronOCR
var ocr = new IronTesseract();

// Configure OCR for accessibility compliance
ocr.Configuration.ReadBarCodes = true;
ocr.Configuration.RenderSearchablePdf = true;

// Read the scanned PDF
using var input = new OcrInput();
input.AddPdf("scanned-document.pdf");

// Perform OCR and create searchable PDF/UA compliant document
var result = ocr.Read(input);
result.SaveAsSearchablePdf("compliant-output.pdf");
using IronOcr;
using IronPdf;

// Initialize IronOCR
var ocr = new IronTesseract();

// Configure OCR for accessibility compliance
ocr.Configuration.ReadBarCodes = true;
ocr.Configuration.RenderSearchablePdf = true;

// Read the scanned PDF
using var input = new OcrInput();
input.AddPdf("scanned-document.pdf");

// Perform OCR and create searchable PDF/UA compliant document
var result = ocr.Read(input);
result.SaveAsSearchablePdf("compliant-output.pdf");
Imports IronOcr
Imports IronPdf

' Initialize IronOCR
Dim ocr As New IronTesseract()

' Configure OCR for accessibility compliance
ocr.Configuration.ReadBarCodes = True
ocr.Configuration.RenderSearchablePdf = True

' Read the scanned PDF
Using input As New OcrInput()
    input.AddPdf("scanned-document.pdf")

    ' Perform OCR and create searchable PDF/UA compliant document
    Dim result = ocr.Read(input)
    result.SaveAsSearchablePdf("compliant-output.pdf")
End Using
$vbLabelText   $csharpLabel

使用 VeraPDF(一種用於驗證可訪問性和存檔標準的工具)對結果進行了驗證。 對於需要證明符合稽核或監管要求的組織而言,此驗證步驟至關重要。

誰能從PDF/UA合規性中獲益最多?

PDF/UA 合規性可確保視障使用者可以使用螢幕閱讀器存取您的文檔,從而支援法律合規性和包容性設計。 政府機構、教育機構和醫療機構尤其受益,因為它們通常有嚴格的無障礙要求。 此外,在歐盟開展業務的公司必須遵守《歐洲無障礙法案》,因此符合 PDF/UA 標準對於進入市場至關重要。

示範如何使用 IronOCR 建立可搜尋的 PDF 文件,並展示修改前後的文件比較。

如何使掃描的PDF檔案可搜尋?

這解決了什麼問題?

你有沒有遇過那種看起來像 PDF 檔案但實際開啟方式卻像圖片一樣的掃描文件? 這時就需要用到OCR技術了。 許多企業都面臨著包含數千個掃描 PDF 文件的舊文件存檔的難題——這些文件佔用儲存空間,但無法進行搜尋或提取資料。 如果沒有 OCR 技術,員工將浪費無數時間手動搜尋文檔,導致生產力下降和營運成本增加。

轉換過程是如何運作的?

Chipego 展示了 IronOCR 如何將不可搜尋的掃描 PDF 轉換為可搜尋的 PDF ,從而立即實現全文搜尋功能。 該過程涉及多個複雜步驟:

using IronOcr;

// Create a new OCR engine instance
var ocr = new IronTesseract();

// Configure language and accuracy settings
ocr.Language = OcrLanguage.English;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the scanned PDF
using var input = new OcrInput();
input.AddPdf("invoice-scan.pdf");

// Apply image improve for better accuracy
input.DeNoise();
input.Deskew();
input.EnhanceResolution(225);

// Perform OCR and save as searchable PDF
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-invoice.pdf");

// Extract text for indexing
string extractedText = result.Text;
Console.WriteLine($"Extracted {extractedText.Length} characters");
using IronOcr;

// Create a new OCR engine instance
var ocr = new IronTesseract();

// Configure language and accuracy settings
ocr.Language = OcrLanguage.English;
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Load the scanned PDF
using var input = new OcrInput();
input.AddPdf("invoice-scan.pdf");

// Apply image improve for better accuracy
input.DeNoise();
input.Deskew();
input.EnhanceResolution(225);

// Perform OCR and save as searchable PDF
var result = ocr.Read(input);
result.SaveAsSearchablePdf("searchable-invoice.pdf");

// Extract text for indexing
string extractedText = result.Text;
Console.WriteLine($"Extracted {extractedText.Length} characters");
Imports IronOcr

' Create a new OCR engine instance
Dim ocr As New IronTesseract()

' Configure language and accuracy settings
ocr.Language = OcrLanguage.English
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Load the scanned PDF
Using input As New OcrInput()
    input.AddPdf("invoice-scan.pdf")

    ' Apply image improve for better accuracy
    input.DeNoise()
    input.Deskew()
    input.EnhanceResolution(225)

    ' Perform OCR and save as searchable PDF
    Dim result = ocr.Read(input)
    result.SaveAsSearchablePdf("searchable-invoice.pdf")

    ' Extract text for indexing
    Dim extractedText As String = result.Text
    Console.WriteLine($"Extracted {extractedText.Length} characters")
End Using
$vbLabelText   $csharpLabel

轉換後,使用者可以使用 Ctrl+F 尋找特定內容,或按日期、姓名或文件主題等關鍵字進行搜尋。 OCR引擎能夠智慧地保留原始文件佈局,同時添加一個不可見的文字層,使內容可搜尋和可選擇。

哪些行業最能從可搜尋的PDF中受益?

非常適合: 處理案件檔案和合約的律師事務所

  • 管理病患記錄的醫療機構
  • 需要快速內容搜尋的紙本記錄數位化團隊
  • 金融機構的發票處理和合規 房地產公司將房地產文件數位化

據業內人士估計,在大型文件庫中快速查找特定資訊的能力可以將搜尋時間縮短高達 90%。

IronOCR介面展示了轉換後的PDF檔案中的文字擷取和搜尋功能

如何從PDF文件中提取特定數據?

何時應該使用靶向提取?

對於處理大量結構化文件(如收據、採購訂單或發票)的企業,Chipego 示範了 IronOCR 如何使用邊界框座標從特定的 PDF 區域提取資料。 這種有針對性的方法在處理標準化表格時尤其有價值,因為關鍵資訊會出現在一致的位置,例如發票上的總金額、合約上的日期或訂單上的客戶 ID。

區域處理如何提高效能?

IronOCR 不會處理整個文件,而是只關注訂單號、總計或地址等相關字段,從而顯著提高速度並降低雲端或運算成本。 以下是如何實現目標提取:

using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

// Load PDF and define extraction regions
using var input = new OcrInput();
input.AddPdf("purchase-order.pdf", 1); // Process first page only

// Define bounding box for PO number field (x, y, width, height)
var poNumberArea = new Rectangle(450, 100, 150, 50);
input.AddPdfPage("purchase-order.pdf", 1, poNumberArea);

// Extract just the PO number
var result = ocr.Read(input);
string poNumber = result.Text.Trim();

// Define multiple regions for batch extraction
var regions = new Dictionary<string, Rectangle>
{
    { "PONumber", new Rectangle(450, 100, 150, 50) },
    { "TotalAmount", new Rectangle(450, 600, 150, 50) },
    { "VendorName", new Rectangle(50, 200, 300, 50) }
};

// Extract data from each region
var extractedData = new Dictionary<string, string>();
foreach (var region in regions)
{
    input.Clear();
    input.AddPdfPage("purchase-order.pdf", 1, region.Value);
    var regionResult = ocr.Read(input);
    extractedData[region.Key] = regionResult.Text.Trim();
}
using IronOcr;
using System.Drawing;

var ocr = new IronTesseract();

// Load PDF and define extraction regions
using var input = new OcrInput();
input.AddPdf("purchase-order.pdf", 1); // Process first page only

// Define bounding box for PO number field (x, y, width, height)
var poNumberArea = new Rectangle(450, 100, 150, 50);
input.AddPdfPage("purchase-order.pdf", 1, poNumberArea);

// Extract just the PO number
var result = ocr.Read(input);
string poNumber = result.Text.Trim();

// Define multiple regions for batch extraction
var regions = new Dictionary<string, Rectangle>
{
    { "PONumber", new Rectangle(450, 100, 150, 50) },
    { "TotalAmount", new Rectangle(450, 600, 150, 50) },
    { "VendorName", new Rectangle(50, 200, 300, 50) }
};

// Extract data from each region
var extractedData = new Dictionary<string, string>();
foreach (var region in regions)
{
    input.Clear();
    input.AddPdfPage("purchase-order.pdf", 1, region.Value);
    var regionResult = ocr.Read(input);
    extractedData[region.Key] = regionResult.Text.Trim();
}
Imports IronOcr
Imports System.Drawing

Dim ocr As New IronTesseract()

' Load PDF and define extraction regions
Using input As New OcrInput()
    input.AddPdf("purchase-order.pdf", 1) ' Process first page only

    ' Define bounding box for PO number field (x, y, width, height)
    Dim poNumberArea As New Rectangle(450, 100, 150, 50)
    input.AddPdfPage("purchase-order.pdf", 1, poNumberArea)

    ' Extract just the PO number
    Dim result = ocr.Read(input)
    Dim poNumber As String = result.Text.Trim()

    ' Define multiple regions for batch extraction
    Dim regions As New Dictionary(Of String, Rectangle) From {
        {"PONumber", New Rectangle(450, 100, 150, 50)},
        {"TotalAmount", New Rectangle(450, 600, 150, 50)},
        {"VendorName", New Rectangle(50, 200, 300, 50)}
    }

    ' Extract data from each region
    Dim extractedData As New Dictionary(Of String, String)()
    For Each region In regions
        input.Clear()
        input.AddPdfPage("purchase-order.pdf", 1, region.Value)
        Dim regionResult = ocr.Read(input)
        extractedData(region.Key) = regionResult.Text.Trim()
    Next
End Using
$vbLabelText   $csharpLabel

與全頁 OCR 相比,這種有針對性的方法可以減少 70-80% 的處理時間,使其成為大批量文件處理場景的理想選擇。

企業能從中獲得哪些好處?

這可以自動執行重複的資料輸入任務,減少人工勞動,提高準確性,並使團隊能夠從事更有價值的工作。 據各公司反映,光是資料輸入一項,每週就能節省 20-30 小時。 提取的資料可以自動匯出到資料庫,與現有系統集成,或觸發自動化工作流程。 例如,提取的發票總額可以自動更新會計系統,而提取的客戶資訊可以自動填入 CRM 記錄,無需人工幹預。

IronOCR如何處理大規模自動化?

IronOCR可以同時處理多個檔案嗎?

雖然網路研討會展示了一些具體的程式碼範例,但 IronOCR 是為大規模批量處理而構建的。 無論您是要轉換數百或數千個文件還是數百萬個文件,IronOCR 都能輕鬆整合到您現有的系統中。 此企業解決方案支援多執行緒和分散式處理,使組織能夠每小時處理數千份文件。 以下是一個批量處理範例:

using IronOcr;
using System.IO;
using System.Threading.Tasks;

public async Task ProcessDocumentBatch(string folderPath)
{
    var ocr = new IronTesseract();
    ocr.Configuration.RenderSearchablePdf = true;

    // Get all PDF files in directory
    var pdfFiles = Directory.GetFiles(folderPath, "*.pdf");

    // Process files in parallel for maximum efficiency
    await Parallel.ForEachAsync(pdfFiles, async (file, ct) =>
    {
        using var input = new OcrInput();
        input.AddPdf(file);

        var result = await Task.Run(() => ocr.Read(input));

        // Save searchable version
        var outputPath = Path.Combine(folderPath, "searchable", Path.GetFileName(file));
        result.SaveAsSearchablePdf(outputPath);

        // Log processing results
        Console.WriteLine($"Processed: {file} - {result.Pages.Length} pages");
    });
}
using IronOcr;
using System.IO;
using System.Threading.Tasks;

public async Task ProcessDocumentBatch(string folderPath)
{
    var ocr = new IronTesseract();
    ocr.Configuration.RenderSearchablePdf = true;

    // Get all PDF files in directory
    var pdfFiles = Directory.GetFiles(folderPath, "*.pdf");

    // Process files in parallel for maximum efficiency
    await Parallel.ForEachAsync(pdfFiles, async (file, ct) =>
    {
        using var input = new OcrInput();
        input.AddPdf(file);

        var result = await Task.Run(() => ocr.Read(input));

        // Save searchable version
        var outputPath = Path.Combine(folderPath, "searchable", Path.GetFileName(file));
        result.SaveAsSearchablePdf(outputPath);

        // Log processing results
        Console.WriteLine($"Processed: {file} - {result.Pages.Length} pages");
    });
}
Imports IronOcr
Imports System.IO
Imports System.Threading.Tasks

Public Async Function ProcessDocumentBatch(folderPath As String) As Task
    Dim ocr As New IronTesseract()
    ocr.Configuration.RenderSearchablePdf = True

    ' Get all PDF files in directory
    Dim pdfFiles = Directory.GetFiles(folderPath, "*.pdf")

    ' Process files in parallel for maximum efficiency
    Await Task.WhenAll(pdfFiles.Select(Function(file) Task.Run(Async Function()
                                                                  Using input As New OcrInput()
                                                                      input.AddPdf(file)

                                                                      Dim result = Await Task.Run(Function() ocr.Read(input))

                                                                      ' Save searchable version
                                                                      Dim outputPath = Path.Combine(folderPath, "searchable", Path.GetFileName(file))
                                                                      result.SaveAsSearchablePdf(outputPath)

                                                                      ' Log processing results
                                                                      Console.WriteLine($"Processed: {file} - {result.Pages.Length} pages")
                                                                  End Using
                                                              End Function)))
End Function
$vbLabelText   $csharpLabel

有哪些支援選項?

需要幫助? Iron Software 提供每週 5 天、每天 24 小時的線上聊天和電子郵件技術支援,幫助您快速上手。 他們的支援團隊包括 OCR 專家,無論您是處理具有挑戰性的文件類型、多種語言還是複雜的整合要求,他們都可以幫助您改進具體的用例。 此外,完整的文件和程式碼範例可協助開發人員獨立實作解決方案。

準備好讓您的 PDF 文件可搜尋、合規且支援自動化了嗎?

IronOCR 將文件處理從人工瓶頸轉變為自動化工作流程。 它支援超過 125 種語言,具備高階影像預處理功能和流暢的 PDF 處理能力,是現代文件管理的完整解決方案。 無論您是確保合規性、啟用搜尋功能或提取關鍵數據,IronOCR 都能提供專業的 OCR 功能,並且易於開發人員實作。

查看 IronOCR 的完整文檔,立即開始使用:

試用30天

常見問題解答

如何將掃描的 PDF 轉換成可搜尋的文件?

您可以使用 IronOCR 將無法搜尋的掃描 PDF 轉換成完全可搜尋的文件。透過應用 OCR 技術,它可以實現全文檢索功能,讓您可以使用關鍵字或短語尋找特定內容。

讓 PDF 符合 PDF/UA 標準有哪些好處?

使 PDF 符合 PDF/UA 標準可確保視障使用者透過螢幕閱讀器進行存取。IronOcr 只需幾行程式碼即可將不符合標準的 PDF 轉換成符合 PDF/UA 標準的文件,並經過 VeraPDF 等工具的驗證。

IronOCR 如何協助從 PDF 中進行有針對性的資料擷取?

IronOCR 可以使用邊界框座標從 PDF 的特定區域擷取資料。此功能對於發票或收據等結構化文件特別有用,可讓您專注於相關欄位並提昇處理效率。

IronOCR 在自動化文件處理任務中扮演什麼角色?

IronOCR 專為規模化批次處理而設計,使其成為自動化文件轉換任務的理想選擇。它可以有效率地處理大量檔案,無縫整合至現有系統,以簡化工作流程。

將掃描的 PDF 轉換成可搜尋的格式對誰有利?

將掃描的 PDF 轉換為可搜尋的格式,可讓法律事務所和醫療保健提供者等組織獲益良多。這可在廣泛的檔案中進行快速、以內容為基礎的搜尋,簡化資訊檢索。

實施 IronOCR 的使用者有哪些支援選項?

Iron Software 透過聊天和電子郵件提供 24/5 技術支援,協助使用者實施 IronOCR。此支援可確保使用者能有效管理其文件轉換專案,並解決任何技術問題。

如何確保我的文件轉換專案成功?

為了確保成功,請利用 IronOCR 的強大功能,並充分利用 Iron Software 提供的技術支援。請至其官方網站存取完整說明文件,並考慮使用其 30 天試用版來探索其功能。

Kannaopat Udonpant
軟體工程師
在成為軟體工程師之前,Kannapat 完成了日本北海道大學的環境資源博士學位。在攻讀學位期間,Kannapat 也成為生物製造工程系車輛機器人實驗室的成員。2022 年,他利用自己的 C# 技能加入 Iron Software 的工程團隊,主要負責 IronPDF 的開發。Kannapat 非常重視他的工作,因為他可以直接向撰寫 IronPDF 使用的大部分程式碼的開發者學習。除了同儕學習之外,Kannapat 也很享受在 Iron Software 工作的社交生活。不寫程式碼或文件時,Kannapat 通常會用 PS5 玩遊戲或重看《最後的我們》。