PDFium Delphi Component Docs

Proveedor opcional de OCR Tesseract

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

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

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

Cada llamada de reconocimiento administra una instancia independiente de la API nativa, compone el alfa BGRA sobre blanco, decodifica texto UTF-8 y devuelve cuadriláteros de palabras en coordenadas de imagen con origen arriba a la izquierda, con confianza normalizada a 0–1

Default selecciona modo de segmentación de página 3 y modo de motor 3, plazo de 60,000 ms, 16,777,216 píxeles, 100,000 palabras y 1,048,576 caracteres de texto

El reconocimiento monitorea la cancelación y el plazo; la inicialización del modelo no tiene callback nativo de cancelación, por lo que el límite se comprueba inmediatamente antes y después de inicializar

Las llamadas que fallan descartan la salida parcial y la cancelación conserva EPdfOperationCancelled; la API no agrega silenciosamente texto incompleto a la capa de búsqueda

Se verifican los casos de ABI de Delphi y FPC en Win32/Win64; el reconocimiento real con Tesseract 5.5, el guardado y la reapertura de la capa de búsqueda y la ausencia de cambios en el renderizado se verifican 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;