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 起算) |
|---|---|
| ResultJSON | ApplyOCRTextLayer 所描述的 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