确定性差分回归探针
HPDFCompareRegressionResultsDeterministic 在选定的域上反复运行两个引擎适配器,拒绝不稳定或失败的运行,并记录一份有序的、机器可读的结果
API
function HPDFCompareRegressionResultsDeterministic(
const Input: TBytes;
Domains: THPDFRegressionDomains;
const LeftProbe, RightProbe: THPDFRegressionProbe;
const Options: THPDFDifferentialProbeOptions;
out AInfo: THPDFDifferentialRegressionInfo): Boolean;
function HPDFProbeHotPDFDocument(
Domain: THPDFRegressionDomain;
const Input: TBytes): AnsiString;
function HPDFDifferentialRegressionInfoToJSON(
const AInfo: THPDFDifferentialRegressionInfo): AnsiString;
Domains
| Domain | Built-in HotPDF signature |
|---|---|
rgdParser | 页面、对象、版本、注释、字体、图像、表单、签名、加密、AcroForm 与结构摘要 |
rgdRenderer | 在固定 DPI 下自上而下的 BGR 像素 SHA-256,不含 alpha 和扫描行填充 |
rgdText | 经 CRLF 与 CR 规范化后按页分隔的 UTF-8 SHA-256 |
rgdSave | 按确定的字典顺序生成的、有界输出的 SHA-256 与字节长度 |
旧的 rgdSignature 和 rgdConformance 值仍然可用,现有 probe adapter 的序数值和源兼容性因此保持不变
HPDFRegressionDomainName(Domain) 返回单个 THPDFRegressionDomain 值的稳定小写名称(例如 parser 或 renderer),用于日志和报告字段
Stability contract
HPDFDefaultDifferentialProbeOptions 选用三次运行、256 MiB 的输入上限以及稳定的回退引擎名称
RepeatCount 接受 2 到 64 次运行;即使某个引擎第一次的签名与另一个引擎一致,只要它自身的签名在多次运行中发生变化,该域就会被标记为不稳定
Probe 抛出的异常会转换为稳定的错误签名,其中包含异常类名和消息的 SHA-256;任何错误都会使该域按 fail-closed 判为不一致
同一份不可变输入按固定的域顺序和引擎顺序提供,每个选定的域在 JSON 报告中恰好出现一次
Built-in bounds
可配置的 HPDFProbeHotPDFDocument 重载接受渲染 DPI、最大页数和最大输出字节数
渲染指纹不含 alpha 和行填充,文本指纹会规范化换行表示,保存输出则先经有界流再计算哈希
Report
THPDFDifferentialRegressionInfo 携带已比较域和有差异域的集合、左右两侧的签名、不稳定域集合、错误集合、引擎名称、重复次数以及输入的 SHA-256
HPDFDifferentialRegressionInfoToJSON 输出固定的 schema hotpdf.differential.v1,字段和域的顺序稳定,适用于 CI、语料分诊(corpus triage)和审计存储
Compatibility helper
HPDFCompareRegressionResults 保留原有的单次运行回调行为,供那些已经自行产出稳定签名的调用方使用