SetDeterministicDocumentID
Свойства документов, оптимизация
Описание
Включает или отключает воспроизводимые файловые идентификаторы trailer, выведенные из явного зерна или нормализованного сериализованного содержимого
Синтаксис
Delphi
Function TPDFlib.SetDeterministicDocumentID(Enable: Integer): Integer;Параметры
| Enable | Передайте 1, чтобы вывести файловый идентификатор trailer из явного зерна или нормализованного содержимого документа, или 0, чтобы вернуть идентификатор по умолчанию, вычисляемый по времени |
|---|
Возвращаемые значения
| 0 | Недопустимое значение параметра |
|---|---|
| 1 | Настройка применена успешно |
Замечания
Когда включено, следующий полный незашифрованный вывод выводит /ID trailer из зерна, переданного с SetDocumentIDSeed. Без явного зерна писатель пропускает сериализованные заголовок и тело документа через SHA-256, нормализует сгенерированные идентификаторы ресурсов и UUID экземпляров XMP и использует первые 16 байтов дайджеста для обеих записей начального массива /ID. Данные перекрёстных ссылок, смещения trailer и любой предыдущий /ID trailer исключаются, поэтому изменения страниц, ресурсов, вложений и метаданных влияют на идентификатор, а смещения компоновки — нетИдентификатор обновляется только при полных сохранениях. Инкрементные обновления никогда не перезаписывают постоянный идентификатор, а зашифрованные документы сохраняют существующий идентификатор, поскольку первая запись
/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