PDFium Delphi Component Docs

Fournisseur OCR Tesseract facultatif

CreatePdfTesseractOcrProvider fournit un IPdfOcrProvider à ApplyOcrSearchLayer ; Tesseract et traineddata sont des dépendances externes facultatives

Indiquez explicitement le chemin absolu de la bibliothèque, le répertoire tessdata et les identifiants de langue demandés, par exemple eng ; l’architecture de la DLL doit correspondre à celle du processus

TryCreatePdfTesseractOcrProvider renvoie les erreurs de dépendance dans ErrorMessage et laisse Provider à nil, sans modifier le chemin de recherche du processus

Chaque reconnaissance possède sa propre instance de l’API native, compose l’alpha BGRA sur fond blanc, décode le texte UTF-8 et renvoie les quadrilatères des mots dans les coordonnées de l’image depuis son coin supérieur gauche, avec une confiance normalisée sur 0–1

Default sélectionne le mode de segmentation 3 et le mode de moteur 3, un délai de 60,000 ms, 16,777,216 pixels, 100,000 mots et 1,048,576 caractères de texte

La reconnaissance surveille l’annulation et le délai ; l’initialisation du modèle n’a pas de callback natif d’annulation, le budget est donc vérifié juste avant et juste après cette étape

Un échec élimine les résultats partiels et une annulation conserve EPdfOperationCancelled ; l’API n’ajoute pas silencieusement une couche de texte recherchable incomplète

Les tests ABI Delphi et FPC Win32/Win64 sont vérifiés ; la reconnaissance réelle avec Tesseract 5.5, l’enregistrement et la réouverture de la couche recherchable ainsi que le rendu inchangé sont vérifiés sur Win64 avec les deux compilateurs

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

Déclarations publiques

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;