SetDeterministicDocumentID
文档属性、优化
描述
启用或禁用由显式种子或规范化序列化内容派生的可复现 trailer 文件标识符
语法
Delphi
Function TPDFlib.SetDeterministicDocumentID(Enable: Integer): Integer;参数
| Enable | 传入 1 从显式种子或规范化文档内容派生 trailer 文件标识符,或传入 0 恢复默认的基于时间的标识符 |
|---|
返回值
| 0 | 参数值无效 |
|---|---|
| 1 | 设置已成功应用 |
说明
启用后,下一次完整未加密保存会从种子派生 trailer /ID,该种子由 SetDocumentIDSeed 提供。没有显式种子时,写入器把序列化的文件头和文档主体流入 SHA-256,规范化生成的资源标识符和 XMP 实例 UUID,并把摘要的前 16 个字节用作初始 /ID 数组的两个条目。交叉引用数据、trailer 偏移以及先前的 trailer /ID 均被排除,因此页面、资源、附件和元数据的更改会影响该标识符,而布局偏移不会该标识符仅在完整保存时刷新。增量更新从不重写永久标识符,而加密文档会保留其现有标识符,因为
/ID 的第一个条目参与加密密钥派生。自动日期和其他易失的用户元数据仍属于内容;当两个独立生成的文档必须获得相同的内容派生标识符时,请显式设置它们
示例
PDF.SetDeterministicDocumentID(1);
PDF.SetDocumentIDSeed('invoice-2026-07-0001');
PDF.DrawText(100, 100, 'Reproducible output');
PDF.SaveToFile('invoice.pdf'); // same seed, same trailer ID另请参阅
GetDeterministicDocumentID, SetDocumentIDSeed, GetDocumentFileID