跳至頁尾內容
USING IRONOCR
釋放IronOCR所建立的可搜尋PDFs的威力

using 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中提取特定資料?

何時應使用目標提取?

對於處理大量結構化文件(如收據、PO或發票)的企業,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提供24/5技術支援,通過聊天和電子郵件助您快速上手。 他們的支援團隊包括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提供5天24小時的技術支援,透過聊天和電子郵件協助使用者實施IronOCR。此支援確保使用者能有效管理其文件轉換項目並解決任何技術問題。

我如何確保我的文件轉換項目成功?

為確保成功,利用IronOCR的強大功能,並利用Iron Software提供的技術支援。在他們的官方網站上存取完整的文件,並考慮其30天試用版以探索其功能。

Kannaopat Udonpant
軟體工程師
在成為軟體工程師之前,Kannapat在日本北海道大學完成了環境資源博士學位。在攻讀學位期間,Kannapat還成為車輛機器人實驗室的一員,該實驗室隸屬於生產工程系。在2022年,他憑藉C#技能加入了Iron Software的工程團隊,專注於IronPDF。Kannapat珍視他的工作,因為他能直接向撰寫大部分IronPDF程式碼的開發者學習。除了同儕學習,Kannapat還喜歡在Iron Software工作的社交方面。不寫程式碼或文件時,Kannapat通常在他的PS5上玩遊戲或重看The Last of Us。

Iron 支援團隊

我們線上24小時,每週5天。
聊天
電子郵件
給我打電話