PDFium Delphi Component Docs

Methode CommitIncrementalSave

Komponente: TPdf  ·  Unit: PDFium
Hängt die seit dem letzten Commit gemachten Bearbeitungen als neue PDF-Revision an

Syntax

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

StreamZiel für das vollständige Dokument, einschließlich der Basislinie und jeder bisher angehängten Revision; nil löst einen EPdfError aus
InfoTPdfIncrementalCommitInfo empfängt Objekt- und Byteanzahlen, frühere und neue xref-Offsets, die Revisionsanzahl, Verschlüsselungs- und Validierungszustand sowie Ergebnisse zur Datei-Haltbarkeit
ResultTrue, wenn die vollständige validierte Ausgabe geschrieben wurde

 

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

FileNameZieldatei, die über eine haltbare Nebendatei im selben Verzeichnis atomar ersetzt wird
InfoDerselbe TPdfIncrementalCommitInfo-Bericht wie bei der Stream-Überladung, wobei Durable und ReplacedAtomically gesetzt werden, nachdem diese Datei-Phasen erfolgreich waren
ResultTrue, wenn die validierte Nebendatei das Ziel ersetzt hat

Beschreibung

Vergleicht das Live-Dokument mit dem Zustand, der beim letzten Commit erfasst wurde, oder bei dem ersten Commit mit der Basislinie, und hängt die geänderten Objekte samt einer frischen Cross-Reference-Sektion an. Frühere Bytes werden nie neu geschrieben, sodass jede frühere Revision byteidentisch und wiederherstellbar bleibt

AppendedByteCount ist allein die Größe der neuen Revision, während PreviousOutputByteCount und OutputByteCount das unveränderliche Präfix und das vollständige Ergebnis abgrenzen. PreviousXrefOffset und OutputXrefOffset identifizieren die Revisionskette, und ChangedObjectCount meldet, wie viele Objekte der Diff gefunden hat

Jeder Kandidat durchläuft spärliche Revisionsgrenz-Prüfungen, ein striktes unabhängiges erneutes Öffnen, Seitenanzahl- und Security-Handler-Prüfungen sowie eine PDF-MAC-Validierung, wenn vorhanden. Encrypted und Validated melden diese Eigenschaften

Die Dateiüberladung schreibt neben das Ziel, synchronisiert die temporäre Datei, schließt und öffnet sie erneut, prüft nochmals und ersetzt atomar; Windows fordert Write-through-Ersetzung, Unix prüft Verzeichnissynchronisierung vorher und synchronisiert das Elternverzeichnis nach Umbenennung

Fehler vor Ersetzung erhalten das alte Ziel und stellen Sessionbasis und Revisionsanzahl wieder her; scheitert unter Unix die Verzeichnissynchronisierung nach erfolgreicher Umbenennung, löst die interne Unit FPdfPlatform EPdfOutputCommitError aus: Ausgabe bereits ersetzt, Info.ReplacedAtomically=True, Info.Durable=False; die Session behält die committed Basis, damit spätere Änderungen nicht an veraltete Ausgabe angehängt werden

Durable meldet erfolgreichen Abschluss der angeforderten Plattformsynchronisierungen, zertifiziert aber weder Hardware noch Dateisystemverhalten nach Stromausfall; andere APIs mit derselben atomaren Ersetzung können ebenfalls diese Ausnahme nach Commit auslösen; unterscheiden Sie sie von Fehlern mit erhaltenem Altziel

Der Aufruf ohne offene Sitzung löst einen EPdfError aus, daher muss BeginIncrementalSave zuerst kommen

Siehe auch

BeginIncrementalSave, EndIncrementalSave, IncrementalSaveActive, SaveAs