Repli de familles fournies pour les champs scalaires
Les champs de texte ordinaires, cellules comb, étiquettes d'affichage de choix, marques de cases à cocher et boutons radio, masques de mot de passe et légendes de boutons poussoirs natifs peuvent utiliser les mêmes familles de polices explicitement fournies que le texte enrichi, sans modifier leurs métadonnées de formulaire scalaires
Fournissez une à seize étiquettes configurées distinctes et leurs programmes TrueType réguliers, puis activez FallbackFontFamilies ; la sélection couvre des graphèmes complets et n'utilise pas les polices système installées
Le retour à la ligne brut existant, l'espacement, le shaping, le bidi, le clipping, la rotation, le dimensionnement automatique, les lignes de liste sélectionnées et le comportement d'état d'export restent actifs ; les champs comb mixtes gardent les restrictions scalaires de cellules d'origine et n'acceptent pas le shaping complexe que le profil comb d'origine rejette
Les apparences brutes mixtes peuvent contenir des formulaires enfants et plusieurs polices embarquées réelles, consommez donc le nombre d'objets retourné au lieu de supposer une apparence fixe à sept objets
Transport JSON et callbacks Windows
{
"schemaVersion": 1,
"type": "forms.fill",
"fontFamilies": ["Primary", "Serif", "Sans"],
"fallbackFontFamilies": true,
"fields": [
{"name": "Plain", "value": "A\u03a9"},
{"name": "Check", "value": "Yes"}
]
}
Pour les jobs Windows, fournissez le fichier de police régulier de chaque famille configurée via l'objet fonts existant ; pour hpdf_document_execute_json_v1, retournez son programme régulier réel via le callback de polices versionné et l'extension IO existants
Un repli nommé explicite route un remplissage purement scalaire par la même transaction de candidats authentifiée que les runs typés mixtes ; les opérations scalaires seules demandent des faces candidates régulières et retournent typedRichText=false avec scalarFamilyProfile="supplied-regular-fonts-v1"
Les imports scalaires FDF et XFDF empruntent le même chemin de familles fournies pour le texte, les choix, les cases à cocher et les boutons radio ; les légendes de boutons poussoirs utilisent l'API de légendes native et ne sont pas importées comme états d'export scalaires de boutons
Les imports et remplissages scalaires Windows à valeur identique gardent leur contrat no-op à valeur seule existant et préservent des octets commis exacts, champs en lecture seule compris ; ils ne comparent pas une nouvelle configuration de police ou de couleur avec l'AP existante, utilisez donc un setter de famille natif pour une reconstruction explicite de l'apparence
Les runs riches typés d'origine gardent leur comparaison de style et d'apparence existante ; ajouter le repli scalaire ne quantifie ni les tailles ni les couleurs typées et ne change pas le RV rédigé
Les callbacks PDF et de résultat doivent tous deux réussir avant qu'une mise à jour de contexte ne devienne visible ; erreurs de police et d'IO persistantes, annulation, budgets, authentification de chiffrement et politiques de signatures préservent le graphe commis et la sortie de fichier atomique
Un choix mono-sélection effacé stocke /V null et un tableau d'index vide ; une option d'export vide explicitement sélectionnée garde /V () et son index réel, si bien que des effacements répétés et des sélections de valeur vide restent distincts
Un choix legacy vierge sans index sélectionné ni option d'export vide peut être reconnu comme un no-op à valeur seule ; un choix en lecture seule avec un vrai export vide sélectionné ne peut pas être effacé
Transport JSON et callbacks Linux natif
Les opérations Linux versionnées acceptent les mêmes options ordonnées fontFamilies et fallbackFontFamilies ; les programmes réguliers sont résolus via l'environnement Fontconfig de l'opération et fournis aux API natives d'apparences de familles
Le texte scalaire, les cellules comb, les étiquettes de choix, les marques de cases et boutons radio, les masques de mot de passe, les champs de sélection de fichiers et les légendes explicites de boutons poussoirs utilisent une vraie couverture de graphèmes complets ; les imports FDF/XFDF scalaires chargent des candidats réguliers sans ajouter de drapeau ni de RV de texte enrichi rédigé
Les imports riches seuls gardent leur union de styles réellement requise au lieu de demander la face régulière de chaque famille, tandis que les imports mixtes scalaires et riches ajoutent les candidats réguliers exigés par les champs scalaires
Les imports par callbacks Linux préservent des octets commis exacts pour les effacements répétés et les no-ops à valeur identique ; les politiques authentifiées AES R5/R6, P1/P2/P3 et FieldMDP, l'annulation et les échecs de publication conservent le document précédemment commis
Lancez Tests/Linux/Run-ScalarFontFallbackChecks.sh LIBRARY FIXTURES FONTS OUTPUT contre chaque bibliothèque ABI native fraîchement construite ; Tests/Linux/HeadlessScalarFontFallback.en-us.md décrit les entrées signées authentiques, le catalogue isolé de trois polices et les contrôles indépendants de glyphes/CMS
Reproduire les contrôles de conformité
Les runners Windows publics acceptent des répertoires explicites de sources, de sortie, de polices, de fixtures scalaires, de fixtures d'effacement et de politiques signées authentiques ; ils ne consomment jamais silencieusement un répertoire de preuves privé antérieur
Générez les documents initiaux à quatre champs avec Tests/Linux/Build-HeadlessTypedFormFixtures.py, puis passez son mixed.pdf aux producteurs de fixtures scalaires et d'effacement
python Tests/CABI/BuildScalarFixtures.py work/typed/mixed.pdf work/scalar
python Tests/CABI/BuildScalarClearFixtures.py work/scalar/scalar.pdf work/clear
Fournissez de vrais programmes réguliers nommés primary-0.ttf, DejaVuSerifCondensed.ttf et DejaVuSans.ttf ; le producteur de fixtures de régression Tests/Linux/Build-HeadlessRichFontListFixtures.py prépare le sous-ensemble Primary déterministe et les douze programmes de style réels depuis un répertoire de polices DejaVu fourni par l'appelant
Générez de véritables documents P1, P2, P3 et FieldMDP avec Tests/Linux/Run-HeadlessTypedFormTests-Windows.ps1 et son répertoire d'identité certificat/clé requis ; ses sorties comprennent p1-signed.pdf, p2-signed.pdf, p3-signed.pdf et lock-signed.pdf
Tests/CABI/RunScalarClearNative.ps1 -SourceDirectory Lib -OutputDirectory work/native `
-FontDirectory work/fonts -FixtureDirectory work/scalar `
-ClearFixtureDirectory work/clear -PolicyDirectory work/signed
Tests/CABI/RunScalarClearABI.ps1 -SourceDirectory Lib -OutputDirectory work/abi `
-FontDirectory work/fonts -FixtureDirectory work/scalar `
-ClearFixtureDirectory work/clear -PolicyDirectory work/signed `
-LegacyFixtureDirectory work/typed -LegacyFontDirectory work/legacy-fonts
Les paramètres de régression legacy reprennent les répertoires de fixtures et de polices de formulaires typés Windows existants utilisés par Run-WindowsTypedFormChecks.ps1 ; les nouveaux contrôles scalaires inspectent aussi indépendamment les programmes embarqués réels, les maps CID, les valeurs de formulaire et les ByteRanges signés conservés
Les no-ops DLL Windows préservent des octets commis exacts après le succès des deux callbacks ; les transactions mixtes natives publient aussi les octets source exacts quand toutes les mises à jour sont inchangées et que le graphe n'a pas d'éditions en attente, tandis que les éditions de graphe en attente restent dans la révision préparée même quand le nombre de mises à jour de champs est nul
FDF distingue un tableau de sélection vide d'une chaîne d'export vide sélectionnée ; l'échange de choix XFDF sans perte utilise l'extension empty-values qualifiée par espace de noms pour un effacement explicite, tandis qu'une valeur vide non marquée garde son interprétation d'option cible existante