function ApplyOcrSearchLayer(
const Provider: IPdfOcrProvider;
const Options: TPdfOcrOptions;
out Report: TPdfOcrReport;
const CancellationToken: IPdfCancellationToken = nil): Boolean;
La biblioteca renderiza cada página seleccionada a través de PDFium y pasa una imagen compacta popfBgra32 de arriba hacia abajo a IPdfOcrProvider.RecognizePage
El proveedor devuelve valores TPdfOcrWord cuyas coordenadas Quad usan unidades de píxel con el origen en la esquina superior izquierda de la imagen
La confianza del texto debe estar en el rango de 0 a 1 y los puntos del cuadrilátero deben permanecer dentro de la imagen suministrada
FPDF_DeviceToPage preserva los cuadros de página y la rotación intrínsecaFPDF_TEXTRENDERMODE_INVISIBLETPdfOcrReport devuelto totaliza ProcessedPageCount, FailedPageCount, DetectedWordCount, InsertedWordCount, RejectedWordCount y TotalRenderedPixels, mientras que cada entrada TPdfOcrPageReport agrega por página ImageWidth, ImageHeight, DetectedWordCount, InsertedWordCount y RejectedWordCountFirstPage y LastPage seleccionan un rango inclusivo, mientras que cero selecciona el límite del documento
SkipPagesWithText evita duplicar una capa de búsqueda existente y ContinueOnError controla la recuperación a nivel de página
Los presupuestos que se aplican de forma restrictiva (fail-closed) antes de mutar la página cubren MaxPixelsPerPage y MaxTotalPixels píxeles, MaxWordsPerPage y MaxTotalWords palabras, MaxWordCharacters caracteres por palabra, además de la confianza y los DPI
var
Options: TPdfOcrOptions;
Report: TPdfOcrReport;
begin
Options := TPdfOcrOptions.Default;
Options.Dpi := 300;
Options.MinConfidence := 0.75;
if Pdf1.ApplyOcrSearchLayer(OcrProvider, Options, Report) then
Pdf1.SaveAs('searchable.pdf');
end;