From a603c6d919d69481679a86f6e45dd244709318c1 Mon Sep 17 00:00:00 2001 From: Jules Dubois Date: Thu, 25 Jun 2026 19:01:30 +0200 Subject: [PATCH] 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 --- acrobat-plugin/src/Imposition-02-Livret.js | 50 +++++++++++----------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/acrobat-plugin/src/Imposition-02-Livret.js b/acrobat-plugin/src/Imposition-02-Livret.js index a130965..060330a 100755 --- a/acrobat-plugin/src/Imposition-02-Livret.js +++ b/acrobat-plugin/src/Imposition-02-Livret.js @@ -247,52 +247,50 @@ CDImp.Livret.lancer = function (doc) { return; } - var choix = app.response({ - cQuestion: "Tapez I pour Imposer (creer un livret)\nou D pour Delivretiser (revenir a l'ordre de lecture) :", + var nPages = doc.numPages; + 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", cDefault: "I" }); - if (!choix) return; - choix = choix.toUpperCase(); + if (!saisie) return; + saisie = saisie.toUpperCase().replace(/\s/g, ""); - if (choix === "D") { + if (saisie === "D") { CDImp.Livret.delivretiser(doc); 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; } - var nPages = doc.numPages; - var reste = nPages % 4; - if (reste !== 0) { - var nManque = 4 - reste; - var position = CDImp.Livret._demanderPositionPagesBlanches(nManque); - if (!position) { - return; // annulation utilisateur - } - CDImp.Livret.ajouterPagesBlanches(doc, nManque, position); + CDImp.Livret.ajouterPagesBlanches(doc, 4 - reste, "fin"); 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 destDoc; try { destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm); } 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; }