fix: module Livret en un seul app.response
Acrobat 2026 ne permet qu'une seule interaction modale par clic de menu. Tout est rassemble dans un seul app.response : I = imposer, D = delivretiser, I,0.3 = imposer avec chasse. Pages blanches ajoutees automatiquement a la fin si besoin. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -247,52 +247,50 @@ CDImp.Livret.lancer = function (doc) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var choix = app.response({
|
var nPages = doc.numPages;
|
||||||
cQuestion: "Tapez I pour Imposer (creer un livret)\nou D pour Delivretiser (revenir a l'ordre de lecture) :",
|
var reste = nPages % 4;
|
||||||
|
var info = "Document : " + nPages + " pages";
|
||||||
|
if (reste !== 0) {
|
||||||
|
info += " (pas multiple de 4, " + (4 - reste) + " page(s) blanche(s) seront ajoutees a la fin)";
|
||||||
|
}
|
||||||
|
|
||||||
|
var saisie = app.response({
|
||||||
|
cQuestion: info + "\n\nTapez une commande :\n I = Imposer (creer un livret)\n D = Delivretiser\n I,creep = Imposer avec chasse en mm (ex: I,0.5)\n\nExemples : I ou I,0.3 ou D",
|
||||||
cTitle: "Livret / Delivretiser",
|
cTitle: "Livret / Delivretiser",
|
||||||
cDefault: "I"
|
cDefault: "I"
|
||||||
});
|
});
|
||||||
if (!choix) return;
|
if (!saisie) return;
|
||||||
choix = choix.toUpperCase();
|
saisie = saisie.toUpperCase().replace(/\s/g, "");
|
||||||
|
|
||||||
if (choix === "D") {
|
if (saisie === "D") {
|
||||||
CDImp.Livret.delivretiser(doc);
|
CDImp.Livret.delivretiser(doc);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (choix !== "I") {
|
|
||||||
app.alert("Choix non reconnu. Tapez I ou D.");
|
var creepMm = 0;
|
||||||
|
if (saisie.indexOf(",") !== -1) {
|
||||||
|
var parts = saisie.split(",");
|
||||||
|
saisie = parts[0];
|
||||||
|
creepMm = parseFloat(parts[1]) || 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (saisie !== "I") {
|
||||||
|
app.alert("Commande non reconnue. Tapez I ou D.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var nPages = doc.numPages;
|
|
||||||
var reste = nPages % 4;
|
|
||||||
|
|
||||||
if (reste !== 0) {
|
if (reste !== 0) {
|
||||||
var nManque = 4 - reste;
|
CDImp.Livret.ajouterPagesBlanches(doc, 4 - reste, "fin");
|
||||||
var position = CDImp.Livret._demanderPositionPagesBlanches(nManque);
|
|
||||||
if (!position) {
|
|
||||||
return; // annulation utilisateur
|
|
||||||
}
|
|
||||||
CDImp.Livret.ajouterPagesBlanches(doc, nManque, position);
|
|
||||||
nPages = doc.numPages;
|
nPages = doc.numPages;
|
||||||
}
|
}
|
||||||
|
|
||||||
var creepMm = CDImp.Util.demanderNombre(
|
|
||||||
"Compensation de chasse (creep) en mm par feuille (0 = aucune) :",
|
|
||||||
"Creer un livret",
|
|
||||||
0
|
|
||||||
);
|
|
||||||
if (creepMm === null) {
|
|
||||||
return; // annulation utilisateur
|
|
||||||
}
|
|
||||||
|
|
||||||
var planches = CDImp.Livret.calculerOrdre(nPages);
|
var planches = CDImp.Livret.calculerOrdre(nPages);
|
||||||
|
|
||||||
var destDoc;
|
var destDoc;
|
||||||
try {
|
try {
|
||||||
destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm);
|
destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
CDImp.Util.erreur("Erreur lors de la construction du livret : " + e.toString());
|
app.alert("Erreur lors de la construction du livret : " + e.toString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user