Donnez vie à vos documents numériques !
 

Menu création signet. – RÉSOLU

abracadabraPDF Forums PDF – Général Menu création signet. – RÉSOLU

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #44093
    bebarth
    Maître des clés

    Bonjour,

    Dans le panneau « signets » de tous mes documents j’ajoute un signet gras et rouge avec un lien à notre site web… et je fais ça plusieurs fois par jour !
    De n’est pas le temps que ça prend, mais je souhaiterai ajouter dans un menu (Aide par exemple) une fonction qui me créerait directement ce signet.
    Dans l’Acrobat JavaScript Scripting Guide, j’ai trouvé un script qui renvoie la fonction à un url:
    app.addMenuItem({
    cName: « Newport », cUser: « Newport website… »,
    cParent: « Help »,
    cExec: « app.launchURL(‘www.newport.com’); »,
    nPos: 0
    });

    j’ai essayé de la combiner avec d’autres scripts

    this.bookmarkRoot.createChild(« Website », « ‘www.newport.com’);
    var bkm = this.bookmarkRoot.children[0];
    bkm.style = 2;

    …mais bien sur ça ne fonctionne pas !
    OU pourrais-je trouver une piste pour chercher la solution ?
    merci
    :doute:

    [attachment deleted by admin]

Affichage de 11 réponses de 1 à 11 (sur un total de 11)
  • Auteur
    Réponses
  • #52523
    Merlin
    Maître des clés

    Salut,

    copie-colle le script suivant dans un fichier texte et enregistre le dans le dossier JavaScripts d’Acrobat, avec le suffixe .JS :

    function myBookmarkAmoi()
    {
    this.bookmarkRoot.createChild(« Website »);
    var bkm = this.bookmarkRoot.children[0];
    bkm.style = 2;
    bkm.color = color.red;
    bkm.setAction(« app.launchURL(‘http://www.newport.com/’, true); »);
    }
    app.addMenuItem({ cName: « Newport Bookmark », cParent: « Edit », cEnable: « event.rc = event.target != null », cExec: « myBookmarkAmoi() »});

    :Smiley01:

    #52524
    Merlin
    Maître des clés

    A moins que tu ne préfères un bouton :

    function myBookmarkAmoi()
    {
    this.bookmarkRoot.createChild(« Website »);
    var bkm = this.bookmarkRoot.children[0];
    bkm.style = 2;
    bkm.color = color.red;
    bkm.setAction(« app.launchURL(‘http://www.newport.com/’, true); »);
    }

    app.addToolButton({
        cName: « Newport_Bookmark »,
        cLabel: « N-B »,
        cTooltext: « Newport Bookmark créateur »,
        cExec: « myBookmarkAmoi(); »,
        cEnable: « event.rc = event.target != null »
        });
       

    :Smiley03:

    #52525
    bebarth
    Maître des clés

    Merci Merlin,
    comme d’hab ça marche impec !!!
    Est-il possible d’ajouter un raccourci clavier dans le script ?
    :geek:

    #52526
    Merlin
    Maître des clés

    Est-il possible d’ajouter un raccourci clavier dans le script ?

    Hélas non !

    #52527
    bebarth
    Maître des clés

    Bonsoir Merlin,
    pour le raccourci ce n’est pas grave, il y a d’autres moyens;
    Concernant le script bouton, j’ai essayé et il y a quelque chose que je ne comprend pas.
    le bouton ne fonctionne qu’une fois à l’ouverture du fichier, mais le script ouvre une petite « fenêtre javascript » (pièce jointe). Le signet est créé et fonctionne, mais si on le supprime, le script du bouton ne fonctionne plus.
    Est-ce normal ?
    :siffle:

    [attachment deleted by admin]

    #52528
    Merlin
    Maître des clés

    Je viens d’essayer le script, le bouton fonctionne très bien dans Acrobat X…
    Par-contre c’est menu ou bouton, si les deux sont chargés en même temps cela pourrait occasionner des collisions.

    :Euuuh:

    [attachment deleted by admin]

    #52529
    bebarth
    Maître des clés

    J’avais essayé les 2 scripts individuellement. Le script de menu me conviens parfaitement, je l’ai même doublé en créant un signet en anglais et un autre en français.
    merci
    :extra:

    #52530
    Merlin
    Maître des clés

    Moi j’ai enregistré et j’utilise ce script (enfin… une version adaptée pour abracadabraPDF) comme Action.

    :Smiley01:

    #52531
    bebarth
    Maître des clés

    Bonjour à tous,
    je voudrais modifié ce script pour créer un autre signet qui renvoie à la dernière page du document, mais que ce script soit le dernier de la liste.
    je n’ai pas de problème pour le renvoi en dernière page, mais par contre je n’arrive pas à placer le signet en fin de liste ! tous les exemples que je trouve « Create a bookmark at the top of the bookmark panel ».
    Dans AcrobatJS Guide il est indiqué pour « createChild » : Creates a new child bookmark at the specified location. si je comprends bien, cela doit donc être possible.
    j’ai bien trouvé un script qui calcul le nombre de signets, mais je ne sais pas qu’en faire…
    merci d’avance si quelqu’un a une réponse !!!
    :bonjour:

    #52532
    Stubiana
    Membre

    Bonjour bebarth,

    La fonction createChild peut prendre 3 paramètres

    Copier/coller de la doc JS :

    cName
    The name of the bookmark that the user sees in the navigation panel.

    cExpr
    (optional) An expression to be evaluated whenever the user clicks the bookmark. It is equivalent to creating a bookmark with a JavaScript action, as described in the PDF Reference version 1.7. The default is no expression.

    nIndex
    (optional) The 0-based index into the children array of the bookmark at which to create the new child. The default is 0.

    Le 3eme paramètre, nIndex, détermine la position du signet par rapport à son parent, il te suffit donc de mettre en paramètre le nombre de signets de ton document, et il sera placé en dernière position.

    Ce qui donne:
    this.bookmarkRoot.createChild(« Dernière page », «  », this.bookmarkRoot.children.length);

    Cordialement.  :bonjour:

    #52533
    bebarth
    Maître des clés

    Impeccable !!! Merci Stubiana  :soleil:

    voici mon script final au cas ou cela intéresse quelqu’un.

    function myBookmarkContactUs()
      {
      this.bookmarkRoot.createChild(« Dernière page », «  », this.bookmarkRoot.children.length);
      var i = this.bookmarkRoot.children.length
      var bkm = this.bookmarkRoot.children[i-1];
      bkm.style = 1;
      bkm.color = color.black;
      bkm.setAction(« this.pageNum = numPages »);
          }
    app.addMenuItem({ cName: « Contact Us », cParent: « Edit », cEnable: « event.rc = event.target != null », cExec: « myBookmarkContactUs() »});

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