From fd92b803503b9abdeaba6cd6aaeeda10c4c4b31d Mon Sep 17 00:00:00 2001 From: Jules Dubois Date: Thu, 25 Jun 2026 19:09:38 +0200 Subject: [PATCH] fix: menu direct par action, plus de choix intermediaire Chaque action est un item de menu separe : "Imposer un livret", "Delivretiser", etc. Un clic = une action. Seul le creep est demande via app.response. Corrige aussi "doc is not defined". Co-Authored-By: Claude Opus 4.6 --- acrobat-plugin/src/Imposition-00-Core.js | 69 +++------------------- acrobat-plugin/src/Imposition-02-Livret.js | 60 +++++-------------- 2 files changed, 23 insertions(+), 106 deletions(-) diff --git a/acrobat-plugin/src/Imposition-00-Core.js b/acrobat-plugin/src/Imposition-00-Core.js index b3222fb..90bbacd 100755 --- a/acrobat-plugin/src/Imposition-00-Core.js +++ b/acrobat-plugin/src/Imposition-00-Core.js @@ -236,63 +236,12 @@ try { }); } catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpLivret", - cUser: "Livret / Delivretiser", - cParent: "ImpositionPro", - cExec: "try{CDImp.Livret.lancer();}catch(e){app.alert('Erreur: '+e);}", - cEnable: "event.rc = true;", - nPos: 0 - }); -} catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpNUp", - cUser: "N-Up / Step and Repeat", - cParent: "ImpositionPro", - cExec: "if(CDImp.NUp&&CDImp.NUp.lancer)CDImp.NUp.lancer();", - cEnable: "event.rc = true;", - nPos: 1 - }); -} catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpDecoupe", - cUser: "Decoupe et reassemblage", - cParent: "ImpositionPro", - cExec: "if(CDImp.Decoupe&&CDImp.Decoupe.lancer)CDImp.Decoupe.lancer();", - cEnable: "event.rc = true;", - nPos: 2 - }); -} catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpMarges", - cUser: "Marges et cadrages", - cParent: "ImpositionPro", - cExec: "if(CDImp.Marges&&CDImp.Marges.lancer)CDImp.Marges.lancer();", - cEnable: "event.rc = true;", - nPos: 3 - }); -} catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpReperes", - cUser: "Reperes et numerotation", - cParent: "ImpositionPro", - cExec: "if(CDImp.Reperes&&CDImp.Reperes.lancer)CDImp.Reperes.lancer();", - cEnable: "event.rc = true;", - nPos: 4 - }); -} catch (e) {} -try { - app.addMenuItem({ - cName: "CDImpAuto", - cUser: "Automatisation", - cParent: "ImpositionPro", - cExec: "if(CDImp.Auto&&CDImp.Auto.lancer)CDImp.Auto.lancer();", - cEnable: "event.rc = true;", - nPos: 5 - }); -} catch (e) {} +try { app.addMenuItem({ cName: "CDImpImposerLivret", cUser: "Imposer un livret", cParent: "ImpositionPro", cExec: "try{CDImp.Livret.imposer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 0 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpDelivretiser", cUser: "Delivretiser", cParent: "ImpositionPro", cExec: "try{CDImp.Livret.delivretiser();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 1 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpSep1", cUser: "-", cParent: "ImpositionPro", cExec: "", nPos: 2 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpNUp", cUser: "N-Up / Step and Repeat", cParent: "ImpositionPro", cExec: "try{CDImp.NUp.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 3 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpDecoupe", cUser: "Decoupe et reassemblage", cParent: "ImpositionPro", cExec: "try{CDImp.Decoupe.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 4 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpMarges", cUser: "Marges et cadrages", cParent: "ImpositionPro", cExec: "try{CDImp.Marges.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 5 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpReperes", cUser: "Reperes et numerotation", cParent: "ImpositionPro", cExec: "try{CDImp.Reperes.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 6 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpSep2", cUser: "-", cParent: "ImpositionPro", cExec: "", nPos: 7 }); } catch(e){} +try { app.addMenuItem({ cName: "CDImpAuto", cUser: "Automatisation", cParent: "ImpositionPro", cExec: "try{CDImp.Auto.lancer();}catch(e){app.alert('Erreur: '+e);}", cEnable: "event.rc = true;", nPos: 8 }); } catch(e) {} diff --git a/acrobat-plugin/src/Imposition-02-Livret.js b/acrobat-plugin/src/Imposition-02-Livret.js index 060330a..e0329b3 100755 --- a/acrobat-plugin/src/Imposition-02-Livret.js +++ b/acrobat-plugin/src/Imposition-02-Livret.js @@ -179,12 +179,7 @@ CDImp.Livret.construireDocument = function (srcDoc, planches, creepMm) { * @param {Doc} doc document imposes (planches doubles), document actif si omis */ CDImp.Livret.delivretiser = function (doc) { - try { - doc = CDImp.Util.getDocActif(doc); - } catch (e) { - CDImp.Util.erreur(e.toString()); - return; - } + doc = CDImp.Util.getDocActif(doc); var nPlanches = doc.numPages; if (nPlanches % 2 !== 0) { @@ -239,45 +234,23 @@ CDImp.Livret.delivretiser = function (doc) { // ----------------------------------------------------------------------- // Point d'entree du module (appele depuis le panneau principal, Module 1) // ----------------------------------------------------------------------- -CDImp.Livret.lancer = function (doc) { - try { - doc = CDImp.Util.getDocActif(doc); - } catch (e) { - app.alert("Veuillez ouvrir un document PDF."); - return; - } - +CDImp.Livret.imposer = function () { + var doc = CDImp.Util.getDocActif(); var nPages = doc.numPages; var reste = nPages % 4; - var info = "Document : " + nPages + " pages"; + + var info = "Document : " + nPages + " pages."; if (reste !== 0) { - info += " (pas multiple de 4, " + (4 - reste) + " page(s) blanche(s) seront ajoutees a la fin)"; + info += "\n" + (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" + cQuestion: info + "\n\nCompensation de chasse (creep) en mm par feuille :\n(0 = aucune)", + cTitle: "Imposer un livret", + cDefault: "0" }); - if (!saisie) return; - saisie = saisie.toUpperCase().replace(/\s/g, ""); - - if (saisie === "D") { - CDImp.Livret.delivretiser(doc); - return; - } - - 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; - } + if (saisie === null) return; + var creepMm = parseFloat(saisie) || 0; if (reste !== 0) { CDImp.Livret.ajouterPagesBlanches(doc, 4 - reste, "fin"); @@ -285,19 +258,14 @@ CDImp.Livret.lancer = function (doc) { } var planches = CDImp.Livret.calculerOrdre(nPages); - - var destDoc; - try { - destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm); - } catch (e) { - app.alert("Erreur lors de la construction du livret : " + e.toString()); - return; - } + var destDoc = CDImp.Livret.construireDocument(doc, planches, creepMm); if (CDImp.Auto && CDImp.Auto.enregistrerDerniereAction) { CDImp.Auto.enregistrerDerniereAction("Livret.imposer", { creepMm: creepMm }); } + app.alert("Livret cree avec succes (" + planches.length + " planches).\nPensez a l'enregistrer sous un nouveau nom."); + CDImp.Util.info("Livret cree avec succes (" + planches.length + " planches).\nPensez a l'enregistrer (Ctrl+S) sous un nouveau nom."); };