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 todas las revisiones anexadas hasta ahora; nil genera EPdfError
InfoTPdfIncrementalCommitInfo recibe conteos de objetos y bytes, offsets de xref previo y nuevo, conteo de revisiones, estado de cifrado y validación, y resultados de durabilidad del archivo
ResultTrue cuando la salida validada completa fue escrita

 

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

FileNameArchivo de destino, reemplazado atómicamente mediante un archivo lateral durable 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 del documento activo contra el estado capturado en la última confirmación, o contra la línea base para la primera, y anexa los objetos modificados más una sección de referencias cruzadas nueva. Los bytes anteriores nunca se reescriben, de modo que cada revisión previa permanece idéntica byte a byte y recuperable

AppendedByteCount es el tamaño de la nueva revisión por sí 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ó el diff

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

La sobrecarga de archivo escribe junto al destino, sincroniza el archivo auxiliar, lo cierra y lo reabre, repite la validación y después realiza el reemplazo atómico; Windows solicita un reemplazo con write-through; Unix comprueba que se pueda sincronizar el directorio antes del reemplazo y sincroniza el directorio padre después de renombrar

Una falla anterior al reemplazo deja intacto el destino previo y restaura la base de la sesión y el número de revisiones; si en Unix falla la sincronización del directorio después de un renombrado exitoso, la unidad interna FPdfPlatform lanza EPdfOutputCommitError: la salida ya fue reemplazada, Info.ReplacedAtomically=True y Info.Durable=False, y la sesión conserva la base confirmada para que una edición posterior no agregue datos a una salida obsoleta

Durable indica que se completaron las etapas de sincronización solicitadas por la plataforma; no certifica el hardware de almacenamiento ni el comportamiento del sistema de archivos tras un corte de energía; otras API de guardado que usan el mismo reemplazo atómico también pueden lanzar esta excepción de salida ya confirmada; el llamador debe distinguir esa etapa de las fallas que conservan la salida anterior

Llamar sin una sesión abierta genera EPdfError, así que BeginIncrementalSave debe ir primero

Ver también

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs