PDFium Delphi Component Docs

Optionaler Tesseract-OCR-Provider

CreatePdfTesseractOcrProvider liefert einen IPdfOcrProvider für ApplyOcrSearchLayer; Tesseract und traineddata sind optionale externe Abhängigkeiten

Verwenden Sie einen expliziten absoluten Bibliothekspfad, ein tessdata-Verzeichnis und die gewünschten Sprachkennungen, etwa eng; die DLL-Architektur muss zum Prozess passen

TryCreatePdfTesseractOcrProvider liefert Abhängigkeitsfehler in ErrorMessage und lässt Provider nil, ohne den Suchpfad des Prozesses zu ändern

Jeder Erkennungsaufruf besitzt eine eigene native API-Instanz, verrechnet BGRA-Alpha mit Weiß, decodiert UTF-8 und liefert Wortvierecke in Bildkoordinaten ab der oberen linken Ecke mit auf 0–1 normierter Konfidenz

Default wählt Seitensegmentierungsmodus 3 und Enginemodus 3, eine Frist von 60,000 ms, 16,777,216 Pixel, 100,000 Wörter und 1,048,576 Textzeichen

Die Erkennung überwacht Abbruch und Frist; die Modellinitialisierung hat keinen nativen Abbruch-Callback, deshalb wird das Budget unmittelbar davor und danach geprüft

Fehlgeschlagene Aufrufe verwerfen Teilergebnisse, Abbruch erhält EPdfOperationCancelled; die API ergänzt nicht stillschweigend unvollständigen durchsuchbaren Text

Delphi- und FPC-Win32/Win64-ABI-Tests sind geprüft; reale Tesseract-5.5-Erkennung, Speichern/Wiederöffnen der Suchtextebene und unverändertes Rendering sind unter Win64 mit beiden Compilern geprüft

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

Öffentliche Deklarationen

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;