THPDFHeadlessDocument.TimestampToFile
function TimestampToFile(FieldIndex: Integer; const FileName: string;
const Options: THPDFHeadlessCMSOptions;
ReservedTimestampBytes: Integer = 16384): THPDFHeadlessCMSResult;
在既有的未簽署簽章欄位中建立真實的文件時間戳記,並以原子方式發布獨立的增量 PDF 輸出
FieldIndex 是 FindFormField 回傳、以零為基底的表單欄位索引;它不同於 VerifySignature 接受的已填充簽章索引
輸出字典使用 Type DocTimeStamp 與 SubFilter ETSI.RFC3161,並在其未加密的 Contents 保留區中放入真正的 DER 時間戳記權杖
DigestMethod 為確切涵蓋的 PDF ByteRange 選擇 SHA256、SHA384 或 SHA512;寫入器會在請求權杖前修補數值範圍
Timestamp.Transport 必須回傳真正的 RFC 3161 回應,Timestamp.TrustedCAFile 必須明確識別受信任的 TSA 根;選填的 TrustedCRLFile 與 RequireRevocation 用來檢核目前由簽發者簽署的 CRL
回應必須綁定精確的訊息印記與新鮮的請求 nonce,使用合適的 TSA 憑證與 ESS 綁定,並在發布前通過即時的簽章、用途、鏈與已設定的撤銷檢查
不需要應用程式簽章金鑰或簽章者憑證;必填的簽章憑證約束評估的是實際已驗證的 TSA 憑證與內嵌憑證鏈
必填的簽章 seed 處理器、RFC3161 SubFilter、摘要、原因、時間戳記 URL、憑證主體與簽發者,以及目前具名外觀約束持續生效
已驗證的 DocMDP 與 FieldMDP 檢查只允許插入真正文件時間戳記所需的變更,包括在 P1 或欄位鎖下插入既有的未簽署簽章欄位;這個標準例外不允許原則禁止的一般核准簽章或表單變更
後續修改檢查會驗證時間戳記,把欄位與簽章綁到其帶時間戳記的修訂,並繼續保護原始的已認證物件圖與鎖定欄位
對 PDF 2.0 之前的來源,輸出會在需要時加入 BaseVersion 1.7、ExtensionLevel 1 的 ESIC 擴充宣告,保留既有的擴充設定檔,並透過 Catalog Version 1.7 提升較舊的有效 PDF 版本,而不改動原始檔頭
唯讀欄位、來源別名與 AES 表單填寫權限持續強制執行;不相容的核准認證、LegalAttestation、Adobe 已簽署撤銷設定檔,以及時間戳記 FieldMDP transform 參照都會被拒
ReservedTimestampBytes 是文件物件預算內的正權杖容量;完整權杖必須塞得進固定的十六進位保留區
建立會保留原始來源位元組與 AES 安全,讓簽章 Contents 保持未加密,其他 metadata 依原始原則加密,已載入的欄位圖維持不變
失敗、取消、無效回應與預算不足會保留任何既有目的地,並移除未發布的暫存檔
非 nil 時,文件、CMS 與時間戳記取消權杖必須一致;涵蓋的資料以每次最多 64 KiB 的區塊讀取
用 AddSignatureField 與 SetSignatureFieldAppearance 準備新的時間戳記 widget,並用 VerifySignature 驗證產生的文件時間戳記
建立成功後 TimestampCount 為 1 且 TimestampValid 為 true;CertificateTrusted 與 TimestampTrustEvaluated 反映明確的 TSA 信任驗證過程
擴充設定檔遵循ETSI EN 319 142-1 第 5.6 節;必要的時間戳記變更遵循ISO 32000-2 MDP 澄清