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