Native Linux contract comparison

hpdf_document_compare_json_v1 借用两个已加载文档句柄,运行原生语义合同比较或 general document comparison,并通过回调输出准备好的结果

{"schemaVersion":1,"type":"compare.contract","format":"html",
 "title":"Contract review","options":{"granularity":"word",
 "ignoreRepeatedHeadersFooters":true,"maxAlignmentCells":2000000},
 "limits":{"memoryBytes":268435456,"resultBytes":4194304,"outputBytes":8388608}}

语义合同报告

原生适配器使用与 Windows contract API 相同的可移植段落对齐与差异算法,包括单词或句子级变更、跨页移动、重复页边排除、样板过滤和页面续接

合同报告包含 comparisonComplete、identical、differenceCount、页面与段落计数、排除项、工作与对齐计数器,以及每处变更的文本、上下文和位置

每个位置包含从零计的页面与段落、从一计的字符偏移、字符数,以及覆盖相交语义行的 PDF 用户空间矩形;矩形表示行几何

原生 glyph 提取保留嵌套 Form 资源与矩阵、继承的页面边界,并对明文和已认证 AES R5/R6 输入遵守提取权限;没有可提取文本的页报告提取失败,需要 OCR 或显式删除空白页

选项与限制

options 接受 granularity(word 或 sentence)、ignoreCase、ignoreRepeatedHeadersFooters、normalizeMarginDigits、joinPageContinuations、headerMarginPoints、footerMarginPoints、paragraphGapFactor、minimumParagraphSimilarity、minimumRepeatedPages 和 excludedLineTexts

显式正整数限制包括 maxPages、maxParagraphs、maxSemanticLines、maxCharacters、maxTokens、maxDifferences、maxAlignmentCells 和 maxWorkUnits;操作内存与结果预算在执行前封顶这些限制

compare 接受页数、页文本、对象数、渲染图像、结构和完整模式,并输出 JSON;可用模式通过 comparisonModes 发现,合同格式通过 contractFormats 发现

format:json 把结果 JSON 写到可选的 binary 回调和必需的 result 回调;format:html 要求 binary 回调,输出独立 UTF-8 审阅文件,标题与合同措辞已转义

format:pdf 要求 binary 输出回调,创建 side:before 或 side:after 的真实 annotated review copy,默认 after;options.maxHighlights 限制高亮的语义行数

生命周期与发布

调用期间两个句柄须保持存活;同句柄比较受支持,反序并发比较按稳定顺序获取锁

所有回调在调用线程上同步运行;资源限制临时应用于每个已加载文档并在事后恢复,失败与取消路径同样如此

该调用不接受输入回调或文件路径成员,并保留两个源文档及其修订;binary 与 JSON 输出在发布开始前完成准备并施加边界

Pascal 接口

HPDFCompareHeadlessContracts 接受两个 THPDFHeadlessDocument 对象和既有的 THPDFContractCompareOptions,返回 THPDFContractCompareReport

HPDFHeadlessContractSource 暴露原生适配器;HPDFContractCompareCore 中的 HPDFCompareContractSources 为可移植核心接受自定义的有界页数、语义页和可见框回调

HPDFContractCompareCore 持有共享算法、报告类型和 HTML 渲染器,不依赖 VCL 或 LCL;既有的 HPDFContractCompare Windows 接口通过别名和适配器保留其类型、常量和已加载文档入口

THPDFHeadlessDocument.ExtractPageGlyphs 与 AnalyzePageSemanticText 通过与 ExtractPageText 相同的嵌套内容遍历器暴露定位 glyph 和语义布局

原生 ABI 验收覆盖真实的明文、AES R5/R6 和嵌套 Form 比较、回滚、预算和锁顺序;独立 pypdf 与 MuPDF 阅读器验证完整差异、精确上下文、偏移和源 glyph 几何

Native Linux C ABI · Contract comparison · Remaining delivery plan