Captions riches XFA automatiques
Unités : HPDFXFA, HPDFXFAHeadless et HPDFHeadlessAppearance
HPDFXFAWriteHeadlessPDF consomme les valeurs de captions checkbox et radio effectives directement depuis le XDP enregistré et crée de véritables Forms d'apparence natives avec polices embarquées
Contenu effectif des captions
Les valeurs de captions scalaires et le contenu body XHTML exData deviennent du texte natif ; le body doit utiliser l'espace de noms http://www.w3.org/1999/xhtml
Un overlay de formulaire partiel d'instance répétée change le texte et les attributs de l'élément de template correspondant tout en conservant les éléments sœurs du template inchangés et leur espace de noms XHTML
Un remplacement complet de payload par exData.loadXML réussi fournit son body réellement importé au lieu de refusionner du contenu de template obsolète dans la caption
Les commentaires et instructions de traitement restent dans le XDP enregistré d'origine mais sont omis de la copie de rendu, si bien que leurs payloads ne deviennent jamais du texte de caption visible
La copie de rendu est bornée à 4096 nœuds, profondeur 64, 65536 étapes de travail d'overlay et 1 Mio de XHTML source et sérialisé facturé ; le décodeur natif et les builders d'apparences conservent leurs propres limites de runs, de glyphes et d'octets
Vraies faces de polices et styles
Fournissez CaptionFontFamilies pour de véritables programmes regular, bold, italic et bold-italic et des familles nommées
Le décodeur XHTML natif existant résout les styles inline, les frontières de paragraphes, les listes de familles, les couleurs, les tailles, le souligné et le barré ; la taille, la graisse, la posture, le typeface et la couleur de remplissage de la police de caption scalaire fournissent le style par défaut
Une face ou un glyphe demandé manquant fait échouer la préparation ; ce consommateur ne fabrique pas d'apparences bold ou italic artificielles et ne découvre pas de polices externes
Mesure et placement
La mesure et le dessin des captions utilisent la même mise en page riche native et les mêmes programmes de polices fournis, y compris les avances réelles de glyphes, l'ascendante et la descendante spécifiques au style, les baselines de ligne communes et le retour à la ligne
Un reserve left ou right fixe contraint la largeur du texte ; un reserve top ou bottom positif permet le retour à la ligne dans la largeur de champ disponible
Un reserve omis, zéro ou la valeur par défaut du schéma -1 utilise l'étendue naturelle de la caption sans retour à la ligne automatique ; les frontières de paragraphes explicites restent des sauts de ligne, et le texte dépassant un rectangle de champ fixe est rogné
Les captions left et right automatiques utilisent leur largeur naturelle ; les captions inline ignorent un reserve explicite aussi bien pendant la mesure que pendant le placement
Les marges de caption réduisent la région de texte réelle, et les alignements horizontal et vertical de la caption contrôlent le placement d'apparence résultant
Le comportement du reserve suit la définition du reserve de caption de XFA 3.3
La hauteur naturelle inclut l'étendue de ligne finale des métriques de police plus le padding natif de deux points de chaque côté ; elle exclut l'interlignage final inutilisé après la dernière ligne
Les captions hidden et inactive ne consomment aucune région ; les captions invisible réservent leur région mesurée sans dessiner ni facturer de glyphes de caption
Un véritable Form de caption est partagé entre les états off, on et neutral d'un même widget ; les instances répétées conservent des graphes de contenu et de style indépendants
Les marges de paragraphe et le CSS line-height personnalisé, les images de captions et les autres payloads de captions non textuels, les captions riches de push-button et la reconstruction ultérieure d'apparences interactives conservent un travail de consommateur séparé
Transactions et acceptation
Un événement de propriété natif réussi peut être enregistré et rechargé avant la création automatique du PDF ; un échec de script restaure les octets XML natifs exacts, et les échecs de budget de préparation ou d'annulation préservent les octets, la longueur et la position de destination
Les écritures vers la destination ne commencent qu'après le succès du candidat complet ; une erreur provenant de l'écriture du stream de l'appelant suit la sémantique de ce stream et ne peut pas être annulée pour une destination arbitraire non seekable
Tests/Linux/XFAHeadlessRichCaptionTests.pas produit de véritables PDF de captions stylées, renvoyées à la ligne, avec familles sélectionnées et non visibles ; XFAHeadlessRichCaptionRuntimeTests.pas couvre les overlays répétés, le remplacement XML complet et le rollback
XFAHeadlessRichCaptionBudgetTests.pas exerce de véritables échecs de ressources et des frontières d'annulation sélectionnées, tandis que HeadlessTextExtentTests.pas expose les étendues de lignes natives mesurées
Verify-XFAHeadlessRichCaptions.py inspecte les graphes PDF enregistrés, les octets exacts des programmes de polices fournis, les références partagées, le texte Unicode, les matrices de texte brutes, les métriques fontTools et les pixels rendus par MuPDF sans ouvrir d'UI de lecteur
TextHeight en lecture seule · Métadonnées de callbacks Booléens · Marqueurs et états Booléens