THPDFWindowsFormDataTransaction

HPDFWindowsFormData fournit un pont Windows depuis le graphe THotPDF courant vers le moteur FDF/XFDF natif authentifié

Déclarations

constructor Create(Document: THotPDF; OriginalSource: TStream;
  const Password: AnsiString; const Limits: THPDFWindowsFormDataLimits;
  Checkpoint: TNotifyEvent = nil);
procedure SetSignaturePolicyOptions(const Options: THPDFHeadlessCMSOptions);
function ExportData(Format: THPDFHeadlessFormDataFormat;
  const Options: THPDFHeadlessFormDataOptions): TBytes;
procedure ImportData(const Bytes: TBytes; Format: THPDFHeadlessFormDataFormat;
  const Fonts: THPDFHeadlessRichTextFonts;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure ImportDataWithFamilies(const Bytes: TBytes;
  Format: THPDFHeadlessFormDataFormat; const Families: THPDFHeadlessRichTextFontFamilies;
  const AppearanceOptions: THPDFHeadlessTextAppearanceOptions;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
procedure FillTypedData(const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions; const Password: AnsiString);
function PreparedFieldCount: Integer;
procedure GetPreparedField(Index: Integer; out Name, Value: UnicodeString;
  out FieldType: Integer);
procedure WritePreparedPDF(Destination: TStream);
procedure TakeCandidate(out Document: THotPDF;
  out Source: THPDFWindowsFormDataSource);
property ChangedFields: Integer;
property CancellationToken: THPDFCancellationToken;

Propriété et politique

Document, OriginalSource et Checkpoint sont empruntés jusqu'à la destruction ; OriginalSource doit correspondre exactement à la révision d'origine chargée du document ; le constructeur copie et scelle une source d'origine privée, authentifie ses credentials AES et prépare le véritable graphe en attente dans une autre source privée

Le moteur natif vérifie l'intégrité des signatures existantes et la liaison de certificats ESS, les permissions DocMDP, les verrous FieldMDP et les flags read-only des champs ; les mises à jour P2/P3 permises régénèrent de véritables apparences tout en conservant les octets signés d'origine

Les vérifications requises de trust, d'horodatage et de révocation signée peuvent être configurées avec SetSignaturePolicyOptions ; une simple vérification d'intégrité n'implique pas de trust envers une racine métier non spécifiée

ImportData prépare un PDF candidat et un THotPDF séparément chargé ; il ne mute pas le document emprunté ; un import sémantiquement inchangé authentifie quand même la politique signée avant de copier la révision courante exacte

WritePreparedPDF copie les octets candidats bornés vers le stream fourni ; publiez avec succès chaque callback PDF et de résultat requis avant TakeCandidate ; un échec ou une annulation signifie l'abandon de la transaction

TakeCandidate transfère la propriété du THotPDF et de son THPDFWindowsFormDataSource ; détruisez le document avant de détruire sa source ; le candidat ne conserve pas le token d'annulation de la transaction

THPDFWindowsFormDataSource possède un fichier temporaire créé en exclusivité ; Seal le flush et le rouvre en accès lecture seule ; la destruction ferme et supprime le fichier ; les callbacks de source ne survivent pas à la source propriétaire

ExportAnnotations et ImportAnnotations implémentent l'échange XFDF d'annotations mappé ; ChangedAnnotations rapporte le nombre d'ajouts, en utilisant le même compteur de changements préparés que ChangedFields

Limites

FillTypedData prépare des champs scalaires mixtes et des runs riches typés d'origine dans le même candidat sans aller-retour de décodage RV ; les accesseurs de champs préparés lisent le candidat résultat réel

ImportDataWithFamilies sélectionne une à seize familles nommées avec de véritables programmes de styles et le même cycle de vie de candidat authentifié ; la méthode ImportData d'origine conserve son comportement mono-famille

THPDFWindowsFormDataLimits.Default règle MaxWorkingBytes à 256 Mio, MaxOutputBytes à 128 Mio, MaxObjects à 100000 et MaxPages à 10000 ; la capacité de travail doit être d'au moins 1 Mio et toutes les autres capacités doivent être positives

CancellationToken est emprunté et valide uniquement jusqu'à la destruction de la transaction ; il interroge le token d'opération du document d'origine et Checkpoint pendant le parsing natif, le décodage XML riche, la validation de politique et la copie

Cette classe Windows est disponible pour les Delphi, C++Builder et FPC Windows modernes ; le Linux natif utilise THPDFHeadlessDocument directement

Sujets associés

Échange FDF/XFDF Windows, Préparation du graphe courant, Form data native

Graphes d'annotations FDF

ExportAnnotationsFDF renvoie le nombre d'annotations et écrit un FDF binaire borné dans Bytes ; ImportAnnotationsFDF prépare une candidate avec THPDFFDFOptions

Le profil FDF conserve les ressources d'apparence fournies et les objets indirects partagés ; des valeurs NM correspondantes sur la même page sélectionnent les annotations existantes pour remplacement

Les méthodes FDF utilisent la même propriété de document emprunté, la même politique authentifiée et le même cycle de vie de candidate préparée ; ChangedAnnotations compte les remplacements et ajouts réels, et un import équivalent conserve la révision courante exacte

Suppression d'annotations

RemoveAnnotations prépare des suppressions exactes par page et NM, popups et réponses dépendantes comprises, via le même cycle de vie de candidate ; ChangedAnnotations rapporte toutes les suppressions une seule fois

Publiez les données PDF et de résultat avant TakeCandidate ; un échec laisse le document emprunté et la source inchangés