abracadabraPDF › Forums › PDF – Général › Lien vers un signet
- Ce sujet contient 11 réponses, 3 participants et a été mis à jour pour la dernière fois par
Merlin, le il y a 3 années et 1 mois.
- CréateurSujet
- 25 mai 2021 à 16:05 #46610
Braindead
MembreBonjour à tous,
Question qui semble simple et bête mais pour laquelle je ne trouve pas de réponse :
je voudrais faire un lien non pas vers une page mais vers un signet de mon document. Comme ça si je rajoute des pages le signet sera toujours bon.Et je ne trouve pas comment faire ni via l’interface Acrobat Pro ni via du Javascript…
C’est faisable ? Quelqu’un saurait me donner un exemple ?
Merci !!
- CréateurSujet
- AuteurRéponses
- 26 mai 2021 à 07:50 #69282
MerlinMaître des clésBonjour
Dans le format PDF un signet n’est pas un « marqueur », c’est un hyperlien qui envoie quelque part dans le document.
Du coup il n’est pas possible de faire un lien vers un lien.Pour faire ce que tu veux il faut utiliser les « Destinations », c’est un peu le même principe que les « Ancres » en HTML : on ne pointe pas vers un numéro de page mais vers un marqueur invisible attaché à la page. Ce qui permet de déplacer/ajouter/supprimer des pages sans perdre les liens.
26 mai 2021 à 08:33 #69283Braindead
MembreBonjour Merlin et merci de ta réponse.
En effet les destinations sont bien plus utiles que les signets pour mon cas.Je les aient mises en place par contre je n’arrive pas à pointer dessus par programmation.
OK via l’interface de Acrobat :
« Atteindre une page du document » > « Utiliser la destination existante »Mais comment faire en JS ?
J’utilise ça pour pointer vers une page :Code:this.pageNum = 1Mais je ne trouve pas quelle fonction je dois utiliser pour pointer vers une destination. Tu saurais me dire ?
Merci encore de ton aide !
26 mai 2021 à 08:44 #69284Braindead
Membreje me réponds et si cela peut aider quelqu’un voici la fonction :
Code:this.gotoNamedDest(« DestName »);Merci !
26 mai 2021 à 09:12 #69285
MerlinMaître des clés:bonjour:
24 août 2023 à 15:45 #73151adrith
ParticipantBonjour à tous,
Vraiment puissante la fonction « rechercher » du forum. On retrouve des choses super intéressantes qui datent de plusieurs années 🙂
Néanmoins je complexifie un peu tout ça. Je voulais justement faire des ancres, ou plutôt des destinations, et grâce à ce post ça fonctionne très bien. Sauf que… j’ai des pages modèles et dès que des destinations sont placées sur des pages modèles et que celles-ci sont appelées, alors mes liens vers ces destinations ne fonctionnent plus..
J’en conclu que les destinations sont perdues dès que l’on masque ou affiche une page modèle, c’est bien dommage, mais y a t-il donc un moyen de contourner ou de trouver une autre solution à ce problème ?
Merci pour vos avis.
25 août 2023 à 12:59 #73153
MerlinMaître des clés« J’en conclu que les destinations sont perdues dès que l’on masque ou affiche une page modèle »
Oui, c’est bien ça.
« mais y a t-il donc un moyen de contourner ou de trouver une autre solution à ce problème ? »
Il faut utiliser les numéros de page, ou sinon pour un pointage plus précis on peut envoyer le focus vers un champ, éventuellement masqué.
this.getField("NOMDUCHAMPCIBLE").setFocus();25 août 2023 à 14:58 #73154adrith
Participant« J’en conclu que les destinations sont perdues dès que l’on masque ou affiche une page modèle » Oui, c’est bien ça. « mais y a t-il donc un moyen de contourner ou de trouver une autre solution à ce problème ? » Il faut utiliser les numéros de page, ou sinon pour un pointage plus précis on peut envoyer le focus vers un champ, éventuellement masqué.
this.getField("NOMDUCHAMPCIBLE").setFocus();Oui bien vu cette solution, merci Merlin !
25 août 2023 à 16:28 #73155adrith
ParticipantAlors très bizarre, ça fonctionne encore bien quand les pages ne sont pas « modèles », mais avec les pages modèles, non.
Les champs qui me servent pour le focus deviennent CH1#1 et CH2#1 au lieu de CH1 et CH2. Peut-être c’est à cause de ça. J’ai testé un appel depuis un bouton et depuis un lien mais même constat.
Voici un fichier exemple si vous avez une idée. Les champs text sont placés tout en haut à gauche des pages modèles.
Merci pour l’aide.
Attachments:
You must be logged in to view attached files.26 août 2023 à 09:44 #73157
MerlinMaître des clésQuand il y a plusieurs champs ayant le même nom il faut s’adresser au « widget » et non pas au champ, qui dans ce cas représente plusieurs widgets.
Dans la liste des champs du panneau des outils de formulaire les widgets apparaissent avec leur nom de champ, suivi d’un dièse et suivi d’un numéro d’ordre. Ce numéro d’ordre est attribué lors de la création du widget et n’est pas modifiable.
Dans la capture ci-joint on ne voit pas le widget numéro zéro car il est masqué puisque la page modèle sur laquelle il se trouve est masquée. Si on affiche la page modèle les deux widgets sont visibles dans la liste.
La particularité des widgets c’est qu’on ne peut pas s’adresser à eux directement, il faut impérativement passer par une variable. Sachant aussi que dans les scripts il faut remplacer le dièse par un point.
Ce qui pour tes boutons nous donne les scripts suivants :
var f = this.getField("CH1.1");
f.setFocus();et
var f = this.getField("CH2.1");
f.setFocus();Attachments:
You must be logged in to view attached files.28 août 2023 à 08:59 #73161adrith
ParticipantSuper Merlin, j’aurais appris quelque chose.
Ça fonctionne nickel à présent en passant par une variable et en remplaçant le dièse par un point ! Bravo et merci.
28 août 2023 à 09:42 #73162
MerlinMaître des clés👍
- AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
