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一基目标页面
ResultJSONApplyOCRTextLayer 描述的 version-1 架构,可选包含经过验证的基线端点与层级 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