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: