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);
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;