PDFium Delphi Component Docs

Valfri Tesseract OCR-leverantör

CreatePdfTesseractOcrProvider tillhandahåller en IPdfOcrProvider för ApplyOcrSearchLayer; Tesseract och traineddata är valfria externa beroenden

Använd en explicit absolut bibliotekssökväg, en tessdata-katalog och de begärda språkidentifierarna, som eng; DLL:ens arkitektur måste matcha processen

TryCreatePdfTesseractOcrProvider returnerar beroendefel i ErrorMessage och lämnar Provider nil utan att ändra processens sökvägar

Varje igenkänningsanrop äger en egen nativ API-instans, komponerar BGRA-alfa mot vitt, avkodar UTF-8-text och returnerar ordkvadrilateraler i bildkoordinater med övre vänstra hörnet som origo, med konfidens normaliserad till 0–1

Default väljer sidsegmenteringsläge 3 och motormodus 3, en tidsgräns på 60,000 ms, 16,777,216 pixlar, 100,000 ord och 1,048,576 texttecken

Igenkänningen övervakar avbrytning och tidsgränsen; modellinitiering har ingen nativ avbrottsåterkoppling, så budgeten kontrolleras omedelbart före och efter initieringen

Misslyckade anrop kastar delvis utdata, och avbrytning bevarar EPdfOperationCancelled; API:t lägger tyst till ingen ofullständig sökbar text

Delphi- och FPC Win32/Win64 ABI-förankringar är verifierade; verklig Tesseract 5.5-igenkänning, sparning/återöppning av sökbart lager och oförändrad rendering är verifierade på Win64 i båda kompilatorerna

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;