THotPDF.AnalyzeLoadedSignatureRevisions 方法
对所选签名之后的每个增量修订进行分类,并根据 DocMDP、UR/UR3、FieldMDP 和 Identity 变换评估聚合更改
声明
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
Source: TStream;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
function AnalyzeLoadedSignatureRevisions(
SigIndex: Integer;
out Analysis: THPDFSignatureRevisionAnalysis
): boolean; overload;
单元
HPDFDoc
参数
| 名称 | 用途 |
|---|---|
SigIndex | 已加载签名字段的从零开始的索引 |
Source | 由调用方拥有的流,包含已加载 PDF 的确切字节 |
Analysis | 接收修订、对象、字段、权限、合规性和诊断详情 |
更改类型
THPDFRevisionChangeKinds 独立记录长期验证维护、表单填写、签名、批注创建/删除/修改、嵌入文件创建/删除/修改、页面模板实例化和未识别的更改
更改种类集合保留了单一有序修改级别无法表达的操作细节,并驱动 UR/UR3 权限匹配
返回值
当签名字节范围和修订链已被分析时返回 True,否则返回 False 并在 Analysis.Issue
修改级别
THPDFRevisionModificationLevel 将语义更改从最不严格到最严格排序
| 值 | 含义 |
|---|---|
rmlNone | 没有签名后的对象更改 |
rmlLongTermValidation | DSS、VRI、证书、吊销、扩展或文档时间戳维护 |
rmlFormFillAndSign | 表单值、widget 外观或签名结构 |
rmlAnnotations | 批注对象或页面批注链接 |
rmlOther | 未识别、不可读、已释放或以其他方式不允许的对象 |
结果详情
THPDFSignatureRevisionAnalysis包含一个THPDFSignatureRevisionChangeArray(由 THPDFSignatureRevisionChange 记录组成)
SignedRevisionLength、TotalRevisionCount和SignedRevisionIndex在按时间顺序排列的修订链中标识已签名快照Revisions报告每个后续 xref 偏移、语义级别、更改种类集合、已更改和已释放的对象编号、已更改的字段名称,以及任何保守分类问题Permissions包含从精确签名修订重建的完整变换信息,而不是最新对象图中可能被重定义的策略DocMDPCompliant和FieldMDPCompliant、URCompliant和IdentityCompliant报告独立的决策,而TransformCompliant将所有变换方法与结构有效性结合PolicyCompliant对需要单一决策的调用方而言,仍是最终的失败关闭结果
用法说明
- 文件支持的重载会打开由
LoadFromFile使用的源文件;流加载则使用LoadFromStream - 流位置在方法返回之前会被还原
- 支持传统的 xref 表、xref 流、混合引用、增量
/Prev链以及压缩的对象流成员 - UR3 通过其必需的字节范围参与;已弃用的旧版 UR 签名没有已签名修订边界,因此该方法报告无效或缺失的
/ByteRange,而不是尝试过时的对象摘要算法 - 已释放的批注和嵌入文件保留其先前对象体的删除语义;未知或不可读的对象保持
rmlOther,让策略检查安全地失败 - 此方法评估修订语义和权限,但不替代加密签名验证
- SaveIncrementalUpdateAuthenticated 将此分析与签名认证和原子发布相结合