function ExportXFDF(const FileName: string): Integer; overload;
function ExportXFDF(Stream: TStream): Integer; overload;
function ExportXFDFToStream(Stream: TStream): Integer;
ExportXFDF parcourt chaque page du document chargé et produit un document XFDF conforme ISO 19444-1 enraciné dans l’espace de noms http://ns.adobe.com/xfdf/. La sortie consiste en une section <fields> et une section <annots>, toutes deux émises en XML UTF-8
Pour les champs de formulaire, la méthode énumère les annotations de widget de chaque page, lit chaque valeur de champ et écrit un élément <field>. Les noms de champ hiérarchiques (qualifiés) sont divisés sur le séparateur de point et émis comme éléments <field> imbriqués afin que la structure parent/enfant fasse l’aller-retour. Les cases à cocher et boutons radio exportent leur valeur d’export (le nom d’état d’apparence représentant l’état activé) comme valeur de champ. Les champs de signature sont listés mais leur valeur n’est jamais exportée
Les drapeaux de présence de valeur gardent une valeur de champ explicitement vide distincte d’une valeur omise, y compris les champs imbriqués à plus de deux niveaux de profondeur
Pour les annotations, chaque annotation non-widget, non-popup de chaque page est sérialisée. L’exportateur reconnaît 18 valeurs /Subtype : text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link et redact. Chacune est écrite comme élément sous <annots> portant son index de page, son rectangle englobant, son contenu, son titre (auteur), son nom (NM), son sujet, ses dates de modification et de création, ses drapeaux et sa couleur
Les conventions d’encodage suivent ISO 19444-1 : les couleurs sont écrites comme chaînes hex #RRGGBB ; les listes de coordonnées (rectangle, extrémités de ligne, sommets de polygone/polyligne, listes d’encre) sont des nombres séparés par des virgules ; et les drapeaux d’annotation sont émis comme une liste de noms de drapeaux séparée par des virgules plutôt qu’un masque de bits brut
Pour les annotations de balisage multi-lignes, l’attribut coords inclut chaque quadrilatère dans l’ordre du document plutôt que seulement la première ligne
Le contenu d’annotation utilise la même sémantique de présence, donc un élément contents vide explicite survit à l’export sans transformer un élément absent en élément vide
PDFium n’expose lui-même aucune API XFDF. ExportXFDF est entièrement implémenté en Pascal par PDFium Delphi Component au-dessus de son propre modèle de données d’annotation et de champ de formulaire, en interrogeant PDFium uniquement pour les valeurs d’attribut par annotation
Renvoie le nombre d’octets UTF-8 écrits. La surcharge Stream accepte un TStream dans lequel écrire ; la surcharge FileName accepte un chemin de fichier et crée/tronque ce fichier. ExportXFDFToStream est un alias de la surcharge Stream
CA) et les données géométriques (extrémités de ligne, sommets de polygone/polyligne, listes d’encre) sont exposées via des enregistrements de haut niveau en lecture seule côté PDFium, car PDFium n’a pas de setter SetNumberValue pour les dictionnaires d’annotation. Ces attributs sont préservés tels quels pendant l’export, donc ils font l’aller-retour via XFDF même s’ils ne peuvent pas être éditésImportXFDF ou consommé par Acrobat, et vice versa
// Export all fields and annotations to an .xfdf file
BytesWritten := Pdf1.ExportXFDF('C:\Data\form.xfdf');
// Or to a stream
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('C:\Data\form.xfdf', fmCreate);
try
Pdf1.ExportXFDF(Stream);
finally
Stream.Free;
end;
end;