确定性差分回归探针

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

DomainBuilt-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 保留原有的单次运行回调行为,供那些已经自行产出稳定签名的调用方使用