ApplyOCRTextLayerEx

OCR、文字、文件編輯

描述

驗證供應商中立的 OCR JSON,在獨立緩衝區準備隱形文字,然後把自有可搜尋文字圖層提交到單一頁面

語法

Delphi

Function TPDFlib.ApplyOCRTextLayerEx(Page: Integer; Const ResultJSON,
  FontName: WideString; MinConfidence: Double; Options: Integer): Integer;

ActiveX

Function PDFlib::ApplyOCRTextLayerEx(Page As Long, ResultJSON As String,
  FontName As String, MinConfidence As Double, Options As Long) As Long

DLL

int DLApplyOCRTextLayerEx(int InstanceID, int Page, const wchar_t* ResultJSON,
  const wchar_t* FontName, double MinConfidence, int Options);
int DLApplyOCRTextLayerExA(int InstanceID, int Page, const char* ResultJSON,
  const char* FontName, double MinConfidence, int Options);

參數

Page目標頁碼(1 起算)
ResultJSONApplyOCRTextLayer 所描述的 version-1 schema,可選擇性包含經驗證的基線端點與階層 ID
FontName可內嵌的 TrueType 字型,或空字串表示改用已安裝字型的後備選擇
MinConfidence字組信賴度閾值,0 到 1(含端點)
Options下方圖層政策的位元組合;0 表示附加新的自有圖層

選項

1 — PDF_OCR_SKIP_EXISTING_TEXT當保留的非自有內容串流或被呼叫的 Form XObject 含有文字(包括隱形文字)時,直接回報成功而不套用 OCR
2 — PDF_OCR_REPLACE_OWNED_LAYER取代所有帶有確切函式庫 OCR 標記的既有圖層;不存在自有 OCR 圖層時改為附加
3略過帶有非自有文字的頁面,同時允許取代只含自有 OCR 的頁面

傳回值

1已提交圖層、既有文字政策略過了頁面,或沒有任何字組達到信賴度閾值
0輸入、幾何、選項、字型編碼或圖層寫入失敗

備註

未知的選項位元會被拒絕

來源座標以描繪影像的左上角為原點,並使用所選的描繪盒;頁面旋轉與非零的盒位移會對應回原始 PDF 使用者空間

選擇性的 baseline 陣列以來源單位包含 [x1, y1, x2, y2],定義文字方向與前進量;完整基線不得再帶有非零的 textAngle

每個字組邊界與基線都會在信賴度過濾之前檢查;無效的低信賴度字組同樣會導致操作失敗

字型貼合與缺字處理會在新內容圖層提交之前完成;不會有繪製到一半的 OCR 字組取代舊圖層

只有同時帶有 /PDFlibOCROwner /PDFlibPas、/PDFlibOCRType /InvisibleText 與 /PDFlibOCRVersion 1 三個確切欄位的串流,才算是自有 OCR 圖層

取代時會建立新的 contents 陣列與新串流,保留非自有內容以及同層頁面使用的串流

OCR 圖層使用描繪模式 3 與隔離的圖形狀態;放置文字時會先取消保留內容的目前轉換矩陣,再套用字組矩陣

空的合格結果會保留舊圖層不動;用 GetOCRDiagnosticsJSON 區分 empty、skipped、appended 與 replaced

可搜尋性與可見像素不變會在文件儲存並重新載入後驗證

另請參閱

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError