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