function CommitIncrementalSave(Stream: TStream; out Info: TPdfIncrementalCommitInfo): Boolean;
| Stream | Destination du document complet, incluant la ligne de base et chaque révision ajoutée jusqu’ici ; nil lève EPdfError |
| Info | Le TPdfIncrementalCommitInfo reçoit les comptages d’objets et d’octets, les décalages xref antérieur et nouveau, le nombre de révisions, l’état de chiffrement et de validation, ainsi que les résultats de durabilité du fichier |
| Result | True lorsque la sortie complète validée a été écrite |
function CommitIncrementalSave(const FileName: string; out Info: TPdfIncrementalCommitInfo): Boolean;
| FileName | Fichier de destination, remplacé atomiquement via un fichier auxiliaire durable dans le même répertoire |
| Info | Le même rapport TPdfIncrementalCommitInfo que la surcharge flux, avec Durable et ReplacedAtomically définis après le succès de ces étapes de fichier |
| Result | True lorsque le fichier auxiliaire validé a remplacé la destination |
Compare le document vivant à l’état capturé lors de la dernière validation, ou à la ligne de base pour la première, et ajoute les objets modifiés plus une nouvelle section de références croisées. Les octets antérieurs ne sont jamais réécrits, de sorte que chaque révision précédente reste identique octet par octet et récupérable
AppendedByteCount est la taille de la seule nouvelle révision, tandis que PreviousOutputByteCount et OutputByteCount délimitent le préfixe immuable et le résultat complet. PreviousXrefOffset et OutputXrefOffset identifient la chaîne de révisions, et ChangedObjectCount indique combien d’objets la comparaison a trouvés
Chaque candidat passe des vérifications éparses de frontières de révisions, une réouverture indépendante stricte, des vérifications du nombre de pages et du gestionnaire de sécurité, ainsi qu’une validation PDF MAC lorsqu’elle est présente. Encrypted et Validated signalent ces propriétés
La surcharge fichier écrit à côté de la cible, synchronise le fichier temporaire, le ferme et le rouvre, répète la validation puis effectue un remplacement atomique ; Windows demande un remplacement write-through ; Unix vérifie la synchronisation des répertoires avant remplacement et synchronise le répertoire parent après renommage
Un échec avant remplacement laisse la cible intacte et restaure la base et le nombre de révisions de la session ; sous Unix, une synchronisation du répertoire échouée après renommage réussi lève EPdfOutputCommitError de l’unité interne FPdfPlatform : la sortie est déjà remplacée, Info.ReplacedAtomically=True et Info.Durable=False ; la session conserve la base validée pour éviter qu’une modification ultérieure s’ajoute à une sortie obsolète
Durable indique que les étapes de synchronisation demandées à la plateforme ont réussi ; il ne certifie ni le matériel de stockage ni le comportement du système de fichiers après perte d’alimentation ; les autres API utilisant le même remplacement peuvent aussi lever cette exception après remplacement ; distinguez ce stade des échecs préservant l’ancienne sortie
Appeler sans session ouverte lève EPdfError ; BeginIncrementalSave doit donc venir en premier