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;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user