abracadabraPDF › Forums › PDF – Général › Création automatique de liens dans un pdf
- Ce sujet est vide.
-
CréateurSujet
-
4 février 2012 à 09:41 #44105petitpiedMembre
Bonjour,
Pour résumer, j’ai un pdf dans lequel j’ai des liens récurents à faire (par exemple j’ai plusieurs fois un mot et il doit pointer vers sa définition qui elle est unique). Existe t il un logiciel ou une méthode pour rechercher tout ses mots et les lier à une unique page ?
Merci d’avance,
-
CréateurSujet
-
AuteurRéponses
-
4 février 2012 à 11:28 #52613MerlinMaître des clés
Salut,
faute de savoir quelle version d’Acrobat tu utilises je te donne le script “brut”.
A toi de l’installer dans une Action d’Acrobat X, ou bien dans le Traitement par lot des versions antérieures.Tu peux également le copier-coller dans la Console et ainsi l’exécuter directement.
Les variables en rouge sont les éléments à éventuellement modifier :
– l’épaisseur du contour de l’objet Lien
– la couleur du contour (si contour = zéro, la couleur n’a pas d’importance)
– le mot à rechercher par défaut (PDF)
– la cible par défaut de l’hyperlien (http://abracadabraPDF.net/):bonjour:
/* AddLinks *//* valeur du contour en point, zero = pas de contour */
var contour = “1“;
/* couleur du contour, remplacer “blue” par black, white, yellow, red, etc. */
var couleur = color.blue;
/* mot a rechercher par defaut, ne pas supprimer les guillemets */
var defaultAnswer1 = “PDF“;
//cible par defaut du lien, ne pas supprimer les guillemets
var defaultAnswer2 = “http://abracadabraPDF.net/“;
var dialogTitle = “abracadabraLinks”;
var motachercher = app.response(“Mot à rechercher (respectez la casse) :”, dialogTitle, defaultAnswer1);
if (motachercher != null)
{var dialogTitle = “abracadabraLinks”;
var urlaplacer = app.response(“URL de la cible du lien :”, dialogTitle, defaultAnswer2);
global.OK = 1;
}
else {global.OK = 0;}
if (global.OK == “1”)
{
var p=this.pageNum;
var numWords = this.getPageNumWords(p);
for (var i=0; i{
var ckWord = this.getPageNthWord(p, i, true);
if ( ckWord == motachercher)
{
var q = this.getPageNthWordQuads(p, i);
// convert quads in Default User Space to Rotated
// User Space used by Links.
m = (new Matrix2D).fromRotated(this,p);
mInv = m.invert()
r = mInv.transform(q)
r=r.toString()
r = r.split(“,”);
l = addLink(p, [r[4], r[5], r[2], r[3]]);
l.borderColor = couleur
l.borderWidth = contour
l.setAction(“app.launchURL(urlaplacer);”);
}
//else
//{app.alert({ cMsg: “Aucune occurence de ” + motachercher + ” n’a été trouvée dans le document actif !”, cTitle: “abracadabraLinks” });
//}
}
}4 février 2012 à 11:38 #52614petitpiedMembreMerci beaucoup de ta réponse.
Je vais essayer cela et je ferais un petit feedback.Ca serait pour une version de Adobe Acrobat X pro. Si tu as donc quelque chose de plus adapté à cette version, je suis preneur bien entendu.
4 février 2012 à 13:14 #52615petitpiedMembreJe l’ai peut être mal exprimé mais il y a également des liens internes au pdf (mot vers vue de page), comment dois-je faire (quelque chose de spécial à rentrer au niveau de l’url ?) ?
Après, j’ai l’impression que la recherche de mot ne s’applique qu’à la page en cours de visualisation et non à tout le document (j’ai un nombre de pages assez important et de nombreux liens à mettre en place).Merci encore.
4 février 2012 à 13:51 #52616MerlinMaître des clésEn effet, ce script ne fonctionne pas, je l’ai barré.
:oh:Ci-dessous le script d’exemple copié-collé depuis la doc d’Acrobat, mais il faudra l’exécuter depuis la Console pour pouvoir facilement en modifier les variables (en rouge, où “Acrobat” est le mot à rechercher) :
for (var p = 0; p {
var numWords = this.getPageNumWords(p);
for (var i=0; i{
var ckWord = this.getPageNthWord(p, i, true);
if ( ckWord == “Acrobat“)
{
var q = this.getPageNthWordQuads(p, i);
// Convert quads in default user space to rotated
// User space used by Links.
m = (new Matrix2D).fromRotated(this,p);
mInv = m.invert()
r = mInv.transform(q)
r=r.toString()
r = r.split(“,”);
l = addLink(p, [r[4], r[5], r[2], r[3]]);
l.borderColor = color.red;
l.borderWidth = 1;
l.setAction(“this.getURL(‘http://www.example.com/‘)”);
}
}
}La Console affiche ensuite le mot “undefined” quand le script à terminé.
Concernant les liens internes au document voir :
– http://abracadabrapdf.net/forum/index.php/topic,1425.0.html
et
– http://abracadabrapdf.net/forum/index.php/topic,982.msg3713.html:Smiley01:
6 février 2012 à 09:27 #52617petitpiedMembreJ’avoue que je comprend pas bien le topic en rapport avec l’indexation des renvois de pages (pas assez synthétique pour un pauvre ignorant de ce genre de langage même si je m’y intéresse de plus en plus) . Car autant j’ai réussi à exécuter le correctement ton premier script, pour le reste, j’aurai besoin de quelques explications ou mises en avant. Et voir si il répond bien à la problématique suivante : Poser des liens en automatiques en entrant par exemple un mot souvent répété pour le faire pointer sur une page précise.
Après, je conçois que vous n’avez pas forcement le temps ou l’envie de faire ce travail à ma place.
Thx.
6 février 2012 à 19:09 #52618MerlinMaître des clésPersonnellement, avant le temps ou l’envie, il y a surtout que je ne sais pas faire…
Je sais bien comment bricoler un script, et en particulier celui qui pointe vers des URL, mais je ne sais pas comment faire pour pointer à l’intérieur d’un même document.
:joker:Cependant, notre grand-gourou Alex ne devrait pas tarder à revenir et sa réponse sera certainement limpide.
:Smiley01: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.