Recortar regiones y rectángulos con IronOCR

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

¿Cómo establezco áreas de contenido en los PDF con IronOCR?

Áreas de contenido y PDF

los métodos OcrInput.LoadPdf y LoadPdfPage tienen la opción de añadir un ContentArea.

La pregunta - ¿Cómo puedo saber el tamaño de mi área de contenido, ya que los PDF no tienen un tamaño en píxeles, pero las áreas de contenido se miden generalmente en ellos?

Opción 1

OcrInput.TargetDPI Por defecto es 225 - dicta el tamaño de la imagen PDF en píxeles. IronOCR leerá esto.

Opción 2 (caso de uso ideal)

  1. Usar OcrInput.LoadPdf() con su plantilla PDF

  2. Utilice OcrInput.GetPages() para obtener la anchura y la altura de la entrada

  3. Utilice OcrInput.GetPages().primero().ToBitmap() para obtener la imagen exacta que leerá el motor OCR

  4. Ahora puede medir ContentAreas en píxeles a partir de la imagen exportada

  5. Las coordenadas objetivo podrían utilizarse para una región OCR específica(ver en Resultado final)

    Para obtener información:

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#

Resultado final:

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#

Referencia API:OcrInput OcrInput.Page