Un dessin fait une fois, montré par un bouton
Décrire un dessin sous un nom, avec des traits et des formes, pour qu'un bouton de formulaire l'affiche comme icône.
Résumé
Un bouton sur lequel on clique est plus parlant avec un petit dessin dessus qu'avec un mot : une coche verte, une flèche, une croix. Le motif est calculé à partir de traits et de formes plutôt que photographié, donc il reste net que le bouton fasse la taille d'un timbre ou celle d'une carte postale.
Techniquement
Écrit au premier niveau d'une requête, sous
"drawings"
drawings déclare les dessins que le document définit pour lui-même, chacun comme un XObject de forme avec ses propres /BBox et /Matrix, sous le nom par lequel l'icône d'un bouton le désigne. Un dessin tient les mêmes éléments qu'une page — un tracé, un rectangle, un trait, un bloc de texte — disposés dans un espace à lui plutôt que sur une feuille. Rien de neuf n'y est inventé : ce sont les éléments que le schéma a déjà. Il est écrit une fois dans le fichier et peint par son nom, quel que soit le nombre de fois qu'il est montré. Un dessin déclaré ici est posé sur une page par un élément drawing, et montré comme icône d'un bouton par son nom.
Schéma de la requête
-
drawings— tableau, facultatif, vide par défaut. -
drawings[].name— chaîne, obligatoire. Le nom sous lequel une icône le montre. Un nom déclaré deux fois garde le dernier. -
drawings[].box— objet, obligatoire. La zone de l'espace du dessin qui est gardée :llx,lly,urx,ury, des nombres, tous obligatoires. Rien en dehors n'est dessiné. -
drawings[].items— tableau, obligatoire. Les formes qui le composent, dans l'ordre du tracé. Quatre sortes :path,rect,line,text. -
drawings[].matrix— tableau de six nombres, facultatif. Ce que vaut l'espace propre du dessin dans l'espace où il est montré. Absent, il est montré tel qu'il a été dessiné. -
Un élément d'un dessin qui déclare
pages,layer,idourelative_toest refusé : un dessin n'est pas sur une page, et ses coordonnées ne nomment aucune variable de page. - Une image et un code sont prévus pour une version future à l'intérieur d'un dessin : un dessin n'a pas accès aux images de la requête.
-
Le bouton qui le montre est un élément
push_button, par sa cléicon,rollover_iconoudown_icon, avecicon_fitpour le cadrage etlayoutpour la place du libellé.
Une requête entière qui crée un PDF
{
"drawings": [
{
"name": "tick",
"box": { "llx": 0, "lly": 0, "urx": 20, "ury": 20 },
"items": [
{
"type": "line",
"from": { "x": 3, "y": 10 },
"to": { "x": 8, "y": 4 },
"stroke": { "width": 2, "color": [0.09, 0.42, 0.24] }
},
{
"type": "line",
"from": { "x": 8, "y": 4 },
"to": { "x": 17, "y": 16 },
"stroke": { "width": 2, "color": [0.09, 0.42, 0.24] }
}
]
}
],
"standard_fonts": [{ "name": "sans", "face": "helvetica" }],
"items": [
{
"type": "push_button",
"name": "approve",
"rect": { "llx": 60, "lly": 740, "urx": 84, "ury": 764 },
"font": "sans",
"font_size": 10,
"icon": "tick",
"layout": "icon_only"
}
]
}
Ce qui est dessiné, et comment cela sort
Tout ce qu'on peut dessiner sur une page Le poids du fichier et le temps de calcul La première page, montrée pendant que le reste arrive Les calques que le logiciel de lecture montre ou cache Un nom qui vaut pour plusieurs calques à la fois Les jeux de calques que le logiciel propose Les calques dont le logiciel ne montre qu'un à la fois
Où aller ensuite
Toutes les clés JSON d'une requête, en une page Les quarante et un autres réglages d'une requête