Donnez vie à vos documents numériques !
 

Répondre à : Script JS – Duplication de pages et incrémentation sur chaque.

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.

#63680
bebarth
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 !!!

@+
:bonjour: