PDFium Delphi Component Docs

Volitelný OCR provider Tesseract

CreatePdfTesseractOcrProvider poskytuje IPdfOcrProvider pro ApplyOcrSearchLayer; Tesseract a traineddata jsou volitelné externí závislosti

Použijte explicitní absolutní cestu ke knihovně, adresář tessdata a požadované identifikátory jazyků, například eng; architektura DLL musí odpovídat procesu

TryCreatePdfTesseractOcrProvider vrací chyby závislostí v ErrorMessage a ponechá Provider nil, aniž mění vyhledávací cestu procesu

Každé rozpoznávání vlastní zvláštní instanci nativního API, skládá BGRA alpha na bílé pozadí, dekóduje UTF-8 text a vrací čtyřúhelníky slov v souřadnicích obrázku s počátkem vlevo nahoře a confidence normalizovanou na 0–1

Default volí page segmentation mode 3 a engine mode 3, deadline 60,000 ms, 16,777,216 pixelů, 100,000 slov a 1,048,576 znaků textu

Rozpoznávání sleduje zrušení a deadline; inicializace modelu nemá nativní cancellation Callback, proto se rozpočet kontroluje bezprostředně před ní i po ní

Neúspěšná volání zahodí částečný výstup a zrušení zachovává EPdfOperationCancelled; API nepřidává potichu neúplný prohledávatelný text

ABI fixtures Delphi a FPC Win32/Win64 jsou ověřené; skutečné rozpoznávání Tesseract 5.5, uložení/opětovné otevření vyhledávací vrstvy a nezměněné vykreslení jsou ověřené na Win64 v obou kompilátorech

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

Veřejné deklarace

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;