PDFium Delphi Component Docs

Método CommitIncrementalSave

Componente: TPdf  ·  Unidad: PDFium
Anexa las ediciones realizadas desde la última confirmación como una nueva revisión PDF

Sintaxis

function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;

StreamDestino del documento completo, incluida la línea base y cada revisión anexada hasta el momento; nil lanza EPdfError
InfoTPdfIncrementalCommitInfo recibe los conteos de objetos y bytes, los desplazamientos xref previo y nuevo, el conteo de revisiones, el estado de cifrado y validación, y los resultados de durabilidad del archivo
ResultTrue cuando se escribió la salida completa validada

 

function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;

FileNameArchivo de destino, reemplazado atómicamente mediante un archivo lateral duradero en el mismo directorio
InfoEl mismo informe TPdfIncrementalCommitInfo que la sobrecarga de flujo, con Durable y ReplacedAtomically establecidos después de que esas etapas de archivo tengan éxito
ResultTrue cuando el archivo lateral validado reemplazó el destino

Descripción

Calcula las diferencias entre el documento en vivo y el estado capturado en la última confirmación, o contra la línea base para la primera, y anexa los objetos modificados junto con una sección de referencias cruzadas nueva. Los bytes anteriores nunca se reescriben, por lo que cada revisión previa permanece idéntica a nivel de bytes y recuperable

AppendedByteCount es el tamaño de la nueva revisión sola, mientras que PreviousOutputByteCount y OutputByteCount delimitan el prefijo inmutable y el resultado completo. PreviousXrefOffset y OutputXrefOffset identifican la cadena de revisiones, y ChangedObjectCount informa cuántos objetos encontró la comparación

Cada candidato pasa comprobaciones dispersas de límites de revisión, una reapertura independiente estricta, comprobaciones del conteo de páginas y del manejador de seguridad, y validación de PDF MAC cuando está presente. Encrypted y Validated informan estas propiedades

La sobrecarga de fichero escribe junto al destino, vacía los búferes del fichero auxiliar, lo cierra y vuelve a abrir, repite la validación y después confirma una sustitución atómica. Windows solicita una sustitución con escritura inmediata; Unix comprueba el soporte de vaciado del directorio antes de sustituir y vacía el directorio padre después del renombrado

Un fallo anterior a la sustitución deja intacto el destino previo y restaura la base de la sesión y el número de revisiones. Si en Unix falla el vaciado del directorio tras un renombrado correcto, la unidad interna FPdfPlatform lanza EPdfOutputCommitError: la salida ya está sustituida, Info.ReplacedAtomically=True y Info.Durable=False, y la sesión conserva la base confirmada para que una edición posterior no añada datos a una salida obsoleta

Durable indica que finalizaron correctamente las etapas de vaciado solicitadas por la plataforma. No certifica el hardware de almacenamiento ni el comportamiento del sistema de ficheros ante una pérdida de alimentación. Otras API de guardado que usan la misma sustitución atómica también pueden lanzar esta excepción de salida confirmada tras la sustitución; el llamador debe distinguir esa etapa de los fallos que conservan la salida anterior

Llamar sin una sesión abierta lanza EPdfError, por lo que BeginIncrementalSave tiene que ir primero

Véase también

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs