Apparences par défaut FreeText natives

Le repli FreeText natif applique l'état d'apparence par défaut borné au texte généré, à la mise en page, à l'ajustement automatique et aux décorations

Une apparence normale fournie prime sur la génération à partir de l'apparence par défaut FreeText et du texte enrichi

Opérateurs d'apparence par défaut

OpérateursComportement du repli
TfSélectionne la ressource de police d'origine et la taille du texte ; une taille nulle demande un ajustement automatique borné
g rg kInitialise la couleur de remplissage du texte en gris, RGB ou CMJN
Tc Tw TzApplique l'interlettrage, l'espacement des mots et l'échelle horizontale du texte aux mesures de peinture et de mise en page
Ts TLApplique l'élévation du texte et la séparation explicite de la ligne de base, y compris une interligne nulle ou négative
TmAccepte au plus une matrice ; sa partie linéaire transforme le texte généré, tandis que la mise en page de l'annotation détermine le placement
TrSélectionne les modes de peinture des glyphes et de clipping du texte de zéro à sept
G RG K w J j M dInitialise la couleur de trait, la largeur, les extrémités, les jointures, la limite d'onglet et l'état de tirets pour le texte et les décorations générées

Les opérandes de translation de la matrice sont validés mais ne remplacent pas le placement FreeText dans son rectangle d'annotation

L'échelle horizontale peut être nulle ou négative ; l'élévation, l'espacement et la matrice linéaire participent à la géométrie transformée des glyphes, des avancements et des décorations

Ceci est un profil d'apparence par défaut borné, pas un interpréteur général de flux de contenu PDF ; les opérateurs non pris en charge, les nombres d'opérandes invalides, les valeurs mal formées et les matrices de texte répétées produisent une erreur de rendu

Les composantes de couleur de trait doivent être dans la plage zéro à un, les valeurs d'extrémité et de jointure doivent être des entiers de zéro à deux, la largeur doit être non négative et la limite d'onglet au moins égale à un

Un tableau de tirets peut contenir au plus 256 valeurs finies non négatives et un tableau non vide doit contenir une valeur positive ; un tableau vide sélectionne des traits pleins, un tableau impair se répète et la phase doit être non négative

Mise en page, coupure et placement

L'alignement FreeText utilise les avancements visibles pour le placement à gauche, au centre ou à droite ; les espaces de fin encodés et leurs mappages sources restent présents quand le flux généré conserve ces fragments

La coupure aux frontières de mots et les coupures de paragraphe dures ont des traitements distincts ; une espace insécable ne devient pas un séparateur souple ASCII ordinaire

Le chemin raw-font d'origine conserve ses règles bornées de coupure aux espaces et aux tirets ; cet ensemble d'acceptation n'établit pas tous les cas Unicode de coupure de ligne, bidirectionnels ou de façonnage complexe

Le rectangle physique de l'annotation, les bornes du Form racine et le clipping intérieur restent figés ; les bornes des Forms enfants temporaires prennent en compte la chaîne complète d'ancêtres et de placement

Peinture des glyphes et clipping du texte

TrPeinture des glyphesContribution au clipping
0RemplissageAucune
1TraitAucune
2Remplissage et traitAucune
3Aucune peinture des glyphesAucune
4RemplissageContours des glyphes
5TraitContours des glyphes
6Remplissage et traitContours des glyphes
7Aucune peinture des glyphesContours des glyphes

Les modes quatre à sept accumulent les contours de glyphes entre les runs générés d'un même objet de texte ; le clipping de texte accumulé s'applique après cet objet de texte aux décorations soulignées et barrées générées suivantes

Le clipping utilise les contours des glyphes plutôt que la silhouette élargie du trait ; l'état de peinture reste propre à chaque run et la portée d'état graphique englobante limite la durée de vie du clipping

L'état de trait DA initial est appliqué dans la portée de décoration racine ainsi que dans les portées de texte ; les substitutions par run et les sauvegardes/restaurations d'état graphique conservent leur signification

Les quatre cas de clipping positifs sont une porte d'acceptation distincte avec des apparences à deux runs écrites à la main, des décorations clippées positives et des échantillons blancs hors de l'union des glyphes

Cette porte utilise aussi un témoin de remplissage rectangulaire d'apparence explicite pour tester le clipping de texte du backend ; le témoin ne prétend pas que la génération en cas d'apparence manquante émet le remplissage rectangulaire

La validation lecteur indépendante positive de Tr4 à Tr7 a passé les quatre cas finis à deux runs avec MuPDF 1.28.5 officiel et Poppler, y compris les intérieurs des deux glyphes, les décorations clippées et les échantillons blancs hors de l'union des glyphes

La révision de test distincte en clipping seul utilise Scale4 pour sélectionner des cellules de pixels complètes à partir de points témoins inchangés en espace page ; elle conserve les seuils de couleur d'origine et laisse le rendu normal45 à Scale1

MuPDF 1.28.2 présente un problème de compatibilité des bornes de clipping quand un changement de couleur vide un run avant un run ultérieur dans le même objet de texte ; le run antérieur peut être exclu des bornes de clipping accumulées

La CLI MuPDF 1.28.5 officielle et le Poppler épinglé indépendamment ont accepté ces apparences inchangées ; les versions de lecteurs et les contrôles positifs finis restent distincts d'une garantie pour chaque chaîne de rendu

Ajustement automatique

Une taille de police DA nulle démarre une recherche bornée de réduction et de raffinement à partir de la mise en page générée initiale, en utilisant les contours de glyphes transformés, les avancements et les décorations plutôt qu'une simple hauteur de ligne non transformée

L'expansion du trait inclut le support transformé conservateur des coins à extrémités carrées tiretés et des jointures à onglet

La recherche conserve la quantification de chemins Cairo et FreeType établie ; elle ne promet ni la taille de police idéale mathématiquement maximale ni un hinting identique entre les lecteurs

Si aucun essai n'entre avant que la recherche bornée n'atteigne son minimum, le clipping physique borne toujours la publication ; un contenu très long n'est pas garanti de rester entièrement visible

Polices d'origine et limites de ressources

Le repli Type1C, CIDFontType0C et Type1 brut incorporé d'origine est déjà pris en charge ; les chemins d'apparence complets OpenType CFF et CFF2 d'instance par défaut conservent leurs règles documentées de mappage et d'incorporation

Les flux CFF2 bruts autonomes et la sélection de coordonnées de variation non par défaut restent hors du chemin CFF2 publié

Les limites de jetons, d'objets, de mémoire de travail, d'opérations, de données décodées et de sortie s'appliquent à l'analyse, aux ressources temporaires, à l'ajustement et à la publication ; l'annulation est interrogée pendant le travail borné

Un échec préserve le graphe source et permet une récupération dans le même document ; atteindre une limite ne transforme pas une apparence partiellement générée en résultat réussi

Acceptation reproductible et frontières restantes

La suite publique est Tests/Linux/AnnotationDefaultAppearance/RunAnnotationDefaultAppearance.py, distribuée avec ses ressources et un manifeste d'archive complet

Son mode normal exécute 45 paires candidat/AP-manuscrits à différence de canal maximale deux, sept groupes de limites d'origine et une géométrie continue indépendante d'AP d'origine à epsilon 1e-6

Les rendus positifs de lecteurs d'AP d'origine et les observations verticales connues de cellules de pixels sont enregistrés séparément de la géométrie continue ; ni l'égalité des paires ni ces observations finies ne prouvent une géométrie arbitraire de candidats générés ou des enveloppes raster transformées arbitraires

Le mode AP fini vérifie six contrôles affines et de tirets conservés d'apparence explicite ; il ne remplace ni l'acceptation normale, ni les vérifications de candidats générés, ni les tests de limites

Les 45 apparences générées conservées ont passé une géométrie continue indépendante à epsilon 1e-6 ; leurs 90 images de lecteurs MuPDF et Poppler épinglées ont aussi passé un modèle indépendant d'image complète sur les 3 168 000 cellules de pixels avec différence de canal maximale zéro, aucune image ignorée et aucune cellule exclue

Ce modèle fini dérive les glyphes attendus, les transformations, le clipping, les traits et la composition des apparences manuscrites d'origine et des contours de polices, en utilisant le noyau FreeType épinglé de chaque lecteur ; il n'apprend pas les pixels attendus à partir des images observées

La différence de canal maximale d'origine reste deux et le seuil d'encre reste 245 ; ces réussites couvrent le corpus conservé et les chaînes épinglées, pas des polices arbitraires, toutes les versions de moteurs de rendu ni une preuve de la taille ajustée mathématiquement maximale

Les cibles FPC Linux et Windows exigent FPC 3.3.1 ou ultérieur ; le FPC Windows utilise une construction de dépendances NoGUI privée séparément vérifiée et aucun lancement de lecteur de bureau

Sujets liés : repli d'annotations, décorations d'annotations, espacement des runs de texte enrichi, apparences raw-font d'origine et apparences OpenType CFF2 d'instance par défaut