THotPDF.PrepareLoadedFormDataRevisionToStream

Bereitet eine private Revision des tatsächlich geladenen Graphen vor, ohne das Originaldokument zu verändern

Declaration

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

Behavior

Die Methode kopiert die Originalrevision in eine exklusiv angelegte private Datei, lädt ein separates inkrementelles Dokument, vergleicht semantische Objektgraphen nach Objektnummer und Generation, klont echte Pending-Changes und schreibt den resultierenden Kandidaten an der aktuellen Zielposition

Textwerte, bestehende Appearances, unrelated Pending-Catalog-Änderungen, indirekte Referenzen, Stream-Inhalte und neue Graphobjekte nehmen an der Aufbereitung teil; PDF-Namen werden einmal dekodiert, und doppelte semantische Dictionary-Namen sind ungültig

Ein unveränderter Graph kopiert die exakten Originalbytes, ohne eine leere inkrementelle Cross-Reference-Sektion anzuhängen; geänderte Graphen behalten das vollständige ursprüngliche Byte-Präfix und hängen ihre aktuelle Revision an

Verschlüsselte Revisionen behalten ihr ursprüngliches Encryption-Dictionary und ihren Schlüssel; Password muss die Originalrevision authentifizieren und wird als UTF-8-Bytes geliefert

OriginalSource muss, wenn geliefert, die vollständige unveränderliche Originalrevision sein, aus der dieses Dokument geladen wurde, einschließlich Ciphertext und signierter Bytes; ihre Position wird bei Erfolg und Fehlschlag wiederhergestellt

Ohne OriginalSource nutzt die Methode CopyLoadedSourceToStream; das macht keine extern veränderliche geliehene Quelle zu einem unveränderlichen Snapshot, also müssen Aufrufer ihre exakt geladenen Bytes bewahren

MaxWorkingBytes muss mindestens 1 MiB sein; MaxOutputBytes und MaxObjects müssen positiv sein; Quellkopieren, Objektvergleich, residente und ausgelagerte Klondaten sowie die Ausgabelänge haben endliche Grenzen

OperationCancellationToken und Checkpoint werden beim Kopieren und Vergleichen abgefragt; das Kopieren nutzt Blöcke von höchstens 64 KiB; eine fehlgeschlagene Aufbereitung kann partielle Zielbytes hinterlassen, die der Aufrufer verwerfen muss

Diese Low-Level-Methode bereitet eine Graphrevision vor und autorisiert keine Pending-Changes unter DocMDP oder FieldMDP; nutzen Sie THPDFWindowsFormDataTransaction, um die Signatur-Policy zu authentifizieren, bevor Formularupdates veröffentlicht werden

Der ursprüngliche THotPDF-Graph, Source-Ownership, Pending-Changes und Einstellungen bleiben bei erfolgreicher wie fehlgeschlagener Aufbereitung intakt; temporäre Dateien werden beim Verlassen der Methode geschlossen und entfernt

Related topics

CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Windows FDF/XFDF exchange