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:
Jules Dubois
2026-06-25 19:01:30 +02:00
parent fd44f77dc1
commit a603c6d919

View File

@@ -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;
} }