Styles Booléens et captions XFA automatiques
Unités : HPDFXFA et HPDFXFAHeadless
HPDFXFAWriteHeadlessPDF consomme les propriétés checkButton effectives et crée des appearance streams natifs de checkbox et radio depuis la mise en page XFA réelle
Marqueurs et contours
La taille du checkButton vaut par défaut 10pt et contrôle la région carrée du marqueur dans la région de contenu du champ ; les mesures de taille explicites, les marges de champ et d'UI, et l'alignement horizontal et vertical du paragraphe déterminent sa position
Les formes square et round déterminent le contour ; le marqueur asserté par défaut est une croix pour un contour carré et un cercle plein pour un contour rond, conformément à la spécification checkButton de XFA 3.3
Les marques check, circle, cross, diamond, square et star explicites utilisent de véritables chemins vectoriels ; elles ne dépendent pas de la présence d'un symbole de case à cocher dans la police fournie
Le premier edge de bordure UI fournit son épaisseur, sa couleur et sa visibilité ; le contour par défaut est noir et large de 0.5pt, tandis que la couleur effective de police du champ fournit la couleur du marqueur asserté
Le marqueur se réduit à la région de contenu restante quand sa taille configurée dépasse cette région ; une caption ou une marge qui ne laisse aucune région de contenu fait échouer la préparation du candidat
Captions Unicode scalaires
Le texte de caption scalaire conserve exactement l'Unicode et les délimiteurs et devient un véritable Form XObject à police embarquée référencé depuis chaque apparence off, on et neutral de ce widget
La caption partage une seule apparence et un seul graphe de polices entre ses états, et ses unités UTF-16 sont comptées une fois par widget dans TXFAHeadlessPDFResult.GlyphUnits
Left et right réservent une largeur de caption, tandis que top et bottom réservent une hauteur ; un reserve omis ou nul utilise les avances de glyphes réelles et les métriques de ligne de la police fournie pour calculer l'étendue naturelle de la caption
Les captions inline précèdent le marqueur et ignorent un reserve explicite ; les marges de caption insèrent le texte en retrait dans sa région allouée
Une taille de police et une couleur de remplissage de caption priment sur la taille et la couleur du champ ; l'alignement de paragraphe de la caption prime sur l'alignement du champ, tandis que CaptionFontFamilies peut fournir de véritables faces de styles et familles nommées
Les captions hidden et inactive n'occupent aucune région et n'allouent aucun graphe de polices ; les captions invisible conservent leur région sans peindre ni allouer de glyphes de caption
Le consommateur de captions riches consomme en outre le XHTML effectif, les véritables faces de styles configurées et la sélection de familles, les métriques de ligne mixtes et les hauteurs de captions renvoyées à la ligne
Troisièmes états de checkbox
Quand allowNeutral est activé, le troisième élément enregistré est l'export neutral de la checkbox ; les valeurs correspondantes conservent un /V natif distinct et un /AS de widget avec leur propre entrée /AP /N
L'apparence neutral dessine le contour vide et la même caption ; elle ne dessine pas le marqueur asserté
Le tableau /Opt de la checkbox conserve une entrée d'export on pour son widget unique, comme l'exige le modèle de champs de boutons PDF ; un troisième état d'apparence enregistré n'ajoute pas une seconde option de widget
Les exports vides, le nom réservé Off et les noms commençant par XFAOn reçoivent des alias d'états natifs sans collision, utilisant leurs octets UTF-8 en hexadécimal majuscule après XFAOn ; le troisième export d'origine peut être récupéré depuis son nom d'état enregistré
Un membre radio ignore un troisième élément et conserve son dictionnaire d'apparences à deux états existant et son identité de groupe de scope template/data
L'adapteur persiste le graphe d'états initial ; une opération native ultérieure d'édition de bouton de l'application a son propre contrat d'états et d'apparences
Propriétés d'instances natives et transactions
Les valeurs par défaut size, shape, mark et allowNeutral du checkButton sont disponibles via le schéma natif du runtime ; les propriétés border et margin de checkButton absentes peuvent être créées via la transaction de propriétés existante
Les propriétés effectives checkButton, caption, font et margin d'instances répétées survivent à SaveToBytes et contrôlent immédiatement le widget PDF automatiquement créé correspondant ; la première instance répétée conserve ses propriétés indépendantes
Le source d'événement UTF-8 littéral et les valeurs de binding Unicode conservent leurs scalaires avant la conversion du XDP enregistré, y compris le texte de caption modifié par un événement JavaScript natif ; voir HPDFXFAExecuteJavaScriptEvent
Un échec de script restaure le XML natif exact avant la création, et les échecs de préparation préservent la position, la longueur et les octets de destination ; les budgets de glyphes, d'objets et de polices ainsi que l'annulation conservent la frontière transactionnelle du créateur automatique
Sources d'acceptation
Tests/Linux/XFAHeadlessBooleanStylesTests.pas produit de véritables paires de marques, captions, états neutral et réservés, changements de script d'instances répétées et cas de rollback sans UI de lecteur
Tests/Linux/Verify-XFAHeadlessBooleanStyles.py vérifie les véritables dictionnaires d'états enregistrés, les ressources de polices partagées, le placement des captions, le texte Unicode et les pixels de marqueurs distincts avec pypdf et MuPDF
Les métadonnées de callbacks Booléens décrivent les indications de transport additives consommées par le créateur natif