PDFium Delphi Component Docs

Optionele Tesseract OCR-provider

CreatePdfTesseractOcrProvider levert een IPdfOcrProvider voor ApplyOcrSearchLayer; Tesseract en traineddata zijn optionele externe afhankelijkheden

Gebruik een expliciet absoluut bibliotheekpad, een tessdata-map en de gevraagde taalidentifiers, zoals eng; de DLL-architectuur moet bij het proces passen

TryCreatePdfTesseractOcrProvider meldt afhankelijkheidsfouten in ErrorMessage en laat Provider nil, zonder het zoekpad van het proces te wijzigen

Elke herkenningsaanroep gebruikt een eigen native API-instantie, componeert BGRA-alpha op wit, decodeert UTF-8-tekst en geeft woordvierhoeken terug in beeldcoördinaten met de oorsprong linksboven, met confidence genormaliseerd naar 0–1

Default kiest page segmentation mode 3 en engine mode 3, een deadline van 60,000 ms, 16,777,216 pixels, 100,000 woorden en 1,048,576 teksttekens

Herkenning bewaakt annulering en de deadline; modelinitialisatie kent geen native annuleringscallback, dus het budget wordt vlak vóór en na de initialisatie gecontroleerd

Mislukte aanroepen gooien partiƫle uitvoer weg en annulering behoudt EPdfOperationCancelled; de API voegt nooit stilletjes onvolledige doorzoekbare tekst toe

Delphi- en FPC Win32/Win64 ABI-fixtures zijn geverifieerd; echte Tesseract 5.5-herkenning, opslaan/heropenen van de doorzoekbare laag en ongewijzigde rendering zijn op Win64 in beide compilers geverifieerd

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

Public declarations

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;