abracadabraPDF › Forums › PDF – Général › Script JS – Duplication de pages et incrémentation sur chaque. › Répondre à : Script JS – Duplication de pages et incrémentation sur chaque.
30 mars 2018 à 12:35
#63680

Maître des clés
…voici le script commenté.
J’ai rajouté une boucle while pour être certain de n’indiquer qu’un nombre positif !
Code:
//On met les instruments et les valeurs par défaut dans une table
var Instruments = [“Violon I”, “8”, “Violon II”, “7”,”Alto”, “6”, “Violoncelle”, “5”, “Contrebasse”, “4”];
//On créé le template
var t = this.createTemplate ({nPage:0, cName:”Couv”});
//On commence la boucle avec modulo i+2 car les instruments sont tous les 2 éléments dans la table
for (var i = 0; i < Instruments.length; i = i+2) {
//Instruments est le nom de l’instrument dans la table
var Inst = Instruments;
//Instruments est le nombre de copies par défaut dans la table
var nb = Instruments;
//J’ai rajouté une boucle pour être certain de ne prendre en compte que des nombres, et positifs
while (bb<1 | isNaN(bb)) {
var bb = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de “+Inst+” ?”,
cTitle: “Nombre de parties”,
cDefault: nb
});
//On conertit le chaine en nombre
var nbreCopies = parseFloat(bb);
}
//On remet le nombre à 0 pour pouvoir recommencer la boucle while pour le prochain instrument
var bb = 0;
//Boucle pour ajouter le nombre de pages indiqué
for (var a = 1; a <= nbreCopies; a++) {
//On ajoute une page
this.spawnPageFromTemplate (“Couv”, “”, true, false);
//Premier champ nommé avec le nom de l’instrument
//Si le nom était commun pour tous les instruments, la valeur (donc le nom de l’instrument) changerait à chaque boucle
var f = this.addField(Inst,”text”,0,[0,50,594,100]);
f.value = Inst;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
//Deuxième champ nommé différemment pour chaque page
//idem que pour le nom des champs Instruments
var f = this.addField(Inst+”ZoneCopies”+a,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopies;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
}
}
//On supprime la page qui a servi de template et qui se trouve en dernière page
this.deletePages(this.numPages-1);
//On inverse l’ordre des pages
for (i = this.numPages-1; i >= 0; i–) this.movePage(i);
//On affiche la première page
this.pageNum = 0;
//…et on enregistre sous !
this.saveAs({cPath:”/C/Users/…/Desktop/CouvCordes.pdf”});
//Fini !!!
var Instruments = [“Violon I”, “8”, “Violon II”, “7”,”Alto”, “6”, “Violoncelle”, “5”, “Contrebasse”, “4”];
//On créé le template
var t = this.createTemplate ({nPage:0, cName:”Couv”});
//On commence la boucle avec modulo i+2 car les instruments sont tous les 2 éléments dans la table
for (var i = 0; i < Instruments.length; i = i+2) {
//Instruments est le nom de l’instrument dans la table
var Inst = Instruments;
//Instruments est le nombre de copies par défaut dans la table
var nb = Instruments;
//J’ai rajouté une boucle pour être certain de ne prendre en compte que des nombres, et positifs
while (bb<1 | isNaN(bb)) {
var bb = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de “+Inst+” ?”,
cTitle: “Nombre de parties”,
cDefault: nb
});
//On conertit le chaine en nombre
var nbreCopies = parseFloat(bb);
}
//On remet le nombre à 0 pour pouvoir recommencer la boucle while pour le prochain instrument
var bb = 0;
//Boucle pour ajouter le nombre de pages indiqué
for (var a = 1; a <= nbreCopies; a++) {
//On ajoute une page
this.spawnPageFromTemplate (“Couv”, “”, true, false);
//Premier champ nommé avec le nom de l’instrument
//Si le nom était commun pour tous les instruments, la valeur (donc le nom de l’instrument) changerait à chaque boucle
var f = this.addField(Inst,”text”,0,[0,50,594,100]);
f.value = Inst;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
//Deuxième champ nommé différemment pour chaque page
//idem que pour le nom des champs Instruments
var f = this.addField(Inst+”ZoneCopies”+a,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopies;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
}
}
//On supprime la page qui a servi de template et qui se trouve en dernière page
this.deletePages(this.numPages-1);
//On inverse l’ordre des pages
for (i = this.numPages-1; i >= 0; i–) this.movePage(i);
//On affiche la première page
this.pageNum = 0;
//…et on enregistre sous !
this.saveAs({cPath:”/C/Users/…/Desktop/CouvCordes.pdf”});
//Fini !!!
@+
:bonjour: