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