Une zone de la page sur laquelle on clique
Rendre un morceau de page cliquable : il ouvre une adresse web, ou emmène le lecteur à une autre page du même document.
Résumé
Elle est invisible : elle se pose par-dessus ce qui est déjà dessiné, en général sur un texte que vous avez mis en bleu pour qu'on voie qu'il est cliquable. Un saut à l'intérieur du document fonctionne comme un sommaire — le lecteur arrive sur la bonne page sans avoir à la chercher. Sur papier, la feuille reste telle quelle ; à l'écran, cette zone transforme votre document en quelque chose qui se parcourt.
Techniquement
Demandé avec
"type": "link"
Un lien est une annotation /Subtype /Link posée au-dessus des articles déjà dessinés, son /Rect donné en points : il se contente des pages que ces articles ont créées, si bien qu'un lien nommé au-delà de la dernière page reste simplement de côté. Sa destination s'écrit de deux façons : la forme courte, qui dit une adresse ou un numéro de page, ou l'action complète, qui dit en plus la vue à laquelle la page s'ouvre, un repère nommé, une partie du document, un déplacement de lecture, l'envoi et la remise à zéro d'un formulaire, et l'affichage et le masquage des champs qu'elle nomme. Quelle que soit celle qui est écrite, l'annotation contient soit un /Dest, soit une action /A, jamais les deux à la fois : chaque lien dit l'une ou l'autre, ce qui garde une seule lecture possible.
Schéma de la requête
Clé obligatoire : rect. Exactement une clé de cible : to, valant soit {"uri": "address"}, soit {"page": n} avec n ≥ 1 ; ou action, valant {"uri": …} (une chaîne, ou un objet à uri obligatoire et track_pointer, false par défaut), {"page": …} (un entier ≥ 1, ou un objet à page obligatoire et fit, "whole_page" par défaut), {"destination": "name"}, {"part": n} avec n ≥ 1, {"menu_item": …} valant next_page, previous_page, first_page ou last_page, {"transition": {"effect": …, "seconds": …}}, qui affiche la zone de la page telle que l'action précédente l'a laissée, en la faisant apparaître par cette transition, et prend les mêmes effect et seconds qu'une page, {"reset_fields": {"fields": …}}, {"submit_fields": {…}} avec un url obligatoire, un fields facultatif et un format (par défaut {"fdf": {"with_no_value": false}}, également {"html": {"get": …, "with_click": …}}, "xfdf" et {"whole_document": {"get": …}}), {"import_fields": {"file": "name"}}, {"show": ["field", …]} ou {"hide": ["field", …]}. Un ensemble de champs s'écrit {"only": …} ou {"all_but": …} ; absent, il désigne le formulaire entier. show ramène à la vue les champs nommés et hide les en retire, chaque nom étant celui sous lequel un champ rapporte sa réponse, tous les champs placés sous lui suivant avec lui ; un nom que le document ne contient pas est refusé, et un champ retiré de la vue garde sa réponse, qu'un formulaire envoyé contient. Dans part, n est un numéro de page et non le rang d'une partie : le lecteur est mené à la partie qui réclame la page n, et une page qu'aucune partie ne réclame est refusée. Facultatives : highlight, ce que montre le logiciel de lecture tant que le pointeur reste enfoncé dessus, valant none, invert, outline ou push ; absent, la chose est laissée au logiciel de lecture. over, un tableau de quadrilatères, chacun quatre coins [x, y] dans le sens inverse des aiguilles d'une montre à partir de celui où commence son bord inférieur, les morceaux de page sur lesquels il est cliquable ; absent, son rectangle en tient lieu tout entier, ce qui suffit à une phrase tenant sur une ligne. description, une chaîne, ce vers quoi le lien mène, dit en mots ; border, l'encadrement tracé autour de lui, absent n'en traçant aucun ; layer, le nom d'un calque déclaré. pages, un tableau d'entiers comptés à partir de 1, vide par défaut. Refus croisés : to avec action ; ni l'un ni l'autre ; une page hors du document.
Une requête entière qui crée un PDF
{
"standard_fonts": [{"name": "sans", "face": "helvetica"}],
"items": [
{
"type": "text",
"rect": {"llx": 72, "lly": 740, "urx": 300, "ury": 760},
"content": ["Visit hqf-pdf.com"],
"font": "sans",
"font_size": 14,
"color": [0.11, 0.31, 0.55]
},
{
"type": "link",
"rect": {"llx": 72, "lly": 740, "urx": 300, "ury": 760},
"to": {"uri": "https://hqf-pdf.com/"},
"border": { "solid": { "color": [0.11, 0.31, 0.55], "width": 0.5 } },
"highlight": "invert"
},
{
"type": "text",
"rect": {"llx": 72, "lly": 700, "urx": 300, "ury": 720},
"content": ["Read on"],
"font": "sans",
"font_size": 14,
"color": [0.11, 0.31, 0.55]
},
{
"type": "link",
"rect": {"llx": 72, "lly": 700, "urx": 300, "ury": 720},
"action": {"menu_item": "next_page"}
},
{
"type": "text",
"rect": {"llx": 72, "lly": 740, "urx": 300, "ury": 760},
"content": ["The page the move lands on"],
"font": "sans",
"font_size": 14,
"pages": [2]
}
]
}
Où aller ensuite
Toutes les clés JSON d'une requête, en une page Les vingt-deux autres choses que l'on peut dessiner