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: