PDF 的内容区域和裁剪区域

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

如何使用 IronOCR 在 PDF 上设置内容区域?

内容领域和 PDF

OcrInput.LoadPdf "和 "LoadPdfPage "方法都有添加内容区域的选项。

问题是:PDF 文件的大小不是以像素为单位的,但内容区域通常是以像素为单位的,我如何知道我的内容区域有多大?

选项 1

OcrInput.TargetDPI 默认为 225 - 决定 PDF 图像的像素大小。IronOCR 将读取此值。

选项 2 (理想用例)

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

2.使用 OcrInput.GetPages() 来获取输入的宽度和高度

3.使用 OcrInput.GetPages().First().ToBitmap() 以获得 OCR 引擎将读取的准确图像

4.现在,您可以从导出的图像中测量以像素为单位的 "内容区域

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