PDFium Delphi Component Docs

Valgfri Tesseract OCR-provider

CreatePdfTesseractOcrProvider leverer en IPdfOcrProvider til ApplyOcrSearchLayer; Tesseract og traineddata er valgfrie eksterne afhængigheder

Brug en eksplicit absolut bibliotekssti, en tessdata-mappe og de ønskede sprogidentifiers, såsom eng; DLL-arkitekturen skal matche processen

TryCreatePdfTesseractOcrProvider returnerer afhængighedsfejl i ErrorMessage og lader Provider være nil uden at ændre processens søgesti

Hvert genkendelseskald ejer en separat native API-instans, kompositerer BGRA-alpha på hvidt, afkoder UTF-8-tekst og returnerer ord-firkanter i billedkoordinater med origo øverst til venstre og confidence normaliseret til 0–1

Default vælger page segmentation mode 3 og engine mode 3, en deadline på 60,000 ms, 16,777,216 pixels, 100,000 ord og 1,048,576 teksttegn

Genkendelse overvåger cancellation og deadline; modelinitialisering har intet native cancellation callback, så budgettet kontrolleres umiddelbart før og efter initialisering

Mislykkede kald kasserer delvist output, og cancellation bevarer EPdfOperationCancelled; API'et tilføjer ikke lydløst ufuldstændig søgbar tekst

Delphi- og FPC-ABI-fixtures for Win32/Win64 er verificeret; reel Tesseract 5.5-genkendelse, gemning/genåbning af søgelaget og uændret rendering er verificeret på Win64 med begge compilere

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

Offentlige deklarationer

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;