abracadabraPDF › Forums › PDF – Général › Script pour ajouter un bouton avec action Page suivante sur fichiers pdf
- Ce sujet contient 14 réponses, 3 participants et a été mis à jour pour la dernière fois par Merlin, le il y a 3 années et 1 mois.
-
CréateurSujet
-
14 octobre 2021 à 14:26 #46671ctanguyParticipant
Bonjour,
Je cherche un javascript ou autre processus d'automatisation qui me permettrait d'ajouter sur un lot de fichiers pdf un bouton avec un lien sur la page suivante, afin d'éviter de le faire manuellement ou de le copier-coller sur chaque fichier.
Sur Mac et Acrobat DC
Meci
Ctang -
CréateurSujet
-
AuteurRéponses
-
14 octobre 2021 à 16:23 #69698bebarthMaître des clés
bonjour,
Pas besoin de script.
Tu crées ton bouton sur la première page, puis clic droit et “Dupliquer dans toutes les pages”.
@+
14 octobre 2021 à 20:26 #69699MerlinMaître des clésBonjour
Je crois que c'est typiquement un bouton qui ne sert pas à grand-chose car il existe déjà par défaut au-dessus de tous les documents.
Il y a aussi un raccourci-clavier.15 octobre 2021 à 08:38 #69700ctanguyParticipantBonjour,
Effectivement, je peux ajouter le bouton sans problème sur les pages du document.
Mais c'est une fonction que je cherche à automatiser pour tout un lot de fichiers pdf contenus dans un dossier.
Cordialement
Ctang15 octobre 2021 à 09:47 #69701MerlinMaître des clésDans ce cas le plus simple est d’utiliser ce script dans une Action, après l’avoir personnalisé, ensuite on peut appliquer l’Action sur un lot de fichiers.
// CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
for (var p = 0; p < this.numPages; p++) {
// Position du rectangle
var aRect = this.getPageBox( {nPage: p} );
// aRect[0] = zéro car on est dans la CROP box
aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
aRect[1] -= .5*inch; // 0,5 cm from the top of page
// aRect[3] = zéro car on est dans la CROP box
aRect[3] = aRect[1] - 15; // and 15 points high
var f = this.addField("btPageSuiv", "button", p, aRect )
f.setAction("MouseUp", "pageSuiv()");
f.userName = "Page suivante"; // infobulle
f.display = display.noPrint;
f.borderStyle = border.s;
f.highlight = "none";
f.textSize = 0; // 0 = corps automatique
f.textColor = color.black;
f.fillColor = color.white;
f.strokeColor = color.transparent;
f.textFont = font.Helv; // Helvetica
f.buttonSetCaption(">>>"); // flèche vers la droite
}
- Cette réponse a été modifiée le il y a 3 années et 3 mois par JR Boulay.
6 décembre 2021 à 22:57 #70075ctanguyParticipantBonsoir,
je viens de retrouver le script envoyé sur le nouveau site, mais sur mac système Monterey avec Acrobat 2021, j’ai le code erreur suivant :ReferenceError: nPosBt6 is not defined 6:Document-Level:bouton ReferenceError: nPosBt6 is not defined 6:Document-Level:bouton ReferenceError: nPosBt6 is not defined 6:Document-Level:bouton ReferenceError: nPosBt6 is not defined 6:Batch:Exec ReferenceError: nPosBt6 is not defined 6:Batch.
Quelle correction je peux y apporter ?
Cordialement
CTanguy
7 décembre 2021 à 13:28 #70076MerlinMaître des clésEn fait il manquait la première ligne, qui défini la variable “nPosBt6”.
Du coup j’ai testé et j’ai remplacé les “>>>” par leur équivalent Unicode car ça buggait (en dernière ligne).
// POSITION BOUTON "PAGE SUIVANTE"
var nPosBt6 = 1.5; // cm à partir du bord DROIT de la page, ce bt fait 1 cm de large
// CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
for (var p = 0; p < this.numPages; p++) {
// Position du rectangle
var aRect = this.getPageBox( {nPage: p} );
// aRect[0] = zéro car on est dans la CROP box
aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
aRect[1] -= .5*inch; // 0,5 cm from the top of page
// aRect[3] = zéro car on est dans la CROP box
aRect[3] = aRect[1] - 15; // and 15 points high
var f = this.addField("btPageSuiv", "button", p, aRect)
f.setAction("MouseUp", "pageSuiv()");
f.userName = "Page suivante"; // infobulle
f.display = display.noPrint;
f.borderStyle = border.s;
f.highlight = "none";
f.textSize = 0; // 0 = corps automatique
f.textColor = color.black;
f.fillColor = color.white;
f.strokeColor = color.black;
f.textFont = font.Helv; // Helvetica
f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite
}
9 décembre 2021 à 11:49 #70094ctanguyParticipantBonjour,
je pense qu’il doit encore manquer une variable je suppose, j’ai cette nouvelle erreur :
ReferenceError: inch is not defined 8:Batch:Exec ReferenceError: inch is not defined 8:Batch:Exec
Merci
ctanguy
9 décembre 2021 à 13:52 #70096MerlinMaître des clésCette fois j’ai testé avec un Acrobat tout juste ouvert et donc débarrassé de toute variable fantôme, il y en avait deux autres 😱
// POSITION BOUTON "PAGE SUIVANTE"
var nPosBt6 = 1.5; // multiplicateur
var inch = 28.3; // unité de base, ce qui fait 1 inch = 1 centimètre
// CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
for (var p = 0; p < this.numPages; p++) {
// Position du rectangle
var aRect = this.getPageBox( {nPage: p} );
aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
aRect[1] -= .5*inch; // 0,5 cm from the top of page
aRect[3] = aRect[1] - 15; // and 15 points high
var f = this.addField("btPageSuiv", "button", p, aRect)
f.setAction("MouseUp", "this.pageNum++");
f.userName = "Page suivante"; // infobulle
f.display = display.noPrint;
f.borderStyle = border.s;
f.highlight = "none";
f.textSize = 0; // 0 = corps automatique
f.textColor = color.black;
f.fillColor = color.white;
f.strokeColor = color.black;
f.textFont = font.Helv; // Helvetica
f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite
}
9 décembre 2021 à 16:42 #70097ctanguyParticipantMerci, c’est parfait, je peux le personnaliser en couleur, dimensions, et pages.
Une dernière question si c’est simple,
pour remplacer (“\u003E\u003E\u003E”), par une image, c’est possible ?
comme dans les formulaires.
Ctangu9 décembre 2021 à 17:08 #70098MerlinMaître des clésAjoute cette ligne juste avant la dernière accolade , il faut indiquer le chemin d’accès au fichier icône (qui peut aussi être en PNG ou JPG) :
f.buttonImportIcon("/F/pdfs/monIcone.pdf");
9 décembre 2021 à 17:40 #70099ctanguyParticipantSi je retire le chemin d’accès, j’ai bien l’interface qui me demande de sélectionner l’icône, mais au final j’ai toujours le bouton avec >>>
et dans les propriétés du bouton tracé, j’ai libellé uniquement.
faut-il une autre fonction pour indiquer icône uniquement ?Ctanguy
9 décembre 2021 à 22:34 #70100MerlinMaître des clésPour avoir un bouton avec “texte sur icône” (à ajouter avant la dernière ligne) :
f.buttonPosition = position.overlay; // texte sur icône
Pour ne pas avoir le texte (les flèches) il faut supprimer ou désactiver cette ligne :
f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite
10 décembre 2021 à 11:35 #70101ctanguyParticipantBonjour,
en ajoutant
f.buttonPosition = position.overlay; et en désactivant le texte c’est OK.Merci
Claire
10 décembre 2021 à 17:11 #70103MerlinMaître des clés😎
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.