PDFium Delphi Component Docs

İsteğe bağlı Tesseract OCR sağlayıcısı

CreatePdfTesseractOcrProvider, ApplyOcrSearchLayer için bir IPdfOcrProvider sağlar; Tesseract ve traineddata isteğe bağlı dış bağımlılıklardır

Açık bir mutlak kitaplık yolu, tessdata dizini ve eng gibi istenen dil tanımlayıcılarını kullanın; DLL mimarisi işlemle eşleşmelidir

TryCreatePdfTesseractOcrProvider, bağımlılık hatalarını ErrorMessage içinde döndürür ve işlem arama yolunu değiştirmeden Provider'ı nil bırakır

Her tanıma çağrısı ayrı bir yerel API örneğine sahiptir, BGRA alfasını beyaz üzerine birleştirir, UTF-8 metni çözer ve sol üst görüntü koordinatlarında, güven değeri 0–1 aralığına normalize edilmiş kelime dörtgenleri döndürür

Default, 3 sayfa bölütleme modunu ve 3 motor modunu, 60.000 ms son teslim, 16.777.216 pikseli, 100.000 kelimeyi ve 1.048.576 metin karakterini seçer

Tanıma, iptali ve son teslim tarihini izler; model başlatmanın yerel bir iptal geri çağırması yoktur, bu yüzden bütçe başlatmanın hemen öncesinde ve sonrasında denetlenir

Başarısız çağrılar kısmi çıktıyı atar ve iptal EPdfOperationCancelled değerini korur; API, eksik aranabilir metni sessizce eklemez

Delphi ve FPC Win32/Win64 ABI sabitleri doğrulanır; gerçek Tesseract 5.5 tanıması, aranabilir katman kaydetme/yeniden açma ve değişmeyen işleme, her iki derleyicide de Win64 üzerinde doğrulanır

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

Public declarations

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;