THotPDF.PrepareLoadedFormDataRevisionToStream

Prepara una revisión privada del grafo cargado real sin cambiar el documento original

Declaración

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

Comportamiento

El método copia la revisión original a un archivo privado creado en exclusiva, carga un documento incremental separado, compara los grafos de objetos semánticos por número de objeto y generación, clona los cambios pendientes reales y escribe el candidato resultante en la posición actual del destino

Los valores de texto, las apariencias existentes, los cambios pendientes de catálogo no relacionados, las referencias indirectas, los contenidos de streams y los nuevos objetos del grafo participan en la preparación; los nombres PDF se decodifican una vez y los nombres de diccionario semánticos duplicados son inválidos

Un grafo sin cambios copia los bytes originales exactos sin agregar una sección incremental vacía de referencias cruzadas; los grafos cambiados conservan el prefijo de bytes original completo y agregan su revisión actual

Las revisiones cifradas conservan su diccionario de cifrado y su llave originales; Password debe autenticar la revisión original y se suministra como bytes UTF-8

OriginalSource, cuando se suministra, debe ser la revisión original completa e inmutable desde la que se cargó este documento, incluidos el ciphertext y los bytes firmados; su posición se restaura en éxito y en fallo

Sin OriginalSource, el método usa CopyLoadedSourceToStream; eso no convierte un source prestado y mutable externamente en una instantánea inmutable, así que los llamadores deben preservar sus bytes cargados exactos

MaxWorkingBytes debe ser al menos 1 MiB; MaxOutputBytes y MaxObjects deben ser positivos; la copia del source, la comparación de objetos, los datos de clones residentes y derramados y la longitud de salida tienen límites finitos

OperationCancellationToken y Checkpoint se consultan durante la copia y la comparación; la copia usa bloques de como máximo 64 KiB; una preparación fallida puede dejar bytes parciales en el destino, que el llamador debe descartar

Este método de bajo nivel prepara una revisión del grafo y no autoriza cambios pendientes bajo DocMDP o FieldMDP; usa THPDFWindowsFormDataTransaction para autenticar la política de firmas antes de publicar actualizaciones de formulario

El grafo THotPDF original, la propiedad del source, los cambios pendientes y los ajustes permanecen intactos cuando la preparación tiene éxito o falla; los archivos temporales se cierran y eliminan cuando el método sale

Temas relacionados

CopyLoadedSourceToStream, THPDFWindowsFormDataTransaction, Intercambio FDF/XFDF de Windows