THotPDF 高级工作流方法

本页汇总高级公开 THotPDF 方法,用于已加载文档修复、基于文件的重写、XRef 流解析、合规输出和文本塑形工作流

常规应用代码应优先查看面向任务的页面,例如 页面操作方法已加载表单字段方法实用方法ShapingFeatures

已加载文档解析

方法 用途
DoPageOperationProgress通过已配置的进度事件分发页面操作进度
ResolveLoadedObject将已加载对象引用解析为页面操作可检查或复制的对象
ResolveLoadedDictionary解析已加载对象引用并在可能时以字典形式返回
ResolveLoadedArray解析已加载对象引用并在可能时以数组形式返回
EnsureLoadedRootIndex确保在对象图操作继续前已知已加载的 catalog 索引
MaterializeLazyStreams在完整重写或对象级复制操作前加载延迟流数据
FindLoadedFormFieldByIndex按字段索引返回已加载的 AcroForm 字段字典并报告其有效名称
FindLoadedFormFieldByName按完全限定字段名返回已加载的 AcroForm 字段字典
ConfigurePDFVersion将当前选定的 PDF 版本能力应用至文档输出设置
RecoverReloadFEKFromBytes当提供的密码匹配时恢复已重新加载加密文档的文件加密密钥
LoadedEncryptVersion报告当前已加载文档的加密版本
IsObjStmMemberObject报告对象是否来自对象流成员并需要对象流感知处理
SyncMaxObjNumFromLoadedObjects重新扫描已加载对象以避免新分配的对象编号与已有编号冲突

Direct File 状态和重写

方法 用途
ClearDirectFileState在句柄被复用或释放前清除 direct-file 状态记录
GetDirectFileIndex将 direct-file 句柄映射到 Direct File API 使用的状态槽
DAFindReplacementIndex在 direct-file 状态记录中查找对象编号的替换条目
DAReadObjectSource从 direct-file 状态读取已存储的对象源字节和生成数据
DAStoreObjectSource将对象源字节存储至 direct-file 状态以供后续重写使用
DAAppendObjectSourceInternal向 direct-file 状态追加新的对象体并返回其分配的对象编号
DATryBuildCompressedFileState在支持时为使用压缩对象流的文件构建 direct-file 状态
DADirectLoadObjectFromBody将 direct-file 对象体解析为已加载对象实例
DARecoverAES256FileKey从加密字典和密码中恢复 AES-256 文件密钥
DADirectPrepareObjectForAES256Encrypt在 AES-256 direct-file 加密前准备对象字典和流
DADirectDecryptObjectAES256使用当前 AES-256 文件密钥解密已解析的 direct-file 对象
DAWriteDirectAES256Rewrite将 direct-file AES-256 加密或解密重写写入目标文件
DADirectEncryptFileAES256通过 direct-file 重写路径对现有文件进行 AES-256 加密
DADirectDecryptFileAES256通过 direct-file 重写路径解密现有的 AES-256 加密文件
DAWriteFullRewrite使用当前状态表执行完整的 direct-file 重写

XRef 流和对象解析

方法 用途
LoadXRefStreamDocument加载 startxref 指向 xref 流的文档
LoadXRefStreamDocumentFromFile从文件加载 xref 流文档并返回关键对象位置诊断信息
LoadXRefStreamDocumentEncFromFile从文件加载受密码保护的 xref 流文档
XRefProbeObjCount报告 xref 流加载器注册的对象数量
XRefProbeObjNum返回从零开始的诊断索引处的对象编号
XRefProbeCompactCount报告从对象流中实例化的压缩对象数量
XRefProbeType2Mismatches报告加载 type-2 xref 条目时发现的对象流头部不匹配
XRefProbeObjHasKey检查已加载诊断对象字典是否包含指定键
XRefProbeObjNameVal从已加载诊断对象字典返回名称值
XRefProbeCompactObjNum返回压缩对象诊断条目的对象编号
XRefProbeType2EncryptedSkipped报告 type-2 对象流加载器跳过的加密对象流
XRefProbeCountReplacementChars统计已加载字符串诊断中的 Unicode 替换字符数
XRefProbeObjStringVal从已加载诊断对象字典返回字符串值
XRefProbeDecryptObjStmSkips报告用于避免重复解密的对象流成员解密跳过次数
TryParseModernPDF尝试为 xref 流和对象流文档执行现代 PDF 解析路径
CreateBasicPageContent为已加载或合成页面创建最小页面内容对象
CreatePDF16PageReference使用已加载对象图创建 PDF 1.6 页面引用
CreateBasicResources为页面重建创建最小资源字典
CreatePDF16Resources为页面重建创建 PDF 1.6 资源字典
ParseSimplePageObject将简单页面对象解析为已加载页面表示
ParseRealPageContent解析已加载页面的原始页面内容流
ProcessObjectStreamsForDecompression在解压后的对象被检查或复制前处理对象流
ScanAndLoadReferencedObjects扫描页面和资源字典并加载引用的对象
ForceLoadMissingReferencedObjects加载首次解析时未实例化的引用
FindAllObjectStreams在已加载文档图中定位对象流
ExtractStreamParameters提取对象流的长度、计数和首对象偏移量值
ProcessFlateDecode处理 FlateDecode 压缩的对象流字节
AnalyzePageObject分析页面对象体并更新已加载页面的记录
ExtendPageArr向已加载页面数组添加页面间接对象
ParseSimpleDictionary将字典体解析为 THPDFDictionaryObject
ParseSimpleArray将数组体解析为 THPDFArrayObject
ParseSimpleStream将流体解析为 THPDFStreamObject
FindAndProcessObjectStream按对象编号查找对象流并处理其成员
ExtractObjectFromStream从对象流成员中提取已解析的字典对象
ExtractRawObjectFromStream从对象流成员中提取原始对象字节
IsObjectInStream报告对象编号是否属于某个对象流
GetObjectFromStream以字典对象形式返回已解析的对象流成员
ParseModernPageObject解析通过现代对象流路径找到的页面对象
IntelligentDecompress尝试带格式感知回退逻辑的解压缩
DecompressFlateDecode解压 FlateDecode 流字节
ParseObjectStream解析对象流头部和成员表
ReorderPageArrByPagesTree按页面树重排已加载页面
GetCorrectPageOrderFromPagesTree从已加载页面树构建页面顺序
GetPageObjectId返回已加载页面索引的对象编号
GetPageArrIndexForObjectNumber返回页面对象编号对应的已加载页面数组索引
ExtractNumericValue在原始对象内容中提取命名键之后的整数值
ParseDecompressedObjects解析解压后的对象流成员并返回关键对象编号
LoadCompressedXrefStream为现代文档解析加载压缩的 xref 流数据
LoadObjectStreamsDirectly直接从当前源文档加载对象流
ParseXrefStreamData解析已解码的 xref 流表数据
ProcessObjectStreamObjects从流对象编号处理解压后的对象流对象

合规与字体输出

方法 用途
BuildAndApplyUnicodeFontSubset构建当前 Unicode 字体子集并应用生成的字体流和映射数据
EnsurePDFUATabsOnAnnotatedPages确保带注释的 PDF/UA 页面声明了必要的 tab 顺序
EnsurePDFAOutputIntent在所选 PDF/A 配置文件要求时检查是否存在 PDF/A 输出意图
EnsurePDFAColorSpaceConsistency根据 PDF/A 输出意图和默认色彩空间设置检查设备色彩空间用法
EmitDocumentDefaultColorSpaces写入 PDF/A 工作流使用的文档默认色彩空间映射
EnsurePDFXOutputIntent在输出最终确定前检查是否存在 PDF/X 输出意图
EnsurePDFXPageBoxes检查 PDF/X 输出配置文件所需的页面盒子
_FindPAdESDSSStreamByDER在构建 PAdES VRI 引用时查找 DER 字节匹配指定证书、OCSP 响应或 CRL 的现有 DSS 流

高级塑形辅助方法

方法 用途
ApplyArabicGSUBPositional应用阿拉伯语位置 GSUB 替换并通过合成码点映射塑形后的字形 ID
ArabicGSUBShapeToGIDs返回阿拉伯语 GSUB 塑形后的字形 ID 序列而不输出文本
ApplyArabicGSUBNativeShaping为提供位置字形替换的字体应用原生阿拉伯语 GSUB 塑形
ApplyLatinLigatureFeature对 Unicode 文字段应用指定的拉丁连字特性如 liga 或 clig
ApplyLatinSingleSubstitutionFeature对 Unicode 文字段应用指定的拉丁单一替换特性
ApplyLatinFractionFeature当字体提供所需替换时对数字分数段应用 frac 特性
ApplyArabicGSUBRefinement在基础阿拉伯语塑形步骤之后应用阿拉伯语 GSUB 连字细化
_ApplyGSUBLookupAt在字形序列的指定位置应用一个已解析的 GSUB lookup 并报告更新后的范围
_ApplyGSUBFeatureToRun按 lookup 列表顺序对整个字形序列应用某一 GSUB 特性的所有 lookup
_ApplyGSUBFeatureAtRunPosition在字形序列的某一位置应用 GSUB 特性,用于位置敏感的塑形步骤
_TibetanShapeSpanToGIDs在合成码点输出前将一段藏文塑形为字形 ID
_GSUBResolveIndicScript选择字体中可用的 OpenType 印度语系脚本标签,优先选择 v2 脚本标签
_IndicShapeSyllableToGIDs对一个已重排音节应用印度语系 GSUB 特性链并返回字形 ID

另请参阅