THotPDF.PrepareLoadedFormDataRevisionToStream

Готовит приватную ревизию реального загруженного графа, не меняя исходный документ

Объявление

procedure PrepareLoadedFormDataRevisionToStream(Destination: TStream;
  const Password: AnsiString; MaxWorkingBytes, MaxOutputBytes: Int64;
  MaxObjects: Integer; Checkpoint: TNotifyEvent = nil;
  OriginalSource: TStream = nil);

Поведение

Метод копирует исходную ревизию в эксклюзивно созданный приватный файл, загружает отдельный инкрементальный документ, сравнивает семантические графы объектов по номеру и поколению объекта, клонирует реальные ожидающие изменения и пишет полученный кандидат в текущую позицию назначения

В подготовке участвуют текстовые значения, существующие внешние виды, не связанные ожидающие изменения catalog, косвенные ссылки, содержимое потоков и новые объекты графа; PDF-имена декодируются один раз, а дубликаты семантических имён словарей некорректны

Неизменённый граф копирует точные исходные байты без добавления пустой инкрементальной секции перекрёстных ссылок; изменённые графы сохраняют полный исходный байтовый префикс и добавляют свою текущую ревизию

Зашифрованные ревизии сохраняют исходный словарь шифрования и ключ; Password должен аутентифицировать исходную ревизию и передаётся байтами UTF-8

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

Без OriginalSource метод использует CopyLoadedSourceToStream; это не превращает внешне изменяемый заимствованный источник в неизменяемый снимок, поэтому вызывающие должны сохранять его точные загруженные байты

MaxWorkingBytes должен быть не менее 1 МиБ; MaxOutputBytes и MaxObjects должны быть положительными; копирование источника, сравнение объектов, резидентные и вытесненные данные клонов и длина вывода имеют конечные границы

OperationCancellationToken и Checkpoint опрашиваются во время копирования и сравнения; копирование идёт блоками не больше 64 КиБ; сбойная подготовка может оставить частичные байты в назначении, которые вызывающий обязан отбросить

Этот низкоуровневый метод готовит ревизию графа и не авторизует ожидающие изменения под DocMDP или FieldMDP; для аутентификации политики подписей перед публикацией обновлений форм используйте THPDFWindowsFormDataTransaction

Исходный граф THotPDF, владение источником, ожидающие изменения и настройки остаются нетронутыми при успехе и сбое подготовки; временные файлы закрываются и удаляются при выходе из метода

Связанные темы

CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Обмен FDF/XFDF в Windows