Toutes mes réponses sur les forums
-
AuteurRéponses
-
30 mars 2018 à 08:06 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63678
jojoe
MembreSi ce n’est pas trop te demander, je veux bien en effet (je vous sollicite beaucoup depuis quelques jours :Ooops: ).
1) Je ne comprends pas faire apparaître les valeurs par défaut relatives au nombre de copies souhaité par instrument dans la table, puisque ces valeurs ne sont pas figés mais saisies par l’utilisateur.
Aussi, je ne me suis pas encore penché sur la boucle for. Mais ça, je vais regarder et essayer de comprendre.Merci,
Jojoe
29 mars 2018 à 13:28 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63676jojoe
MembreMerci Bebarth,
Là tout de suite, je ne comprends pas bien le fonctionnement de la boucle avec table. Mais je vais voir ça de plus prêt !
++jojoe
MembreSuper, c’est génial merci Merlin !
// si cochée
if (this/getField(“CASE”).value != “Off”) {Par contre, ce ne serait pas this.getField ? (point et non slash ?)
Et du coup, pour bien comprendre, pourquoi demande t-on une inégalité (!
? Traduction : Si Valeur CheckBox est inégale à non cochée.
Merci encore,
Jojoe
jojoe
MembreBien vu, merci Merlin. Mise à jour effectuée et tout rentre dans l’ordre…
Pour précision par contre, j’ai la version 11.0.23 qui est (et restera…) donc la dernière version pour Acrobat Pro XI.
:bonjour:jojoe
MembreBebarth,
Oui, j’ai bien une pro XI (version 11.0.0). J’ai également le Adobe Forms Central qui s’est installé. Donc pas de souci de ce côté-là.Merlin,
Je te mets une capture du volet Formulaire déroulé… Il n’y a pas les outils que je cherche.Nous avions déjà eu un problème lorsque nous avions fait des essais sur une Surface Pro 3 avant de commander les Surface Pro 4. Il manquait l’outil de commentaire “lignes connectées”. Il a suffit de désactiver l’option tactile pour que cet outil soit de nouveau actif.
En l’occurrence, cet outil fonctionne aujourd’hui, mais d’autres ont disparu. Sans doute un problème de compatibilité entre Acrobat Pro XI et les appareils tactiles… C’est fâcheux !28 mars 2018 à 07:39 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63674jojoe
MembreMerci Merlin,
J’ai justement un autre problème qui se pose à moi concernant les outils formulaires… Mais je vais créer un autre post car c’est un sujet différent.
++
27 mars 2018 à 15:21 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63671jojoe
MembreMerci Bebarth, je vais tester pour l’insertion du Template.
J’ai commencé le Javascript il y a 15 jours-3 semaines… Je me disais bien qu’il y avait une solution plus efficace plutôt que de tout réécrire. Je vais donc regarder ça !
Je me suis aussi imprimé le js_developer_guide et le js_api_reference mais c’est des sacrés bottins à se cogner ! :mur:++
27 mars 2018 à 14:17 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63669jojoe
MembreBonjour,
Oui, oui, pardon, j’ai fait un exemple pour illustration de ce que je voulais et ai effectivement utilisé l’outil texte et non un champ de formulaire.
Quoiqu’il en soit, je suis parvenu avec vos conseils à obtenir ce que je voulais donc tout est bon.
D’ailleurs, j’ai un peu adapté le processus initial après l’avoir montré à mes collègues. En effet, il n’y a plus de saisie du nom d’instrument. Le script va générer les couvertures pour tous les instruments (Violons, Altos, Violoncelles et Contrebasses). Pour chaque, on demande simplement le nombre de copies souhaitées.Juste un petit problème que je n’ai pas réussi à résoudre… ou du moins en bidouillant… je voulais que les pages issues du Template créé préalablement soient insérées à la suite
Code:this.getTemplate(“Couv”).spawn({nPage:this.numPages});. Et je ne sais pas pourquoi toute les pages se mettent dans le bon ordre, sauf la dernière qui vient se positionner en “nPage : -1”.
Du coup, je demande dans mon script à réinsérer une fois supplémentaire le Template (qui se place en page -1) puis je la supprime et tout va bien.Voici :
Code:var a = 1;
var t = this.createTemplate ({nPage:0, cName:”Couv”});
var nbreCopiesV1 = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de Violon I ?”,
cTitle: “Nombre de parties”,
cDefault: “8”
});
while(a<=nbreCopiesV1){
this.getTemplate(“Couv”).spawn({nPages:this.numPages});
var f = this.addField(“ZoneInstru”,”text”,0,[0,50,594,100]);
f.value = “Violon I”;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
var f = this.addField(“ZoneCopies”,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopiesV1;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
a=a+1;
}
a=1;
var nbreCopiesV2 = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de Violon II ?”,
cTitle: “Nombre de parties”,
cDefault: “7”
});
while(a<=nbreCopiesV2){
this.getTemplate(“Couv”).spawn({nPage:this.numPages});
var f = this.addField(“ZoneInstru”,”text”,0,[0,50,594,100]);
f.value = “Violon II”;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
var f = this.addField(“ZoneCopies”,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopiesV2;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
a=a+1;
}
a=1;
var nbreCopiesAlto = app.response({
cQuestion: “Combien souhaitez-vous générer de parties d’Alto ?”,
cTitle: “Nombre de parties”,
cDefault: “6”
});
while(a<=nbreCopiesAlto){
this.getTemplate(“Couv”).spawn({nPage:this.numPages});
var f = this.addField(“ZoneInstru”,”text”,0,[0,50,594,100]);
f.value = “Alto”;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
var f = this.addField(“ZoneCopies”,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopiesAlto;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
a=a+1;
}
a=1;
var nbreCopiesVlc = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de Violoncelle ?”,
cTitle: “Nombre de parties”,
cDefault: “5”
});
while(a<=nbreCopiesVlc){
this.getTemplate(“Couv”).spawn({nPage:this.numPages});
var f = this.addField(“ZoneInstru”,”text”,0,[0,50,594,100]);
f.value = “Violoncelle”;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
var f = this.addField(“ZoneCopies”,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopiesVlc;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
a=a+1;
}
a=1;
var nbreCopiesCb = app.response({
cQuestion: “Combien souhaitez-vous générer de parties de Contrebasse ?”,
cTitle: “Nombre de parties”,
cDefault: “4”
});
while(a<=nbreCopiesCb){
this.getTemplate(“Couv”).spawn({nPage:this.numPages});
var f = this.addField(“ZoneInstru”,”text”,0,[0,50,594,100]);
f.value = “Contrebasse”;
f.alignment = “center”;
f.textSize = 40;
f.textColor = color.black;
f.textFont = font.Helv;
var f = this.addField(“ZoneCopies”,”text”,0,[525,800,585,830]);
f.value = a + “/” + nbreCopiesCb;
f.alignment = “right”;
f.textSize = 20;
f.textColor = color.black;
f.textFont = font.Helv;
a=a+1;
}
this.getTemplate(“Couv”).spawn({nPage:this.numPages});
this.deletePages({nStart:0,nEnd:1});
this.saveAs({cPath:”/C/Users/…/Desktop/CouvCordes.pdf”});J’ai inséré ce script dans une action et j’obtiens le résultat voulu donc tout va bien.
Est-il faisable d’ajouter ce script au niveau application. Je vais avoir d’autres scripts du même type à réaliser et j’aimerais créer un menu à cet effet ?
L’action est top pour un traitement par lot. En l’occurrence, ce script sera utilisé sur un fichier à la fois… Même si ça marche parfaitement ainsi, je me dis que ça peut être mieux (et puis ça me donne l’occasion d’apprendre !). J’ai lu l’article https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/ mais je n’ai pas tout très bien compris… où insérer le fichier .js,…En tout cas, encore merci pour votre aide et pour ce forum si précieux !
Jojoe
21 mars 2018 à 22:08 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63661jojoe
MembreBonsoir,
Pardon, c’est moi qui n’avait pas était suffisamment clair.
En sortie, je voudrais que toutes les pages soient dans le même fichier et non autant de fichier que de pages de couvertures car ensuite, l’idée est de lancer une impression de toutes les couvertures en un clic.
Par ailleurs Bebarth, je ne sais pas si c’est un bug mais quand j’utilise ton action “Partitions”, les fichiers générés sont vierges. Seuls apparaissent les deux zones de textes créées. Or l’idée est d’ajouter les zones de textes sur mon fichier d’origine (avec l’illustration, le titre, le compositeur,…) et ce, sur les n couvertures.Vu, que l’on ne peut pas insérer un PDF en son propre sein, je ne vois pas comment échapper à la duplication du fichier d’origine. Merlin, tu as parlé de templates… je ne sais pas de quoi il s’agit. Peux-tu m’en dire plus ?
J’ai essayé de retravailler un peu de mon côté. Je parviens bien à enregistrer mes fichiers. Je voudrais ensuite réaliser l’insertion et c’est là que je bloque. J’ai lu des choses sur acrobusters mais rien n’y fait… :tutut:
Voici où j’en suis dans mon script…
Code:var nbreParties = 0;
//Questions Compositeur & Oeuvre
var nomCompositeur = app.response({
cQuestion: “Saisissez le nom du compositeur (sans espaces) :”,
cTitle: “Compositeur”,
cDefault:”Mozart”
});
var nomOeuvre = app.response({
cQuestion: “Saisissez le nom de l’oeuvre (sans espaces):”,
cTitle: “Oeuvre”,
cDefault: “LaFlûteEnchantée”
});
//Enregistrement de la page
this.saveAs(“/C/Couvertures/temp.pdf”);
this.saveAs(“/C/Couvertures/”+nomCompositeur+”-“+nomOeuvre+”.pdf”);//déclaration des variables
var nomInstrument = app.response({
cQuestion: “Saisissez le nom de l’instrument :”,
cTitle: “Instrument”,
cDefault: “Violon I”
});
var nbreParties = app.response({
cQuestion: “Combien voulez-vous générer de parties ?”,
cTitle: “Nombre de parties”,
cDefault: “1”
});
var a = parsefloat(nbreParties);
var i = nbreParties;while(a==0)
{
a = a-1;this.insertPages({
cPath: “/C/Couvertures/temp.pdf”,
nPage: -1
});// Construction des champs texte
var f = this.addField(“Zone_Num”, “text”, 0, [200,250,250,400] )
f.value = i + “/” + nbreParties; // Texte du bas de page
f.alignment = “center”; // Alignement du texte
f.textSize = 20; // Corps du texte
f.textColor = color.black; // Couleur du texte
f.textFont = font.Helv; // Police du texte
var f = this.addField(“Zone_Instrument”, “text”, 0, [400,400,300,300] )
f.value = nomInstrument; // Texte du bas de page
f.alignment = “center”; // Alignement du texte
f.textSize = 20; // Corps du texte
f.textColor = color.black; // Couleur du texte
f.textFont = font.Helv; // Police du textei = i-1
}Encore merci d’avance pour votre aide.
Jojoe
20 mars 2018 à 09:58 en réponse à : Script JS – Duplication de pages et incrémentation sur chaque. #63659jojoe
MembreBonjour et merci pour vos réponses qui me font déjà progresser.
Je vais préciser ma demande. En fait, nous faisons des couvertures que nous travaillons avec Photoshop par exemple. Le document qui sort sert de modèle pour fabriquer toutes les couvertures de toutes les partitions pour une œuvre. Pour chaque œuvre nous faisons des partitions différentes et devons réécrire le nom de chaque instrument sur chaque couverture (environ 70 couvertures pour un orchestre).
Mon idée est de sortir un fichier PDF de Photoshop et de dire à Acrobat Pro XI (c’est la version avec laquelle nous travaillons) de générer les partitions des instruments à cordes dans un premier temps… 5 opérations (violons I, Violons II, Altos, Violoncelles, Contrebasses) = 35 ou 40 couvertures = gain de temps. D’où mon idée d’enregistrer ma page dans un fichier temporaire. Je ne connais les templates mais je veux bien que vous m’en disiez davantage.
Aussi, le script que tu m’envoies Bebarth me génère autant de fichiers que de couvertures. Je préfèrerais que toutes les pages soient dans le même fichier. Là encore mon idée d’insérer des pages depuis le fichier temporaire enregistré préalablement.Quoiqu’il en soit encore merci de me faire avancer. Je vais relire le script pour essayer de bien comprendre les différentes commandes que tu as utilisées…!
Jojoe
PS: Je vous mets en pièce jointe une couverture type.
PS2: La question des positions des champs textes sera à affiner effectivement mais c’est de l’ordre du réglage. -
AuteurRéponses