THPDFSignatureRevisionAnalysis Record
對 PDF 簽章之後每個增量修訂的原則感知分類
宣告
THPDFSignatureRevisionAnalysis= record
SignedRevisionLength: Int64;
TotalRevisionCount: Integer;
SignedRevisionIndex: Integer;
ModificationLevel: THPDFRevisionModificationLevel;
ChangeKinds: THPDFRevisionChangeKinds;
ChangedObjectCount: Integer;
FreedObjectCount: Integer;
ChangedFieldNames: THPDFAnsiStringArray;
Permissions: THPDFSignaturePermissionInfo;
DocMDPCompliant: boolean;
FieldMDPCompliant: boolean;
URCompliant: boolean;
IdentityCompliant: boolean;
TransformCompliant: boolean;
PolicyCompliant: boolean;
Revisions: THPDFSignatureRevisionChangeArray;
Issue: AnsiString;
end;
單元
HPDFDoc
欄位
| 欄位 | 用途 |
|---|---|
SignedRevisionLength | 套用簽章當下檔案的位元組長度 |
TotalRevisionCount | 檔案中存在的增量修訂數量 |
SignedRevisionIndex | 簽章所涵蓋修訂的零基索引 |
ModificationLevel | 簽章之後達到的最高語意嚴重度,從 rmlNone 到 rmlOther |
ChangeKinds | 後續修訂中觀察到的具體變更種類集合 |
ChangedObjectCount | 被後續修訂重定義的物件數 |
FreedObjectCount | 被後續修訂釋放的物件數 |
ChangedFieldNames | 值被後續修訂動過的表單欄位 |
Permissions | 已簽署文件的 DocMDP / FieldMDP / UR 原則結構檢查 |
DocMDPCompliant | 觀察到的變更符合已簽署 DocMDP 權限層級時為 True |
FieldMDPCompliant | 欄位變更遵守已簽署 FieldMDP 原則時為 True |
URCompliant | 使用權限限制未被違反時為 True |
IdentityCompliant | Identity 轉換的預期(例如時間戳記)成立時為 True |
TransformCompliant | 後續修訂未出現無法識別的 transform 方法時為 True |
PolicyCompliant | 所有合規檢查的彙總結論 |
Revisions | 每個後續修訂一筆 THPDFSignatureRevisionChange,附帶各自的物件清單與問題說明 |
Issue | 分析失敗的原因,成功時為空 |
使用說明
- 用
AnalyzeLoadedSignatureRevisions填入;文件在磁碟上沒有來源檔時必須使用 stream 多載 - 修改層級的排序是刻意的:序號越大絕不會更寬鬆,請對照已簽署原則比較序號
- 密碼學上的有效性仍由
VerifyLoadedSignature負責;此 record 只分類哪些內容有變動,不判斷位元組是否通過驗證