Donnez vie à vos documents numériques !
 

Menu déroulant de navigation rapide

abracadabraPDF Forums PDF – Général Menu déroulant de navigation rapide

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44755
    bubu
    Membre

    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]

Affichage de 25 réponses de 1 à 25 (sur un total de 29)
  • Auteur
    Réponses
  • #56478
    Merlin
    Maî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:

    #56479
    Merlin
    Maître des clés

    Pour info, j’ai trouvé sur votre site ce pdf

    Où l’as tu trouvé ?
    Sur le forum ou sur le site ?

    #56480
    bubu
    Membre

    Merci 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.0

    #56481
    Merlin
    Maître des clés

    C’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:

    #56482
    bubu
    Membre

    Bonsoir
    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 ?

    #56483
    Merlin
    Maître des clés

    Oui, ce bouton ne fait que reprendre la structure des signets.
    Pas de signet : pas de menu !

    :Smiley15:

    #56484
    bubu
    Membre

    Merci, ç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.

    #56485
    Merlin
    Maî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:

    #56486
    bubu
    Membre

    Ok, 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

    #56487
    Merlin
    Maître des clés

    Peux tu faire passer (tout ou partie de) ton document ?
    :Euuuh:

    #56488
    bubu
    Membre

    Autant 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]

    #56489
    Merlin
    Maître des clés

    Je 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:

    #56490
    bubu
    Membre

    C’est parfait, j’attends les retours de mon client.
    Grand merci Merlin

    #56491
    jeanine63000
    Membre

    Bonjour,
    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   {
      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.

    #56492
    Merlin
    Maître des clés

    Bonjour.

    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.

    #56493
    jeanine63000
    Membre

    J’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 Up

    #56494
    Merlin
    Maître des clés

    Ca 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:

    #56495
    jeanine63000
    Membre

    Je 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) ?

    #56496
    Merlin
    Maître des clés

    Voir MP

    #56497
    jeanine63000
    Membre

    OK envoyé par mail

    #56498
    Merlin
    Maître des clés

    Bien 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:

    #56499
    jeanine63000
    Membre

    Bon, 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é !)

    #56500
    Merlin
    Maître des clés

    Essaye en supprimant tous les signets et en en recréant quelques uns avec des noms basiques… Pour (sa)voir.
    :priere:

    #56501
    jeanine63000
    Membre

    Eurê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 deau

    #56502
    Merlin
    Maître des clés

    Gagné !
    :bravo:

    J’avais fait une tentative en retirant les slash et les deux points, mais ce n’était pas ça.
    :geek:

Affichage de 25 réponses de 1 à 25 (sur un total de 29)
  • Vous devez être connecté pour répondre à ce sujet.