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éateurSujet
-
3 août 2011 à 13:48 #43985
bebarthMaître des clésBonjour,
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]
-
CréateurSujet
-
AuteurRéponses
-
3 août 2011 à 15:48 #51909
MerlinMaître des clésJe crois que ce post te comblera de bonheur : http://acrobatusers.com/forum/javascript/changing-internal-hyperlinks
:contentdance:3 août 2011 à 21:32 #51910
bebarthMaître des clésMerci Merlin.
Il y a apparemment une parenthèse qui manque avant la condition, mais je ne comprend pas où !!!
??:[attachment deleted by admin]
4 août 2011 à 08:29 #51911
MerlinMaître des clésEssaye 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:5 août 2011 à 13:08 #51912
bebarthMaître des clésLa 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
}
}
}5 août 2011 à 13:21 #51913
MerlinMaître des clésAprè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:5 septembre 2011 à 14:42 #51914
bebarthMaître des clésj’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
}
}6 septembre 2011 à 12:37 #51915
bebarthMaître des clésJ’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
}
}6 septembre 2011 à 13:22 #51916
MerlinMaître des clésSalut,
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:
6 septembre 2011 à 13:38 #51917
bebarthMaître des clésÇa c’est pas bête… je regarde ça !
:soleil:6 septembre 2011 à 14:34 #51918
bebarthMaître des clésil n’est apparemment pas possible d’écrire un script pour ajouter une seconde action…
http://acrobatusers.com/forum/javascript/add-javascript-action-link
:Euuuh:6 septembre 2011 à 15:29 #51919
bebarthMaître des clésMerlin,
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: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.
