使用 IronOCR 裁剪區域和矩形

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

如何使用IronOCR設定PDF的內容範圍?

內容區域與PDFs

OcrInput.LoadPdfLoadPdfPage方法都有添加ContentArea的選項。

問題 - 我如何知道我的內容區域有多大?因為PDF的大小不是以像素為單位,但內容區域通常以它們來衡量?

選項 1

OcrInput.TargetDPI 的預設值為 225 - 指定 PDF 圖像的像素大小。 IronOCR 將讀取此內容。

選項 2(理想使用情境)

  1. 使用 OcrInput.LoadPdf()使用您的PDF模板

  2. 使用 OcrInput.GetPages()獲取輸入的寬度和高度

  3. 使用 OcrInput.GetPages().First().ToBitmap()要獲取OCR引擎將讀取的確切圖像

  4. 您現在可以從導出的圖像中以像素為單位測量ContentAreas。

  5. 目標座標可以用於特定的OCR區域。(查看最終結果)

    要獲取您的信息:

using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.LoadPdf("example.pdf");
    input.GetPages().First().ToBitmap().SaveAs("measure-me.bmp");
    var width = input.GetPages().First().Width;
    var height = input.GetPages().First().Height;
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    input.LoadPdf("example.pdf");
    input.GetPages().First().ToBitmap().SaveAs("measure-me.bmp");
    var width = input.GetPages().First().Width;
    var height = input.GetPages().First().Height;
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
	input.LoadPdf("example.pdf")
	input.GetPages().First().ToBitmap().SaveAs("measure-me.bmp")
	Dim width = input.GetPages().First().Width
	Dim height = input.GetPages().First().Height
End Using
VB   C#

最終結果:

using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    var contentArea = new IronSoftware.Drawing.Rectangle()
    { X = 215, Y = 1250, Height = 280, Width = 1335 };  //<-- the area you want in px
    input.LoadPdf("example.pdf", ContentArea: contentArea);
    var result = ocr.Read(input);
}
using IronOcr;
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
    var contentArea = new IronSoftware.Drawing.Rectangle()
    { X = 215, Y = 1250, Height = 280, Width = 1335 };  //<-- the area you want in px
    input.LoadPdf("example.pdf", ContentArea: contentArea);
    var result = ocr.Read(input);
}
Imports IronOcr
Private ocr = New IronTesseract()
Using input = New OcrInput()
	Dim contentArea = New IronSoftware.Drawing.Rectangle() With {
		.X = 215,
		.Y = 1250,
		.Height = 280,
		.Width = 1335
	}
	input.LoadPdf("example.pdf", ContentArea:= contentArea)
	Dim result = ocr.Read(input)
End Using
VB   C#

API 參考:OcrInput OcrInput.Page