Échange XFDF d'annotations natif
HPDFHeadlessXFDF exporte les annotations mappées d'un graphe PDF natif chargé et prépare les imports d'annotations XFDF comme révision incrémentale indépendante
Utilisez HPDFExportHeadlessAnnotationsXFDF pour les octets XML UTF-8 et SaveAnnotationsXFDFToFile pour ajouter des annotations à un document existant sans modifier le graphe source chargé
Profil d'annotations mappé
Le profil mappe Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact et Link
Les valeurs communes comprennent page, rectangle, contenus Unicode, auteur, nom d'annotation, dates, sujet, drapeaux, opacité, couleurs et propriétés de bordure prises en charge
Les valeurs spécifiques au type comprennent coordonnées de quadrilatères, sommets, gestes d'encre, extrémités de ligne et géométrie de lignes de rappel, propriétés intent/callout/fringe/texte par défaut de FreeText, état de répétition Redact, actions de lien URI ou Named, actions GoToR distantes, et destinations locales nommées ou explicites et actions GoTo
Les tableaux de composantes de couleur vides préservent les couleurs transparentes ; les couleurs sources Gray et CMYK sont mappées vers des valeurs RGB XFDF, et les composantes RGB sont quantifiées vers la représentation hexadécimale à six chiffres du format
Les exports FileAttachment préfèrent le nom de fichier Unicode et préservent les métadonnées de fichier externe même sans flux embarqué ; les données de fichiers et de sons embarqués sont décodées en base64 canonique borné et importées comme véritables flux indirects, flux vides compris
Les annotations Popup sont représentées comme éléments popup imbriqués et importées avec des liens Parent, Popup et de page indirects ; les réponses se résolvent en une seconde passe contre les noms d'annotations existants et nouvellement ajoutés, références avant comprises
Les contenus riches préservent l'espace de noms XHTML, le texte mixte ordonné et les liaisons d'espaces de noms héritées
Transactions et permissions
Les imports ajoutent des annotations et rejettent les noms dupliqués, les cibles de réponse ambiguës ou manquantes et les valeurs mappées invalides avant publication
Un import en échec ou annulé préserve le fichier de destination et le graphe source chargé ; un import réussi laisse aussi la source chargée inchangée, chargez donc le fichier enregistré pour adopter sa nouvelle révision
L'export exige la permission d'extraction et l'import la permission d'annotation ; la sécurité AES-256 R5/R6 reste dans la révision enregistrée
La politique de certification réelle est authentifiée via le workflow de signatures natif : P1 et P2 empêchent les modifications d'annotations, tandis que P3 permet une révision d'annotations préservant les octets signés d'origine
Bornes
THPDFHeadlessXFDFOptions borne les octets d'entrée/sortie, le nombre d'annotations, les nœuds de graphe et XML, la profondeur et le stockage de travail, avec annulation coopérative
Les nombres mappés doivent être finis et dans une valeur absolue d'un million, avec des contraintes supplémentaires pour le nombre de coordonnées, l'opacité, les tailles d'échantillons et autres valeurs typées
L'admission XML de document entier vérifie l'encodage, les espaces de noms, les attributs dupliqués, les entités et la structure complète avant le mapping des annotations ; le traitement des DTD et entités externes est désactivé
Frontières d'opération
Le transport d'apparence de tampon standard préserve les flux Form réels et des ressources bornées acycliques de polices, d'images et de graphismes via un XML typé base64
Le transport AP général d'annotations, les dictionnaires d'annotations personnalisés, le remplacement ou la suppression d'annotations, les actions arbitraires et les données d'annotations FDF restent des travaux distincts
La synthèse et le rendu d'apparences d'annotations sont des opérations distinctes ; importer des propriétés géométriques et de texte ne crée pas de flux AP
Les autres sous-types d'annotations sources sont ignorés pendant l'export et comptés dans le résultat ; des valeurs mappées sélectionnées mal formées font échouer l'opération sans XML partiel retourné
L'API Pascal native fonctionne sous Windows et Linux ; l'ABI C Linux versionnée expose aussi des opérations d'annotations JSON basées sur des callbacks, et les jobs de fichiers Windows et callbacks V1 exposent le même échange d'annotations mappé
Suppression explicite d'annotations
La suppression d'annotations par page et nom est une opération distincte ; omettre une annotation d'un FDF ou XFDF importé ne la supprime pas
La suppression dans l'arbre de champs de widgets et l'effacement sécurisé exigent des opérations distinctes ; la suppression incrémentale conserve les octets PDF précédents