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