JSON ve C ABI işlerinde harici OCR
ocr.layer operation'ı, builtin-ascii, tesseract-cli, tesseract-dll, rapidocr-cli ve rapidocr-dll kabul eder; engine'i atlamak, built-in ASCII default'unu korur
Capability discovery, bu desteklenen adapter'ları listeler; harici programların, kütüphanelerin, dil data'sının veya ONNX model'lerinin execution host'ta kurulu olduğunu öne sürmeden
Tesseract örneği
{"schemaVersion":1,"type":"ocr.layer","pages":[0],"dpi":300,
"minimumConfidence":0.7,"skipPagesWithText":true,"replaceExisting":false,
"engine":"tesseract-cli",
"engineOptions":{"executablePath":"C:/OCR/tesseract.exe",
"tessDataDirectory":"C:/OCR/tessdata","language":"eng",
"pageSegMode":6,"engineMode":3,"timeoutMilliseconds":30000,
"maxPixels":16777216}}
Bu object'i bir dosya işinin operations array'ine yerleştirin ve input ve output path'leri ekleyin veya doğrudan hpdf_document_execute_json_v1'e yüklenmiş bir handle ve binary/result callback'leriyle geçirin
| Engine | Zorunlu engineOptions | Opsiyonel engineOptions |
|---|---|---|
| builtin-ascii | Yok | engineOptions yok olmalı veya boş bir object olmalıdır |
| tesseract-cli | executablePath, tessDataDirectory | language, pageSegMode, engineMode, timeoutMilliseconds, maxPixels |
| tesseract-dll | libraryPath, tessDataDirectory | language, pageSegMode, engineMode, timeoutMilliseconds, maxPixels |
| rapidocr-cli | pythonExecutable, bridgeScript, modelDirectory | detectionModel, recognitionModel, classificationModel, characterDictionary, fontPath, useAngleClassifier, intraOpThreads, interOpThreads, timeoutMilliseconds, maxPixels |
| rapidocr-dll | libraryPath, modelDirectory | language, detectionModel, recognitionModel, classificationModel, characterDictionary, useAngleClassifier, rightToLeft, threads, timeoutMilliseconds, maxPixels |
Options ve lokal kaynaklar
Harici engine'ler, açık bir object-valued engineOptions gerektirir; bilinmeyen key'ler, yanlış JSON türleri, NUL içeren path veya dil string'leri ve boş zorunlu value'lar reddedilir
Tesseract, language=eng, pageSegMode=3 ve engineMode=3 default'ludur; segmentation mode 0 ve 2 metni tanımaz ve reddedilir, 13'e kadar kalan mode'lar kabul edilir
engineMode, 0'dan 3'e kabul eder; trained-data dosyaları seçilen mode'u desteklemelidir ve eng+fra gibi çok-dilli Tesseract dil ifadeleri, karşılık gelen lokal model'leri gerektirir
RapidOCR CLI, native THPDFRapidOCROptions.Default model adlarını kullanır ve her iki thread limitini 1'e default'lar; açıkça sağlanan dictionary ve font path'lerini kabul eder ve yapılandırılan bridge, lokal TSV sözleşmesini uygulamalıdır
RapidOCR DLL, THPDFRapidOCRDLLOptions.ForLanguage(language) ile başlar — ch default'udur; dil profilleri, recognition model'ini, dictionary'yi ve okuma yönünü seçer ve açık option'lar bu seçimleri geçersiz kılabilir
Model dosya adları, native adapter'lara göre modelDirectory altında çözümlenir; kütüphane bitness'i host process'le eşleşmelidir, CLI engine ise ayrı bir lokal process olarak çalışır
Bu kaynakları açıkça provision edin ve seçin; operation, engine kurmaz, model download etmez, keyfi executable aramaz veya uzak bir OCR servisi kullanmaz
Bütçeler ve cancellation
timeoutMilliseconds default'ta 60.000'dir ve 1'den 3.600.000'e integer kabul eder; etkin adapter timeout'u, budget.timeMilliseconds ile sınırlanır
maxPixels default'ta 16.777.216'dır ve 1'den 67.108.864'e integer kabul eder; etkin sınırı, istenen value'nun, budget.pixels'in ve budget.memoryBytes / 16'nın minimumudur
Etkin engine piksel sınırı, tanımadan önce OCR sayfa rendering'ini de sınırlar; word, content ve UTF-16 metin bütçeleri, operation'ın bellek ödeneğiyle sınırlanır
Bu limitler, yapılandırılmış buffer'ları ve operation kaynaklarını sınırlar; harici DLL model tahsisi katı bir process-RSS kotası oluşturmaz
Native çağrılar, rendering ve tanıma için Document.OperationCancellationToken'ı ödünç alır; C callback cancellation'ı, cooperative operation, input ve output checkpoint'lerinde poll edilir ve çalışan bir harici engine, timeout'una veya bir sonraki callback checkpoint'ine kadar devam edebilir
Lokal CLI başarısızlıkları, geçersiz veya eksiksiz-olmayan TSV output'u ve adapter timeout'ları operation'ı reddeder; yapılandırılmış operation süresi ve piksel limitleri, yapılandırılmış bütçe-başarısızlık kategorisini korur
Output ve transaction davranışı
Result, engine'i, recognizedPages'i, skippedPages'i, acceptedWords'ü ve droppedWords'ü raporlar; engine alanı, native adapter'ın açıklayıcı adını içerir
minimumConfidence, 0'dan 1'e bir sayı olmalıdır ve skipPagesWithText ile replaceExisting JSON Boolean'ları olmalıdır
Kabul edilen Unicode kelimeleri, ToUnicode eşlemeleri ve kaynak-sayfa geometrisiyle görünmez metin olur; scan görseli output'ta kalır ve kaynak dosya, çağıran bilinçli olarak aynı dosya path'ine yayımlamadıkça değişmeden kalır
Dosya işleri, başarısızlıkta mevcut hedefi korur ve same-directory bir staging dosyası üzerinden yayımlar; C ABI mutation'ları, hem PDF baytları hem de JSON result teslimi başarılı olduktan sonra commit edilir — başarısızlık rollback'i ve önceden teslim edilmiş baytların çağıran imhasıyla
Kabul
Tests/Delphi/Run-JobOCRTests.ps1, Win32 ve Win64'te dört adapter dispatch profili, bozuk yapılandırma, piksel ve geçen-süre bütçeleri, kısmi-kelime reddi, process başarısızlığı, timeout ve hedef/kaynak korumasını çalıştırır
Gerçek Tesseract executable ve model path'leri sağlamak, canlı tanımayı çalıştırır; bağımsız pypdf ve MuPDF reader'ları, Unicode aranabilir metni ve değişmemiş görünür scan piksellerini doğrular; opsiyonel gerçek Win64 ABI DLL denetimi ise kısmi callback'leri ve failed-operation rollback'ini doğrular
Bkz. document operation'ları, Tesseract adapter'ları, lokal RapidOCR model'leri, native RapidOCR kütüphaneleri ve aranabilir OCR metin katmanları