PDFium Delphi Component Docs

Proveedor OCR opcional con Tesseract

CreatePdfTesseractOcrProvider proporciona un IPdfOcrProvider para ApplyOcrSearchLayer; Tesseract y traineddata son dependencias externas opcionales

Utilice una ruta absoluta explícita a la biblioteca, un directorio tessdata y los identificadores de idioma deseados, como eng; la arquitectura de la DLL debe coincidir con el proceso

TryCreatePdfTesseractOcrProvider devuelve los fallos de dependencias en ErrorMessage y deja Provider en nil sin modificar la ruta de búsqueda del proceso

Cada reconocimiento posee una instancia de API nativa separada, compone el alfa BGRA sobre blanco, decodifica texto UTF-8 y devuelve cuadriláteros de palabras con coordenadas desde la esquina superior izquierda y confianza normalizada a 0–1

Default selecciona page segmentation mode 3 y engine mode 3, un plazo de 60,000 ms, 16,777,216 píxeles, 100,000 palabras y 1,048,576 caracteres de texto

El reconocimiento controla cancelación y plazo; la inicialización del modelo no tiene callback nativo de cancelación, así que el límite se comprueba justo antes y después

Los fallos descartan resultados parciales y la cancelación conserva EPdfOperationCancelled; la API no añade silenciosamente texto buscable incompleto

Se han verificado fixtures de ABI Delphi y FPC en Win32/Win64; el reconocimiento real con Tesseract 5.5, el guardado y reapertura de la capa buscable y el renderizado sin cambios están verificados en Win64 con ambos compiladores

ProviderOptions := TPdfTesseractOptions.Default;
Provider := CreatePdfTesseractOcrProvider(
  LibraryPath, TessdataDirectory, 'eng', ProviderOptions);
OcrOptions := TPdfOcrOptions.Default;
Pdf.ApplyOcrSearchLayer(Provider, OcrOptions, Report, CancellationToken);

Declaraciones públicas

type
  EPdfTesseractError = class(Exception);

  TPdfTesseractOptions = record
    // Tesseract PSM ordinals: 3 = automatic, 6 = block, 7 = single line
    PageSegmentationMode: Integer;
    // Tesseract OEM ordinals: 1 = LSTM, 3 = default
    EngineMode: Integer;
    TimeoutMilliseconds: Cardinal;
    MaxPixels: Int64;
    MaxWords: Integer;
    MaxTextCharacters: Integer;
    class function Default: TPdfTesseractOptions; static;
  end;

// Each recognition call owns a separate API instance; providers can be shared
// Libraries and traineddata remain optional, explicitly configured dependencies
function CreatePdfTesseractOcrProvider(const LibraryPath, TessdataDirectory,
  Languages: string; const Options: TPdfTesseractOptions): IPdfOcrProvider;

// Dependency errors are returned without changing the process search path
function TryCreatePdfTesseractOcrProvider(const LibraryPath, TessdataDirectory,
  Languages: string; const Options: TPdfTesseractOptions;
  out Provider: IPdfOcrProvider; out ErrorMessage: string): Boolean;