THotPDF.PrepareLoadedFormDataRevisionToStream

Prepares a private revision of the actual loaded graph without touching the original document

Declaration

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

Behaviour

The method copies the original revision to an exclusively created private file, loads a separate incremental document, compares semantic object graphs by object number and generation, clones actual pending changes and writes the resulting candidate at the current destination position

Text values, existing appearances, unrelated pending catalog changes, indirect references, stream contents and new graph objects participate in preparation; PDF names are decoded once and duplicate semantic dictionary names are invalid

An unchanged graph copies the exact original bytes without adding an empty incremental cross-reference section; changed graphs keep the complete original byte prefix and append their current revision

Encrypted revisions keep their original encryption dictionary and key; Password must authenticate the original revision and is supplied as UTF-8 bytes

OriginalSource, when supplied, must be the complete immutable original revision from which this document was loaded, including ciphertext and signed bytes; its position is restored on both success and failure

Without OriginalSource, the method uses CopyLoadedSourceToStream; that does not turn an externally mutable borrowed source into an immutable snapshot, so callers must keep its exact loaded bytes

MaxWorkingBytes must be at least 1 MiB; MaxOutputBytes and MaxObjects must be positive; source copying, object comparison, resident and spilled clone data and output length have finite bounds

OperationCancellationToken and Checkpoint are polled during copying and comparison; copying uses blocks of at most 64 KiB; a failed preparation can leave partial destination bytes, which the caller must discard

This low-level method prepares a graph revision and does not authorise pending changes under DocMDP or FieldMDP; use THPDFWindowsFormDataTransaction to authenticate signature policy before publishing form updates

The original THotPDF graph, source ownership, pending changes and settings remain intact when preparation succeeds or fails; temporary files are closed and removed when the method exits

Related topics

CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Windows FDF/XFDF exchange