abracadabraPDF › Forums › PDF – Général › Menu déroulant de navigation rapide
- Ce sujet est vide.
-
CréateurSujet
-
10 janvier 2014 à 10:28 #44755bubuMembre
Bonjour
Je veux faire un menu déroulant permettant d’atteindre n’importe quelle page du document (voir pdf ci-joint).
Ce menu doit apparaître quand on passe le curseur sur le pictogramme et disparaître quand on choisit la rubrique et ça pour toutes les pages
du document (je sais que l’on peut créer des signets dans Indesign mais le gros menu sur la gauche, n’est pas esthétique et occupe une trop grande partie de la mise en page).
Contraintes impératives : ce pdf interactif doit fonctionner sans connexion Internet et sous toutes les plateformes, y compris sur tablette tactile (donc pas de Flash…).
Est-ce faisable facilement sous Indesign ou directement dans pdf ? Faut-il forcément passer par du Java Script (je ne suis pas développeur) ?
Pour info, j’ai trouvé sur votre site ce pdf, ça ressemble à ce que je veux faire, mais est-ce applicable pour ma problématique ? Il y a du code Java ?Dans l’attente de votre réponse.
Merci
Bubu
[attachment deleted by admin]
-
CréateurSujet
-
AuteurRéponses
-
10 janvier 2014 à 10:54 #56478MerlinMaître des clés
Bonjour et bienvenue,
Je n’ai pas mieux comme exemple.
Il colle a tous tes prérequis sauf un : ça ne fonctionnera pas sur les mobiles car il utilise JavaScript.Mais tout bien réfléchi ce n’est pas vraiment un problème puisque les lecteurs de PDF pour mobiles, à commencer par Adobe Reader, affichent les signets (la table des matières) d’une façon complètement différente, dans un menu popup (un peu comme celui que tu veux faire) ou bien dans une demi-fenêtre à tiroir.
:idee: :Smiley01:
10 janvier 2014 à 11:18 #56479MerlinMaître des clésPour info, j’ai trouvé sur votre site ce pdf
Où l’as tu trouvé ?
Sur le forum ou sur le site ?10 janvier 2014 à 16:47 #56480bubuMembreMerci pour ta réponse super rapide.
Donc, pour résumer, ce type de menu déroulant est réalisable, il faut juste trouver une personne qui connait le Java script (un contact et un ordre de prix à me communiquer, peut-être ?), j’ai oublié de préciser qu’il faudra, je pense, modifier le code à chaque fois car ce pdf sera traduit en 5 langues différentes.
Concernant ton pdf, je l’ai trouvé sur le forum : http://abracadabrapdf.net/forum/index.php?topic=1925.011 janvier 2014 à 00:32 #56481MerlinMaître des clésC’est gratuit et encore plus simple que ça : il te suffit de copier-coller le bouton du fichier d’exemple dans ton document, de modifier éventuellement son aspect, et ensuite de le dupliquer sur toutes les pages.
Il n’y a rien à programmer puisque, comme indiqué dans le sujet que tu cites, ce bouton ne fait que refléter très exactement la structure des signets (à soigner).
Signets que l’on utilise donc indirectement, sans devoir afficher le panneau correspondant.:Smiley01:
14 janvier 2014 à 21:31 #56482bubuMembreBonsoir
Tant mieux si c’est facile et que je peux le faire tout seul. Par contre, je vais paraitre bête, mais j’ai bien fait le copier/coller du bouton dans mon pdf mais pourquoi le menu déroulant (page 1, page 2, page 3…) n’apparaît pas ? Il faut créer des signets ?15 janvier 2014 à 10:45 #56483MerlinMaître des clésOui, ce bouton ne fait que reprendre la structure des signets.
Pas de signet : pas de menu !:Smiley15:
16 janvier 2014 à 09:41 #56484bubuMembreMerci, ça fonctionne, je ne suis pas certain d’avoir utilisé la bonne méthode, voici ma procédure : j’ai créé mes signets et modifié dans Propriétés du signet/Actions/Action” leur page de destination, puis ensuite, j’ai copié le bouton (table des matières) de ton pdf en modifiant son aspect graphique et enfin copié/collé ton script JavaScript dans Outils/JavaScript/Scripts JavaScript du document, et j’ai enfin copié/collé le bouton au même emplacement sur chaque page (pour info, j’ai dû replacer le bouton manuellement en me calant sur les règles, je n’ai pas trouvé l’option dans pdf comme dans Indesign “collé en place”, est-ce que ça existe ?
Pour cette version Française, c’est ok, j’ai voulu ensuite décliner mon document en version anglaise et là, problème, je pensais qu’en changeant le texte de mes signets cela modifierais automatiquement mon menu déroulant, mais à partir du moment où j’ai touché aux textes des signets, mon menu déroulant à disparu, j’ai bien essayé d’effacer le script et de le copier à nouveau mais aucun changement, pourquoi ?
Enfin, un détail graphique, est-il possible de modifier facilement la couleur Bleu de sélection du menu déroulant en Orange clair ?
Dans l’attente de tes précisions.16 janvier 2014 à 11:37 #56485MerlinMaître des clés– Pour pas que ça rame à chaque clic, les signets sont analysés à l’ouverture du document. Ce qui signifie que toute modification des signets requiert une fermeture-ouverture du document pour être reportée dans le bouton.
– Pour dupliquer un champ de formulaire sur toutes les pages : Clic-droit sur le champ : Dupliquer sur toutes les pages.
– Le copier-coller sur place est justement l’objet de mon dernier article : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/coller-sur-place/
Si on n’a pas Acrobat XI on peut utiliser une vieille technique des Sioux de la PAO qui consiste à : placer un champ supplémentaire dans le coin en haut à gauche* de la page, copier ce champ en même temps que les autres, coller les champs sur la nouvelle page, les déplacer en haut à gauche, et effacer le champ supplémentaire.:Smiley15:
* On peut lui préférer n’importe quel autre coin…
:Smiley03:16 janvier 2014 à 15:04 #56486bubuMembreOk, je viens d’essayer plusieurs fois de fermer et ouvrir le document mais les signets ne sont pas reportés dans le bouton, dommage !
Et concernant la couleur bleue à changer en orange dans le menu déroulant, c’est faisable et facile à faire ?Merci pour l
16 janvier 2014 à 18:54 #56487MerlinMaître des clésPeux tu faire passer (tout ou partie de) ton document ?
:Euuuh:17 janvier 2014 à 12:46 #56488bubuMembreAutant pour moi, ça fonctionne quand j’enregistre mon pdf sous un autre nom, ça me va bien comme ça !
Je peaufine mon doc et j’aimerais supprimer l’effet relief du bouton en haut à gauche, je ne veux garder que la fonction de ton bouton et ne laisser apparaitre que mon picto (cf. mon doc pdf en partie, sinon trop lourd), je n’ai pas trouvé l’option. J’ai bien essayé de camoufler avec des blocs blancs mais je n’arrive pas à les passer en premier plan par dessus le bouton ?
Et puis, j’aimerais pourvoir éventuellement changer la couleur bleu en orange du menu déroulant ?[attachment deleted by admin]
17 janvier 2014 à 13:11 #56489MerlinMaître des clésJe peaufine mon doc et j’aimerais supprimer l’effet relief du bouton en haut à gauche
C’est une tare qu’Acrobat traine depuis toujours : dans les Propriétés : Aspect du champ il faut lui attribuer une couleur de contour, ce qui permet d’activer l’attribut Style de trait qu’il faut mettre sur Plein (au lieu de Biseauté), ensuite on peut remettre le contour sur Transparent…
:geek:Et puis, j’aimerais pourvoir éventuellement changer la couleur bleu en orange du menu déroulant ?
Ca c’est dépendant du système, sur Mac c’est dans les “Préférences Système : Général”, sur Windows c’est dans les “Panneaux de contrôle”.
:Smiley01:17 janvier 2014 à 14:14 #56490bubuMembreC’est parfait, j’attends les retours de mon client.
Grand merci Merlin26 mai 2015 à 10:13 #56491jeanine63000MembreBonjour,
J’ai copié le script du document dans un fichier pdf contenant 28 signets. Quels sont les données du script à modifier pour que cela fonctionne ? (cela fonctionne si j’ai 3 signets mais pas quand j’en rajoute un 4ème).
function searchBookmarks(bkm, nLevel, bkmName)
{
if ( bkm.name == bkmName ) {return bkm;}
if (bkm.children != null)
{
for (var i = 0; i < bkm.children.length; i++)
{
var bkMark = searchBookmarks(bkm.children, nLevel + 1, bkmName);
if ( bkMark != null ) {break;}
}
return bkMark;
}
return null;
}
/*****************************************/
function bookmarksAsPopUp(bookmarks)
{
if(bookmarks && bookmarks.children)
{
for(var i=0;i{
bookmarkName = bookmarks.children.name.replace(/s{2,}/g,’ ‘);
while (bookmarkName.indexOf(String.fromCharCode(11)) > 0)
{
bookmarkName = bookmarkName.substring(0,bookmarkName.indexOf(String.fromCharCode(11))) +” “+ bookmarkName.substring(bookmarkName.indexOf(String.fromCharCode(11))+1)
}
popUp = popUp+”{cName: ‘”+bookmarkName+”‘, cReturn: ‘”+bookmarkName+”‘” ;
if(bookmarks.children.children)
{
popUp = popUp + “, oSubMenu: [“;
bookmarksAsPopUp(bookmarks.children);
popUp = popUp + “]”;
}
popUp = popUp+”}”;
if (i != bookmarks.children.length-1)
{popUp = popUp+”, “}
}
}
return popUp;Merci.
26 mai 2015 à 10:36 #56492MerlinMaître des clésBonjour.
Tu devrais essayer de directement copier-coller le bouton présent dans cet exemple : http://abracadabrapdf.net/forum/index.php?action=dlattach;topic=1925.0;attach=1019
Il n’y a rien d’autre à modifier, il n’y a pas de raison pour que ça ne fonctionne pas.26 mai 2015 à 11:38 #56493jeanine63000MembreJ’ai copié les 2 scripts de document et j’ai fait un copié collé du bouton table des matières.
La console dit qu’il y a ce problème :Fonctions de débogage de scripts JavaScript Acrobat v.10.0
Fonctions intégrées d’Acrobat EScript v.10.0
Acrobat SOAP 10.0
Exception à la ligne 3 de la fonction top_level, script Field:Mouse Up
SyntaxError: missing } after property list
3:Field:Mouse UpException à la ligne 3 de la fonction top_level, script Field:Mouse Up
SyntaxError: missing } after property list
3:Field:Mouse Up26 mai 2015 à 12:25 #56494MerlinMaître des clésCa c’est du Acrobat 10 tout craché… :mur: :oh:
Essayes ça :
1- copie-colle le bouton dans ton document (ne clique pas dessus)
2- dans ton document tu vas importer le document cité ci-dessus : panneau des vignettes : Importer des pages.
3- tu supprimes la page importée immédiatement (pour ne pas oublier).
4- C’est terminé.2 et 3 on pour effet d’importer les Scripts de document de l’exemple dans ton document à toi, sans devoir passer par les boites de validation (foireuses) d’Acrobat X.
:Smiley03:26 mai 2015 à 13:20 #56495jeanine63000MembreJe viens de faire comme dit, mais ça ne fonctionne toujours pas. Est-ce que je peux vous envoyer le document ailleurs que sur le site (car il y a des photos) ?
26 mai 2015 à 13:27 #56496MerlinMaître des clésVoir MP
27 mai 2015 à 06:56 #56497jeanine63000MembreOK envoyé par mail
27 mai 2015 à 08:47 #56498MerlinMaître des clésBien reçu.
Soit il y a une évidence qui me crève les yeux et que je ne vois pas, soit c’est un bug mystérieux. :Euuuh: :oh:
Le script du document d’exemple fonctionne avec tous les documents (j’en ai encore testé plusieurs) sauf le tien !Je l’ai optimisé, nettoyé, et tout : rien à faire.
Acrobat DC accepte les scripts sans broncher (pas d’erreur de syntaxe signalée) mais le bouton n’affiche rien.
C’est à se taper la tête par terre. :mur:Je soupçonne que quelque chose dans les libellés des signets ne doit plaire à JavaScript… Mais quoi ? :doute:
J’ai cherché un peu mais je n’ai pas trouvé…
:joker:27 mai 2015 à 19:01 #56499jeanine63000MembreBon, que dire ?
J’ai pensé faire un truc demain : insérer mon fichier dans celui qui provient d’abracadabraPDF et qui contient une version qui fonctionne, et voir ce qui se passe.
(dans la journée, j’ai vu que j’avais oublié de mettre le script de numérotation de page dans chaque signet, mais cela n’a quand même pas fonctionné !)
27 mai 2015 à 19:56 #56500MerlinMaître des clésEssaye en supprimant tous les signets et en en recréant quelques uns avec des noms basiques… Pour (sa)voir.
:priere:28 mai 2015 à 07:51 #56501jeanine63000MembreEurêka : je crois avoir trouvé :soleil:
Le nom que l’on met dans le signet ne doit pas comporter de ‘
Par exemple : il faut indiquer Traitement eau et non pas Traitement d‘eau28 mai 2015 à 07:56 #56502MerlinMaître des clésGagné !
:bravo:J’avais fait une tentative en retirant les slash et les deux points, mais ce n’était pas ça.
:geek:28 mai 2015 à 08:01 #56503jeanine63000MembreJe vais enfin pouvoir avancer sur ce document… en espérant que rien d’autre ne vienne perturber le bon fonctionnement.
28 mai 2015 à 14:13 #56504MerlinMaître des clésD’ailleurs le monde est petit.
Je travaille en ce moment à faire des PDF pour une autre filiale du Groupe*.
:Smiley15:* Qui vient de changer de nom et de logo, tu vas pouvoir tout refaire…
:extra:11 juin 2015 à 09:16 #56505jeanine63000MembreTout refaire, peut-être pas, il suffit de supprimer le logo dans le PDF et de rajouter le nouveau ??
11 juin 2015 à 18:18 #56506MerlinMaître des clésOui, bien sur.
“Tout refaire” : je voulais dire tous les documents qui utilisent l’ancienne charte graphique.
:Smiley03: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.