HPDFFinalizeHeadlessSignatureReservation

function HPDFFinalizeHeadlessSignatureReservation(Target: TStream;
  const Reservation: THPDFHeadlessSignatureReservation;
  const CertificatePEM, PrivateKeyPEM: SysUtils.TBytes;
  const Options: THPDFHeadlessCMSOptions): THPDFHeadlessCMSResult;

Завершает готовый staging-поток PDF, используя свежее резервирование от парного райтера

Поток вызывающего должен быть позиционируемым и доступным на чтение/запись; его финальный размер определяет подписанную ревизию, а все байты вне точного зарезервированного гэпа Contents аутентифицируются

Функция проверяет резервирование, патчит числовые слоты фиксированной ширины, стримит реальные диапазоны байтов в OpenSSL 3, пишет DER как hexadecimal-байты, очищает неиспользованное резервное дополнение и немедленно проверяет целостность CMS

Полный буфер исходного файла не собирается, позиция потока восстанавливается, а длина файла и позиции xref остаются неизменными

Options соблюдают бюджеты подписанных байтов и CMS и отмену; RequireCAdES должен совпадать с профилем резервирования

Возвращённый статус доверия вычисляется только при явном доверенном файле CA

Сбой может оставить пропатченные байты в неопубликованном staging-потоке; отбросьте его и никогда не публикуйте после исключения

Для автоматической уборки staging, сохранения шифрования, защиты от совпадений с источником и атомарной публикации используйте THPDFHeadlessDocument.SignToFile