Donnez vie à vos documents numériques !
 

Modification de la propriété de tous les liens d’un document. – RÉPONDU

abracadabraPDF Forums PDF – Général Modification de la propriété de tous les liens d’un document. – RÉPONDU

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

    Bonjour,
    j’ai récupéré un document avec des liens dont la propriété “zoom” varie (en général : “Personalisés, mais le zoom n’ai jamais le même).
    serait-il possible avec un script de changer toutes ces propriétés en “Page entière”.
    merci.
    :???:

    [attachment deleted by admin]

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

    Je crois que ce post te comblera de bonheur : http://acrobatusers.com/forum/javascript/changing-internal-hyperlinks
    :contentdance:

    #51910
    bebarth
    Maître des clés

    Merci Merlin.
    Il y a apparemment une parenthèse qui manque avant la condition, mais je ne comprend pas où !!!
    :???:

    [attachment deleted by admin]

    #51911
    Merlin
    Maître des clés

    Essaye de copier-coller le script dans un éditeur de texte (“éditeur”, pas “traitement”), de supprimer toutes les TAB, et retour.
    J’ai souvent eu ce problème incompréhensible et ça m’a souvent sauvé, j’imagine qu’il doit y avoir des caractères invisibles ou quelque chose de mal interprété quelque part…
    :idee:

    #51912
    bebarth
    Maître des clés

    La condition doit être entre parenthèses if (linksList > 0), mais je n’arrive pas à faire fonctionner le script !
    pour avoir la page entière, faut-il mettre :
    this.zoomType = zoomtype.fitP; au lieu de this.zoom = 150;
    :doute:

    for ( var linkPage = 10; linkPage < this.numPages; linkPage++) // loop through each page
    {
    var box = this.getPageBox(“Crop”, linkPage); // get the page box
    var linksList = this.getLinks(linkPage, box); // get the link
    if (linksList > 0)
    {
    for (var i=0; i < linksList.length; i++) // loop through each link
    {
    this.zoom = 150; // set zoom to 150%
    this.gotoNamedDest(linksList); // go to current destination
    var destPage=this.pageNum
    linksList
    .setAction(“this.pageNum=”+destPage) //set new destination
    }
    }
    }

    #51913
    Merlin
    Maître des clés

    Après réflexion, je crois me souvenir qu’il s’agit peut-être d’un bug : essaye dans une autre version d’Acrobat (ou la même version sur Windows).
    Il me semble que c’est comme ça que j’avais réglé le problème…
    :idee:

    #51914
    bebarth
    Maître des clés

    j’ai essayé plusieurs versions d’Acrobat sur plusieurs plateformes et le script ne fonctionne pas.
    voici le script que j’ai changé pour modifier les liens de la page courante et atteindre la page cible en pleine page (mais qui ne fonctionne pas).
    ou se trouve l’erreur ???
    :mur:

    var p = this.pageNum
          var box = this.getPageBox(“Crop”, p); // get the page box
          var linksList = this.getLinks(p, box); // get the link
          if (linksList > 0)
             {
                for (var i=0; i < linksList.length; i++) // loop through each link
                   {
                      this.zoomType = zoomtype.fitW; // pleine page
                      this.gotoNamedDest(linksList); // go to current destination
                      var destPage=this.pageNum
                      linksList.setAction(“this.pageNum=”+destPage) //set new destination
                   }
             }

    #51915
    bebarth
    Maître des clés

    J’avance, mais je n’arrive pas à récupérer le numéro de page du lien existant !!!
    de plus, je me demande si cela est possible, car j’ai trouvé :
    “It’s not possible to get the list of named destinations in a PDF with a script. You must hard-code it into your script, or read it from some external source, like a text file. ” sur http://acrobatusers.com/forum/javascript/changing-internal-hyperlinks
    si alex a une idée !!! merci.
    :oh:

    voici le script dans l’état actuel :

    var linkPage = this.pageNum;
    var box = this.getPageBox(“Crop”, linkPage); // get the page box
    var linksList = this.getLinks(linkPage, box); // get the link
    if (linksList.length > 0)
        {
        for (var i=0; i < linksList.length; i++) // loop through each link
            {
            var destPage=this.gotoNamedDest(linksList);//destination existante du lien
            linksList
    .setAction(“this.pageNum=”+destPage+”;”+”u000D”+”this.zoomType=zoomtype.fitP;”) //set new destination
            }
        }

    #51916
    Merlin
    Maître des clés

    Salut,

    est-ce qu’il ne serait pas plus simple d’ajouter une instruction à l’existant plutôt que de chercher à le modifier ?
    En clair : pourquoi ne pas ajouter sur chaque lien une seconde instruction en JavaScript qui serait chargée de corriger le zoom ?

    Comme sur la capture ci-jointe…
    :doute:

    Ftdv.png

    #51917
    bebarth
    Maître des clés

    Ça c’est pas bête… je regarde ça !
    :soleil:

    #51918
    bebarth
    Maître des clés

    il n’est apparemment pas possible d’écrire un script pour ajouter une seconde action…
    http://acrobatusers.com/forum/javascript/add-javascript-action-link
    :Euuuh:

    #51919
    bebarth
    Maître des clés

    Merlin,
    j’ai essayé ton idée d’ajouter une action “Exécuter un javascript” après l’action “Atteindre une page”, mais cela ne fonctionne apparemment pas.
    la page s’ouvre à l’échelle indique dans l’action “Atteindre une page”.
    :doute:

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