Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 892 à 990 (sur un total de 10,390)
  • Auteur
    Réponses
  • en réponse à : Problème d’impression des formulaires #69692
    Merlin
    Maître des clés

    Vers 2006/2007 un administrateur a dû changer mon pseudo en MagicPDF suite à un bug du forum de MacGé et depuis il est resté.
    J'ai aussi reconnu ton pseudo, dès que j'ai reçu le message de confirmation d'inscription.  :Smiley03:

    en réponse à : Problème d’impression des formulaires #69690
    Merlin
    Maître des clés

    (A ce propos es-tu MagicPDF, qui aidait les gens sur Macgénération dans le temps ?)

    C'est bien moi, mais pourquoi « dans le temps » ?  :geek:

    en réponse à : Problème d’impression des formulaires #69688
    Merlin
    Maître des clés

    Ceci dit, on peut leur conseiller d'utiliser Acrobat Reader (ce que la plupart font déjà je pense).

    Le « conseil » ça ne fonctionne pas très bien, je te conseille plutôt d'utiliser ce truc de la mort qui tue efficace à 100% :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/

    Peux-tu me dire la marche à suivre pour aplatir à partir de Reader ?

    Acrobat Reader ne permet pas d'aplatir les champs de formulaires.
    Sur Windows il est toujours possible d'imprimer en PDF pour générer un nouveau PDF aplati mais ce n'est pas automatisable et ça ne fonctionne pas sur Mac.

    À ce stade je crois qu'il faudrait peut être penser à changer d'imprimeur (on n'est plus au XXe siècle), ça simplifierait beaucoup de choses.  :Smiley15:

    en réponse à : Problème d’impression des formulaires #69686
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Les champs de formulaire ne sont pas des objets comme les autres et ils ne supportent que le mode colorimétrique RVB.
    Mais ils devraient s'imprimer…

    Il faudrait prévoir dans ton formulaire la possibilité d'aplatir les champs de formulaire pour intégrer leur contenu à la couche graphique, et il faudrait aussi prévoir la conversion en CMJN. Mais ce n'est possible qu'avec Acrobat Pro, pas avec Reader.

    Donc il faut savoir de quel logiciel ton client est équipé.
    (L'aplatissement peut fonctionner avec Acrobat Standard mais pas la conversion CMJN)

    Merlin
    Maître des clés

    Il faut ajouter cette ligne :

    var f = this.numPages
    var pp = this.getPrintParams();
    pp.printRange = 1,f -1;
    pp.pageHandling = pp.constants.handling.fit; // ajuster au papier
    this.print(pp);

    Merlin
    Maître des clés

    Scripts qu'on peut améliorer ainsi pour éviter que l'utilisateur soit invité à enregistrer le document s'il n'a pas fait de modication avant de l'imprimer :

    // Document sera imprimé (document will print)
    var bSale = this.dirty;
    this.deletePages({nStart: this.numPages-1});
    console.println(« Suppression de la page modèle pendant l'impression… »);

    // Document a été imprimé (document did print)
    this.spawnPageFromTemplate({cTemplate: « pageModele »});
    this.dirty = bSale;
    console.println(« …puis réaffichage de la page. »);

    :geek:

    À propos de « this.dirty » voir : https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Doc_properties.htm?rhhlterm=dirty&rhsyns=%20#XREF_39186_dirty

    Merlin
    Maître des clés

    bebarth, merci pour l'exemple mais j'utiliserais les scripts autrement : placés en action « Document sera imprimé » et en action « Document a été imprimé ».
    Ainsi il n'y a pas forcément besoin de bouton Imprimer et ça fonctionne quelle que soit la commande choisie par l'utilisateur (menu Fichier : Imprimer, raccourci-clavier, icône d'outil rapide…) pour imprimer.
    :Smiley03:

    // Document sera imprimé (document will print)
    this.deletePages({nStart: this.numPages-1});
    console.println(« Suppression de la page modèle pendant l'impression… »);

    // Document a été imprimé (document did print)
    this.spawnPageFromTemplate({cTemplate: « pageModele »});
    console.println(« …puis réaffichage de la page. »);

    Merlin
    Maître des clés

    L'autre méthode, plus « brutale », c'est de recouvrir la page à ne pas imprimer avec un champ à fond blanc réglé pour être « invisible à l'écran et visible à l'impression ».
    Ainsi ladite page ne s'imprime pas, mais ça ajoute une page blanche/vide lors de l'impression.
    :Smiley03:

    Merlin
    Maître des clés

    Pas besoin de bidouiller, la solution est simple.
    Il faut générer une page à partir du template et masquer le template.

    Cette page générée « non statique » peut donc être supprimée avant l'impression, et re-générée ensuite à partir du template masqué.

    :Smiley15:

    Merlin
    Maître des clés

    Oui, Acrobat Reader ne peut pas afficher/masquer des Templates.
    Par-contre il* peut générer (spawn) des pages à partir de Templates et il peut supprimer les pages ainsi générées (mais il peut pas supprimer les pages statiques).

    Bizarrement, Foxit Reader permet lui aussi de générer des pages à partir de Templates mais pas de supprimer les pages ainsi générées…  :oh:

    * (Acrobat Reader DC et Adobe Reader XI seulement, pas les versions antérieures)

    en réponse à : Interligne Acrobat Pro DC #69646
    Merlin
    Maître des clés

    bebarth, tu as complètement raison mais… Tu vas vite constater que dès que le champ est vidé ou réinitialisé il perd tous ses réglages RTF et revient aux valeurs par défaut.
    Efface le texte dans ton document et essaie d'en saisir un autre.
    Merci Adobe.  :mur:  :oh:

    en réponse à : Interligne Acrobat Pro DC #69643
    Merlin
    Maître des clés

    Bonjour et bienvenue

    J'avais écrit une réponse hier mais le forum s'est évaporé au moment de la poster, donc je recommence.  :geek:

    L'interlignage est ingérable dans un champ de formulaire PDF.

    Mais ce n'est pas un drame car les formulaires numériques n'ont pas besoin de lignes ni de champs-peigne (précasés), je ne connais aucun type de champ de formulaire pouvant être rempli de travers ou en superposant les caractères.
    Donc la solution est simple : attribuer un fond blanc aux champs text pour masquer les lignes et/ou les champs-peigne sous-jacents.

    Reste le cas du formulaire mixte papier/numérique, dans ce cas j'utilise deux scripts, un qui attribue un fond blanc au champ dès qu'il est activé, et un autre qui vérifie si le champ a été rempli quand il est désactivé.
    Si le champ a été rempli il garde son fond blanc, sinon le script remet le fond transparent pour que ça puisse être rempli à la main.

    Donc en Action « Champ activé » (on Focus) je met ce script :

    Code:
    event.target.fillColor = color.white ;

    Et en Action « champ désactivé » (on Blur) :

    Code:
    if (event.value.toString().length > 0) {event.target.fillColor = color.white ;}
    else {event.target.fillColor = color.transparent ;}

    Le script en Action « champ désactivé » peut fonctionner sans l'autre, mais dans ce cas le fond ne devient blanc que quand le champ est désactivé et que s'il a été rempli.

    en réponse à : Liste déroulante et calques #69455
    Merlin
    Maître des clés

    :bravo:

    en réponse à : Valeur d’un champ, en fonction d’un autre… #69658
    Merlin
    Maître des clés

    La valeur du champ reste bloquée à la valeur précédente parce-que le script ci-dessus ne fonctionne pas.
    Ce n'est pas la 1re fois que je me fais avoir : il ne faut pas mettre .value en variable quand on veut l'assigner, ça ne fonctionne qu'en lecture.    :oh:  :geek:
    Par ailleurs j'ai aussi changé l'ordre des conditions, sinon dans certains cas certaines ne s'exécuteront pas.

    var f = this.getField(« Text8 »).value;
    var g = this.getField(« Text9.0 »);

    if (f>11) {
    (g.value = « – de 25 »);
    }
    else if (f<1) {
    (g.value = « + de 30 »);
    }
    else if (f<6) {
    (g.value = « 25 u00E0 30 »);  // u00E0 = « à » en Unicode
    }
    else if (f<12) {
    (g.value = « 25 »);
    }
    else {
      g.value = «  »;
    }

    Exemple ci-joint (parce-que cette fois j'ai testé…).

    en réponse à : Problème lors de l’export #69642
    Merlin
    Maître des clés

    Si c'est ça que tu appelles « un maximum de détails » je sens que ça va être laborieux…  :Euuuh:
    L'EPS est un format obsolète et périmé qu'il vaut mieux éviter d'utiliser.

    Peux-tu partager ton document ou un exemple ?
    Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html

    en réponse à : Valeur d’un champ, en fonction d’un autre… #69656
    Merlin
    Maître des clés

    Bonjour

    La rubrique Support & Assistance ne concerne que les utilitaires (gratuit) fournis par le site abracadabraPDF, le reste se passe ici.  :idee:

    Ton script peut être amélioré ainsi :
    – un peu d'Unicode pour la compatibilité, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
    – « else if » fait que le script s'arrêtera dès qu'il aura trouvé une concordance au lieu de continuer à tester toutes les conditions.
    – le « else » final sert à gérer tous les autres cas indéterminés et à vider le champ texte, qui sinon conserverait la valeur précédente.
    – pourquoi mettre un champ en variable et pas l'autre ? Pour le coup ça ne fait pas une grosse différence mais ça permet aux scripts de s'exécuter beaucoup plus vite et qui simplifie la maintenance.


    var f = this.getField(« Text8 »).value;
    var g = this.getField(« Text9.0 »).value;

    if (f>11) {
    (g = « – de 25 »);
    }
    else if (f<12) {
    (g = « 25 »);
    }
    else if (f<6) {
    (g = « 25 u00E0 30″);  // u00E0 = « à » en Unicode
    }
    else if (f<1) {
    (g = « + de 30 »);
    }
    else {
    g = «  »;
    }

    Modif : voir ci-dessous.

    en réponse à : Problème lors de l’export #69640
    Merlin
    Maître des clés

    Avec quel logiciel ?
    Avec quelles options d'exportation ?

    Merci de donner un maximum de détails, je suis magicien, pas devin.  :Smiley01:

    en réponse à : Bug lors du spawn de templates – formulaire pdf #69636
    Merlin
    Maître des clés

    Moi j'exporterais la nouvelle page du nouveau document et je la réimporterais dans l'ancien document, dans un premier temps avec ses champs de formulaire, et sans ses champs de formulaire si ça continue de bugger.

    Rien n'empêche de travailler sur des templates existants, la petite case qui est en regard de chaque template sert à l'afficher/masquer.

    en réponse à : Problème lors de l’export #69638
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Comment fais tu pour enregistrer/exporter ton formulaire en JPEG ?

    en réponse à : Bug lors du spawn de templates – formulaire pdf #69633
    Merlin
    Maître des clés

    Bonjour

    Je les ai ouverts, quelque chose a foiré lors de la réalisation du nouveau document.
    Moi je reprendrais l'ancien, et je recommencerais à partir de là.
    :priere:

    Merlin
    Maître des clés

    I want both comments , highlighted text  to be extracted.

    So I repeat my question  :

    Rakesh Kumar, why can't you use the Acrobat Pro embedded tool « Create Comment Summary » ?
    It look like we are trying to reinvent the wheel.

    en réponse à : Valeur avec un préfixe et format personnalsé #69618
    Merlin
    Maître des clés

    Bonjour

    Si le nombre de chiffres est fixe/toujours le même c'est typiquement un cas d'utilisation du Format : « Masque arbitraire », comme ceci : FACT-99999999999999999
    Voir : http://abracadabrapdf.net/forum/index.php/topic,1301.msg5905.html#msg5905

    Sinon il faut utiliser du JavaScript avec un peu de GREP.

    Merlin
    Maître des clés

    Rakesh Kumar, why can’t you use the Acrobat Pro embedded tool « Create Comment Summary » ?
    It look like we are trying to reinvent the wheel.

    en réponse à : Publipostage PDF avec Excel #62058
    Merlin
    Maître des clés

    étant d’un niveau « amateur » je voulais savoir où créer le code qui génèrera plusieurs fichiers à l’issue d’un import de données en .txt.

    – Tous les scripts JavaScript ?
    – Scripts JavaScript du document ?
    – Action du document ?

    Il faut que tu lises cet article : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    en réponse à : Formulaire duplique page selon liste deroulante #69612
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Oui c’est possible mais ça demande un bon niveau de connaissances en formulaire PDF et (surtout) en JavaScript.
    Il ne s’agit pas juste d’ajouter quelques champs de formulaire sur un document, c’est un projet de développement.

    en réponse à : Calcul heures dans un formulaire PDF #69607
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Ce sont des sujets déjà abordé dans ce forum.
    Le mieux serait que tu commences par faire une recherche afin de dégrossir la problématique, ensuite n’hésites pas à revenir avec des questions si ça coince.

    Merlin
    Maître des clés

    Download this attachment and install it.
    It’s a version made for you.

    Merlin
    Maître des clés

    Save this script as a .js file and place it in your Acrobat’s JavaScripts folder.

    Merlin
    Maître des clés

    Here is the script, I removed the « Reader only » condition.
    Interesting things are beetween lines 55 and 90.

    Code:
    // abracadabraTools DC – Comments report – Lister les commentaires
    //
    if (app.viewerVariation == « Reader » && app.formsVersion > 9) {
    if (app.language == « FRA ») {
    var strRapComment00 = « Lister tous les commentaires du document dans la Console »; // tooltip bouton
    var strRapComment01 = « Lister les commentaires… »; // menu
    var strRapComment01b = « Commentaires liste »; // bouton
    var strRapComment02 = « Choisir un mode de classement »;
    // var strRapComment03 = « Aucun »;
    var strRapComment04 = « Page »;
    var strRapComment05 = « Auteur »;
    var strRapComment06 = « Date »;
    var strRapComment07 = « Type »;
    var strRapComment08 = « LISTE DES COMMENTAIRES DU DOCUMENT : « ;
    var strRapComment09 = « Aucun commentaire n’a u00E9tu00E9 du00E9tectu00E9 dans ce document »;
    }
    else {
    var strRapComment00 = « Report all document comments in the Console »; // tooltip bouton
    var strRapComment01 = « Comments Report… »; // menu
    var strRapComment01b = « Comments Report »; // bouton
    var strRapComment02 = « Select a sort type »;
    // var strRapComment03 = « None »;
    var strRapComment04 = « Page »;
    var strRapComment05 = « Author »;
    var strRapComment06 = « Date »;
    var strRapComment07 = « Type »;
    var strRapComment08 = « LIST OF COMMENTS FOR DOCUMENT: »;
    var strRapComment09 = « No comments were detected in this document »;
    }
    }
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //
    if (app.formsVersion > 9) {
    // ajout du menu
    // si le menu abracadabraTools n’existe pas déjà
    var strNomMenu = « abracadabraTools u002A »;
    if (global.aTmenu != 1) {
    app.addSubMenu({ cName: strNomMenu, cParent: « Edit », nPos: 0});
    app.addMenuItem({ cName: « -« , cParent: « Edit », nPos: 0, cEnable: false, cExec:null});
    global.aTmenu = 1;
    }
    app.addMenuItem({ 
    cName: « Commentaires_rapport », 
    cUser: strRapComment01, 
    cParent: strNomMenu, 
    cExec: « listeDesComments(this) »,
    nPos: 0,
    cEnable: « event.rc = app.doc; » 
    }); 
    //
    //
    listeDesComments = app.trustedFunction (function (doc) {
    var aClassement = [];
    // Prompt the user for the sorting type 
    aClassement.push({cName: strRapComment02, bEnabled: false}); 
    aClassement.push({cName: « -« }); 
    // aClassement.push({cName: strRapComment03, cReturn: ANSB_None}); 
    aClassement.push({cName: strRapComment04, cReturn: ANSB_Page}); 
    aClassement.push({cName: strRapComment05, cReturn: ANSB_Author}); 
    aClassement.push({cName: strRapComment06, cReturn: ANSB_ModDate}); 
    aClassement.push({cName: strRapComment07, cReturn: ANSB_Type}); 
    var nSortType = app.popUpMenuEx.apply(app, aClassement) || ANSB_None; 
    // 
    // Change to true to reverse the sort order 
    var bReverseOrder = false; 
    //
    doc.syncAnnotScan(); 
    var a = doc.getAnnots({nSortBy: nSortType, bReverse: bReverseOrder}); 
    // 
    if (a) {
    var msg = « Page %s par %s le %s »;
    console.clear();
    console.show();
    console.println(strRapComment08 + this.documentFileName + « rrr »);
    for (var i = 0; i < a.length; i++) {
    console.println(util.printf(msg, 1 + a.page, a.author, util.printd(« yyyy/mm/dd HH:MM:ss », a.creationDate)));
    console.println(a.contents + « rr »);
    }
    }
    else {
    console.clear();
    console.show();
    console.println(strRapComment08 + this.documentFileName + « ]rr »);
    console.println(strRapComment09);
    // app.alert({cMsg: crop13, cTitle: strTitreId, oCheckbox: oCase, nIcon: 2, nType: 2})
    }
    });
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //
    // icône comments report
    var strIconComReport = « ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffb40000ffb40000ffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffffffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffb40000ffffffff »;
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //
    // ajout du bouton
    var oIconComReport = {count: 0, width: 20, height: 20, read: function(nBytes) {return strIconComReport.slice(this.count, this.count += nBytes);}};
    var comReportBouton =
    {cName: « Commentaires-rapport »,
    cExec: « listeDesComments(this) »,
    cEnable: « event.rc = event.target != null »,
    cMarked: « event.rc = false »,
    cTooltext: strRapComment00,
    oIcon: oIconComReport,
    cLabel: strRapComment01b};
    //
    try{app.removeToolButton(« comReport »);} catch(e){}
    try{app.addToolButton(comReportBouton);} catch(e){}
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //
    // menu Aide
    // si le menu Aide abracadabraTools n’existe pas déjà
    if (global.aTmenAide != 1) {
    if (app.language == « FRA ») {
    var strMenAide00 = « abracadabraTools »;
    var strMenAide01 = « Support & assistance… »;
    // var strMenAide02 = « Tu00E9lu00E9chargement »;
    var strMenAide02 = « Actualisation… »;
    var strMenAide03 = « https://www.abracadabrapdf.net/?p=111 »;
    var strMenAide04 = « Site web »;
    var strMenAide05 = « https://www.abracadabrapdf.net/ »;
    }
    else {
    var strMenAide00 = « abracadabraTools »;
    var strMenAide01 = « Support & Assistance… »;
    var strMenAide02 = « Check for update… »;
    var strMenAide03 = « https://www.abracadabrapdf.net/?p=972 »;
    var strMenAide04 = « Web Site »;
    var strMenAide05 = « https://www.abracadabrapdf.net/?p=1591 »;
    }
    // AJOUT DU MENU
    app.addMenuItem({ cName: « -« , cParent: « Help », nPos: 21, cEnable: false, cExec:null});
    app.addSubMenu({ cName: strMenAide00, cParent: « Help », nPos: 22});
    app.addMenuItem({ cName: strMenAide04, cParent: strMenAide00, nPos: 0, cExec: « app.launchURL(strMenAide05); »,});
    app.addMenuItem({ cName: strMenAide02, cParent: strMenAide00, nPos: 1, cExec: « app.launchURL(strMenAide03); »,});
    app.addMenuItem({ cName: strMenAide01, cParent: strMenAide00, nPos: 2, cExec: « app.launchURL(‘https://abracadabrapdf.net/forum/&rsquo;); »,});
    //
    // altération de la variable
    global.aTmenAide = 1;
    }
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    //
    }
    //
    ////////////////////////////////////////////////////////////////////////////////////////////////////
    Merlin
    Maître des clés

    You should try the COMMENTS REPORT plugin which is part of the free abracadabraTools :
    https://www.abracadabrapdf.net/utilitaires/utilities-in-english/abracadabratools_en/

    It can be customized (I can give you the source JS file) to works with Acrobat Pro, so comments will be exported as a new « Report », which is a regular PDF file.

    See:
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Report.htm?rhhlterm=report&rhsyns=%20
    &
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/Report_methods.htm?rhhlterm=report&rhsyns=%20

    Merlin
    Maître des clés

    radzmar is a well known XFA/Designer’s guru.
    :extra:

    en réponse à : Champs de formulaire modifiés à l’enregistrement #69575
    Merlin
    Maître des clés

    :bonjour:

    Merlin
    Maître des clés

    Il y a deux approches, soit les placer en fonction de leur ordre d’arrivée (donné par la variable j), soit les placer sous le bouton cliqué (ce qui est déjà le cas) en modifiant le décalage par rapport aux coordonnées du bouton.

    Merlin
    Maître des clés

    Moi je trouve que ça fonctionne plutôt bien, j’en ai même profité pour modifier la première ligne du script de façon à avoir exactement le même script dans chaque bouton.
    Exemple ci-joint.
    :Smiley03:

    Merlin
    Maître des clés

    Supprime cette ligne dans les scripts des boutons, c’est elle qui déplace les icônes des PJ déjà importées :

    Code:
    annots.point =[aRect[0]-1*(j), aRect[1]-15];
    Merlin
    Maître des clés

    Les boutons appellent toutes les pj du doc, meme celles qui déjà ont été mises avant

    Je ne comprend pas cette phrase.  :Euuuh:

    Peut-on paramétrer, sur 2 boutons différents, l’import de PJ à 2 ou plusieurs endroits différents du formulaire ?

    Oui, en utilisant un script différent dans chaque bouton, la différence étant les coordonnées de placement des PJ.
    C’est à dire la ligne : point: [400,500],

    en réponse à : Champs de formulaire modifiés à l’enregistrement #69573
    Merlin
    Maître des clés

    Bonjour et bienvenue

    C’est la première fois que je vois ça.  :Euuuh:
    Le formulaire fonctionne correctement avec Acrobat et Foxit Reader, ce qui tendrait à vérifier une fois de plus que Edge, Chrome, etc. ne respectent pas toutes les spécifications du format PDF (alias norme ISO 32000) et qu’ils sont avant tout des navigateurs web.

    La bonne nouvelle c’est que ce n’est pas très pénalisant, la mauvaise nouvelle c’est que je ne vois pas du tout quoi faire…

    En attendant que Microsoft et Googol corrigent les bugs de leurs logiciels tu peux toujours utiliser ce truc de la mort qui tue pour forcer l’ouverture de ton formulaire dans un « vrai » logiciel lecteur de PDF (Acrobat, Foxit…) :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/

    en réponse à : Logiciel de substitution à Adobe Acrobat Pro pour Mac #69514
    Merlin
    Maître des clés

    Je ne connais pas PDF Expert, ça fait des années que je ne l’ai pas ouvert.
    À l’époque c’était une bouse qui s’appuyait sur les PDF Services d’Apple, qui n’existait que sur Mac et qui n’offrait rien de plus qu’Aperçu.

    Merlin
    Maître des clés

    Toutes les réponses à tes questions se trouvent dans le (long) sujet dont j’ai posté l’URL ci-dessus, avec des exemples à télécharger  :geek:
    https://abracadabrapdf.net/forum/index.php/topic,3476.html

    Merlin
    Maître des clés

    August is vacation time, you should try again in September

    Merlin
    Maître des clés

    I don’t believe there are active members of this forum yet who are familiar with AEM/Designer or XFA-PDF.
    Do not be surprised if this subject remains unanswered.
    :joker:

    Merlin
    Maître des clés

    Bonjour

    AEM Form is not Acrobat and XFA-PDF are not real PDFs.
    So I must refer you to this forum dedicated to AEM Form:
    https://experienceleaguecommunities.adobe.com/t5/adobe-experience-manager/ct-p/adobe-experience-manager-community

    Merlin
    Maître des clés

    Les utilisateurs du formulaires doivent pouvoir attacher des pièces jointes à la suite de la première page, qui elle ne bouge pas.

    Ce n’est pas possible avec Acrobat Reader.
    Dans ton formulaire tu as astucieusement créé des pages modèles qui permettent d’importer des images (pages PDF) dans des boutons-champs image mais tu vas te heurter à plusieurs limites :
    – l’utilisateur devra importer son document page par page, sans se tromper dans l’ordre…
    – si le document de l’utilisateur contient 10 pages et pèse 2 Mo cela reviendra à importer : 10 X 2 Mo = 20 Mo dans le formulaire.
    – il est impossible de récupérer ou d’exporter les documents placés en tant qu’image dans un bouton-champ image !

    Je crois qu’il va falloir changer ton fusil d’épaule et proposer à l’utilisateur d’utiliser l’outil de commentaires « Pièce jointe » qui est justement fait pour ça.
    Ça ajoute le document importé dans le panneau des pièces jointes et non pas à la suite des pages du formulaire, mais c’est tellement plus user-friendly.

    Tuto complet et exemple ici : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/importer-programmatiquement-une-piece-jointe-dans-un-pdf/
    Voir aussi ce sujet qui complète le tuto : https://abracadabrapdf.net/forum/index.php?topic=3476

    FileAttachment01.jpg

    Merlin
    Maître des clés

    Bonjour

    La génération (spawn) de modèles (templates) ne peut se faire que page par page.
    S’il y en a plusieurs à générer en même temps l’astuce c’est de commencer par la dernière.
    :Smiley03:

    en réponse à : Ouvrir un logiciel à partir d’un bouton d’action #69544
    Merlin
    Maître des clés

    A priori la raison est simple : lesdits élèves n’utilisent pas Acrobat Reader (ou Foxit Reader) et préfèrent le lecteur par défaut* (Edge, Aperçu…) qui ne reconnait pas les pièces jointes et plein d’autres fonctionnalités du format PDF 1.7, alias norme ISO 32000.
    Explication complète ici : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/

    * « Défaut » étant effectivement le mot qui convient le mieux dans ce cas  :Smiley03:

    en réponse à : Liste MEre Fille – que faire du bout de code ? #69425
    Merlin
    Maître des clés

    Une virgule vous manque et rien ne va plus  :geek:

    var dependentListBoxFieldName = « ListeFille »;
    var dependentListValues =
    {
        « Clés »: [
            [« PG », « export C1 »],
            [« PP », « export C2 »],
            [« CBI », « export C3 »],
            [« PAC », « export C4 »],
            [« A(à préciser) », « export C5 »],
        ],
        « Badges »: [
            [« CA », « export B1 »],
            [« Ca », « export B2 »],
            [« Co », « export B3 »],
            [« A(àpréciser) », « export B4 »],
        ],
        « Matériels »: [
            [« Tel », « export Ma1 »],
            [« Ord », « export Ma2 »],
            [« Ta », « export Ma3 »],
            [« Im », « export Ma4 »],
            [« EV », « export Ma5 »],
            [« VP », « export Ma6 »],
            [« RS », « export Ma7 »],
            [« C(à préciser) », « export Ma8 »],
            [« Autre (àpréciser) », « export Ma9 »],
        ],
        « Mobiliers »: [
            [« Ves », « export Mo1 »],
            [« Bu/Ta », « export Mo2 »],
            [« AH », « export Mo3 »],
            [« AB », « export Mo4 »],
            [« A(à préciser) », « export Mo5 »],
            [« A( à préciser) », « export Mo6 »],
        ], // <-- la virgule manquante est ici
        « Locaux »: [
            [« Bu », « export Lo1 »],
            [« Ves », « export Lo2 »],
            [« Re/St », « export Lo3 »],
            [« Ac/De », « export Lo4 »],
            [« A( à préciser) », « export Lo5 »],
        ]
    };
    /*
    You probably don’t need to change anything from here down
    */
    if ((event.target.type == « combobox » && event.name == « Format ») || (event.target.type == « listbox » && event.name == « Keystroke »)) {
        if (event.target.type == « combobox ») {
            if (dependentListValues.hasOwnProperty(event.target.value)) {
                this.getField(dependentListBoxFieldName).setItems(dependentListValues[event.target.value]);
            }
            else {
                this.getField(dependentListBoxFieldName).clearItems();
            }
        }
        if (event.target.type == « listbox » && dependentListValues.hasOwnProperty(event.changeEx)) {
            this.getField(dependentListBoxFieldName).setItems(dependentListValues[event.changeEx]); 
        }
    }
    else {
        app.alert(« This script was not intended for this field type or event. »); 
    }

    en réponse à : Formulaire dans formulaire #69509
    Merlin
    Maître des clés

    Bonjour

    ajouter un fichier java script, c’est comme ajouter un module sur acrobat? :Euuuh:

    Oui mais pas seulement.
    Cet article est une réponse complète à ta question : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

    en réponse à : Logiciel de substitution à Adobe Acrobat Pro pour Mac #69511
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Souvent la bonne réponse vient de l’abandon de la « mauvaise » question : Acrobat Pro est toujours disponible en licence perpétuelle, rien n’oblige à s’abonner.  :Smiley03:
    https://helpx.adobe.com/fr/download-install/kb/acrobat-2020-downloads.html

    Sinon cet article liste un certain nombre de logiciels équivalents à Acrobat, la plupart sont disponibles en version d’essai :
    https://www.abracadabrapdf.net/ressources-et-tutos/pdf-mac/lecteurs-pdf-mac/

    Je te déconseille Foxit Phantom PDF Editor, en version Mac c’est une bouse (contrairement à la version Windows).
    Sinon, j’ai une tendresse particulière pour PDF Studio, qui existe en version française.

    en réponse à : Comment intégrer une balise ou une fonction spoiler ? #69482
    Merlin
    Maître des clés

    Avec Scribus, comme avec Acrobat tu double-cliques sur le champs pour afficher les propriétés et tu trouves le script.

    Oui et non.
    Scribus ne permet d’éditer que des documents Scribus, pas des PDF.
    Donc Grem ne peut pas voir ce qu’il y a dans les exemples, ni avec Acrobat Reader ni avec Scribus.

    en réponse à : Comment intégrer une balise ou une fonction spoiler ? #69469
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Il y a plusieurs possibilités : afficher/masquer un champ, afficher/masquer un calque, afficher/masquer une infobulle, afficher un message dans une boite d’alerte.
    Je ne connais pas toutes les possibilités de LibreOffice mais je sais que c’est faisable avec le logiciel libre Scribus : https://www.scribus.net/

    en réponse à : Remplissage automatique des champs en double #69489
    Merlin
    Maître des clés

    Bonjour

    Pour passer à un niveau supérieur… qui vient de se présenter à moi… et si c’est un menu déroulant ?

    Ça vaut pour tous les types de champs, sauf les champs de signature.

    en réponse à : Télécharger FindChangeList.txt #69468
    Merlin
    Maître des clés

    Ce n’est pas « une fonction d’Acrobat », c’est une propriété du format PDF qui est ignorée par les logiciels lecteurs de PDF bas-de-gamme.
    On trouve aussi les pièces jointes dans Foxit et autres logiciels sérieux.
    :idee: 

    en réponse à : Télécharger FindChangeList.txt #69466
    Merlin
    Maître des clés

    Bonjour

    Tout est dans le PDF que vous avez téléchargé.
    Le secret c’est qu’il faut ouvrir ce PDF avec Acrobat (Reader ou Pro), et non pas avec Aperçu ou avec Edge.
    :idee:

    en réponse à : Liste déroulante et calques #69449
    Merlin
    Maître des clés

    Waou !
    Chapeau bas.

    :bravo:  :bonjour:

    en réponse à : Signature électronique – mention ‘lu et approuvé’ #69463
    Merlin
    Maître des clés

    Ne serait il pas possible que :
    si le document n’est pas signé ; lors de la fermeture de celui-ci, la mention Lu et approuvé soit effacée

    Bonne idée, je n’ai pas trouvé mieux.

    en réponse à : Signature électronique – mention ‘lu et approuvé’ #69460
    Merlin
    Maître des clés

    Si c’est le juridique qui le veut no problemo.
    Exemple ci-joint : le script de validation est dans le champ texte

    en réponse à : Signature électronique – mention ‘lu et approuvé’ #69458
    Merlin
    Maître des clés

    Bonjour

    Oui c’est facile à faire avec un peu de JavaScript, mais en fait tu veux plaquer un processus papier sur un processus numérique : en effet, lors d’une signature numérique le document est forcément lu et approuvé, surtout si on a prévu un petit parcours à base de coches le long du document.
    Donc il n’est pas nécessaire d’y ajouter cette mention.

    Mais si tu y tiens vraiment il faudrait que tu partages ton document, ou un exemple.

    Merlin
    Maître des clés

    Waou !
    :bravo:

    Merlin
    Maître des clés

    Le document ci-joint devrait t’intéresser, c’est un modèle de fax à deux pages.
    Quand la saisie déborde du premier champ sur la première page le texte passe automatiquement dans la deuxième.
    Même chose si on copie-colle un texte trop long, la partie débordante est placée dans la deuxième page.

    Merlin
    Maître des clés

    On pourrait peut être inverser la problématique.
    Je ne sais pas pourquoi tu veux savoir si le contenu d’un champ texte « déborde », mais si tu interdisais le débordement des champs tu n’aurais pas ce problème…
    :idee:

    en réponse à : Objet sur un champ #69441
    Merlin
    Maître des clés

    Bonjour

    Dans un champ de type Bouton on peut importer une image (le trait orange) et il y a les options nécessaires pour que l’image (le trait) s’agrandisse/se réduise en fonction de la taille du bouton.
    On peut placer un champ de formulaire par-dessus un autre.

    en réponse à : Verrouiller un fichier PDF #69437
    Merlin
    Maître des clés

    Si bien sur, tu as la propriété intellectuelle du script.
    Il faut voir ça comme un roman ou un article, tu en es l’auteur, tu en as les droits et tout le monde peut le lire.

    La différence c’est qu’on peut publier nos scripts sans mise en page, sans espace, sans ponctuation, etc. en les minifiant.
    On peut aussi les noyer dans un flot de fonctions redondantes ou inutiles.  :geek:

    L’idée c’est de rendre la copie ou la réutilisation du script plus compliquée qu’une création ex nihilo.
    L’expérience montre que même s’il est soigneusement commenté et avec des variables bien nommées il est toujours difficile de reprendre un script (complexe) qu’on n’a pas créé, alors reprendre un script « unminified » (déminifié) brut de décoffrage… Bon courage !  :mur:

    en réponse à : Verrouiller un fichier PDF #69435
    Merlin
    Maître des clés

    Sinon, pour répondre à ton interrogation le moyen de plus souple que j’ai trouvé pour protéger mes scripts c’est de les « minifier », c’est-à-dire de les réduire juste à ce dont la machine à besoin.
    https://www.it-connect.fr/quest-ce-que-la-minification/
    https://javascript-minifier.com/
    https://jscompress.com/

    On peut aussi « obfusquer » les scripts, c’est-à-dire minifier + rendre difficile à lire (ce n’est pas du chiffrage), mais l’inconvénient c’est que la plupart des antivirus et antispams rejettent les PDF dont les scripts sont obfusqués, puisqu’ils ne peuvent pas lire les scripts et qu’ils sont justement faits pour éviter les scripts malicieux.

    en réponse à : Verrouiller un fichier PDF #69434
    Merlin
    Maître des clés

    Les formulaires PDF-XFA ne sont pas des documents PDF, ils utilisent un format propriétaire basé sur XML qui a été encapsulé dans une coquille PDF quand la société créatrice a été rachetée par Adobe dans les années 90.

    Ces formulaires sont pleinement éditables avec Designer et pas du tout avec Acrobat, mais c’est une question de format, pas de protection.

    en réponse à : Verrouiller un fichier PDF #69432
    Merlin
    Maître des clés

    En fait Adobe appelle ça des « Restrictions d’utilisation », ce n’est pas vraiment une protection, c’est plutôt fait pour éviter les manipulations malencontreuses ou hasardeuses.

    Contrairement au « mot de passe à l’ouverture » qui est une vraie protection (comme la protection par Certificat).

    en réponse à : Verrouiller un fichier PDF #69430
    Merlin
    Maître des clés

    Ça ne protège que contre les grand-mères et ceux qui ne savent pas utiliser Googol, il existe des dizaines de sites et d’utilitaires comme celui-ci :
    https://smallpdf.com/fr/unlock-pdf

    :geek:

    en réponse à : Verrouiller un fichier PDF #69428
    Merlin
    Maître des clés

    Bonjour

    Oui, ça serait sympa de partager le truc parce-que ça fait plus d’une décennie que je cherche comment faire.

    en réponse à : Liste MEre Fille – que faire du bout de code ? #69417
    Merlin
    Maître des clés

    Bonjour

    L’exemple ( http://practicalpdf.com/acrobat-javascript-examples/dependentLists.pdf ) fourni sur la page que tu cites me parait simple à adapter, il te suffit de copier-coller les deux listes déroulantes et d’adapter le script, qui se trouve dans le champ « masterDropdown ».

    Pour la duplication c’est à peine plus compliqué, il faut dans le script adapter le nom du champ cible (dependentDropdown.1, dependentDropdown.2, dependentDropdown.3, etc).

    Merlin
    Maître des clés

    Bonjour

    Je crois que l’utilisation de l’évènement fieldFull est ta seule planche de salut :
    https://opensource.adobe.com/dc-acrobat-sdk-docs/acrobatsdk/html2015/Acro12_MasterBook/JS_API_AcroJS/event_properties.htm?rhhlterm=fieldFull&rhsyns=%20#XREF_98939_fieldFull

    Il y a deux exemples intéressants.

    en réponse à : Champs visibles conditionnels #69399
    Merlin
    Maître des clés

    Bonjour

    Je crois savoir que jctremblay fait de gros formulaires alors méfiance avec les scripts de calculs qui sont pénalisant en terme de performance quand il y en a beaucoup.
    (Tous les scripts de calcul sont exécutés à chaque clic de l’utilisateur).

    en réponse à : Bouton reset #69388
    Merlin
    Maître des clés

    C’est moi qui me suis emmelé dans mon explication, et je n’aurais pas dû parler de « widget » (je l’ai supprimé ci-dessus).

    En fait ce qui n’est pas possible c’est ça :
    (this.getField(« repOp1« ).value) = « ? »;

    (this.getField(« repOp1.1« ).value) = « ? »;

    S’il existe un champ nommé « repOp1.1 » il ne peut pas y avoir dans le document un autre champ nommé « repOp1 » car du coup ce nom est utilisé par le « champ parent virtuel », qui existe en tant qu’objet JavaScript mais pas sur une page.
    Donc la première de ces deux lignes devrait ne pas fonctionner et renvoyer une erreur dans la console.

    Du coup je suppose que c’est peut être le même problème qui se pose pour le champ « repOp2 » puisque dans le script il n’y a pas cette ligne :
    (this.getField(« repOp2.1« ).value) = « ? »;

    en réponse à : Bouton reset #69386
    Merlin
    Maître des clés

    On peut s’adresser au champ parent (repOp1) pour modifier certaines propriétés de tous les champs du groupe en même temps, par exemple la police ou la couleur.
    Mais ça ne fonctionne pas avec « value », il faut s’adresser à chaque champ enfant en particulier.

    en réponse à : Bouton reset #69384
    Merlin
    Maître des clés

    Bonjour

    Cette ligne :
    this.getField(« repOp1 »).value = « ? »;

    Ne peut pas s’exécuter s’il existe un champ nommé repOp1.1

    Et je suppose qu’il en va de même pour :
    this.getField(« repOp2 »).value = « ? »;

    Mais pour en dire plus il faudrait voir ton document, ou un extrait.
    Utilises tu la console JS pour voir les erreurs ?

    en réponse à : Réduction fraction #69380
    Merlin
    Maître des clés

    Bonjour

    I would have liked to find books in French on javascript for pdf forms but this kind of book does not exist, so I have no other choice to learn javascript for pdf than to do it in English …

    You should start here: https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/

    en réponse à : Compter et bloquer 5 cases à cocher (checkbox) #69370
    Merlin
    Maître des clés

    Sinon tu as ce post qui a traité le sujet :

    Ta mémoire m’épate !

    en réponse à : Compter et bloquer 5 cases à cocher (checkbox) #69369
    Merlin
    Maître des clés

    :bonjour:

    En effet je voulais faire une sorte de variable globale qui totalisait les coches et une sorte de fonction globale. Comme en programmation MVC.
    Mais là en fait tu refais faire le calcul à chaque clic sur une case.

    Ça se joue à quelques millisecondes près.  :Smiley03:

    en réponse à : Compter et bloquer 5 cases à cocher (checkbox) #69366
    Merlin
    Maître des clés

    Bonjour

    Peut être en exportant la valeur 1 pour chaque case cochée puis un script verrouille en écriture chaque checkbox (this.getField(« nom_de_ta_checkbox »).readOnly=true) si la somme des valeurs exportées = 5

    J’ai repris l’idée : quand le compte arrive à plus que 5, la dernière case cliquée se décoche immédiatement et affiche une alerte (facultative).
    Les cases ont toutes le même script (commenté et avec affichage du total dans la Console), qu’on pourrait mettre en fonction.
    Ci-joint.

    en réponse à : Affichage d’un champ de texte si un code est saisi #69355
    Merlin
    Maître des clés

    Oui, un script non protégé s’arrête de fonctionner dès qu’il rencontre une erreur.
    C’est ce qui t’es arrivé avec le script que tu as posté : le compte de la boucle for commençait à zéro mais il n’y a pas de champ « c0 », donc le script s’arrête là.

    Si tu avais activé la Console JS tu aurais vu le message d’erreur. Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

    en réponse à : Affichage d’un champ de texte si un code est saisi #69353
    Merlin
    Maître des clés

    Si tu ne veux pas que le script cesse de fonctionner quand il rencontre un nom de champ qui n’existe pas il faut lui ajouter une protection :

    for (var i = 1; i < 8; i++) {
    if (this.getField(« c » +i ) != null) {
    this.getField(« c » +i ).display = display.visible;
    }
    }

    en réponse à : Extraire bulletin à partir d’un élément texte #69359
    Merlin
    Maître des clés

    Seul bebarth peut te répondre  :joker:

    Ce qui ne devrait pas tarder…  :priere:

    en réponse à : Extraire bulletin à partir d’un élément texte #69357
    Merlin
    Maître des clés
    en réponse à : Affichage d’un champ de texte si un code est saisi #69351
    Merlin
    Maître des clés

    Les champs sont nommés : c1 à c7
    Mais la boucle commence à zéro…  :tutut:

    Par ailleurs, il me semble bien qu’il ne faut pas utiliser d’opérateur double ( <= ) dans les boucles for

    Essaie plutôt ça :

    for (var i = 1; i < 8; i++) {
    this.getField(« c » +i ).display = display.visible;
    }

    en réponse à : Affichage d’un champ de texte si un code est saisi #69349
    Merlin
    Maître des clés

    Bonjour

    La différence c’est :

    if (cSaisie = 1024) {
    if (cSaisie == code) {

    = signifie « devient égal à »,
    == signifie « est égal à ».

    Voir : https://developer.mozilla.org/fr/docs/conflicting/Web/JavaScript/Reference/Operators_03cb648b1d07bbaa8b57526b509d6d55

    en réponse à : Je rencontre un souci avec la calculatrice #69346
    Merlin
    Maître des clés

    Bonjour

    Comme il est indiqué sur la page où tu l’as téléchargée cette calculatrice est un document exemple fourni avec Acrobat 5 et je n’ai fait qu’en modifier l’aspect des champs* tout en faisant bien attention de ne pas toucher aux scripts.

    Donc je ne peux pas vraiment t’aider sinon en te suggérant une autre méthode pour la placer dans un document existant : utilise la fonction « Insérer une page » et importe le fichier Calculatrice, ainsi tu devrais pouvoir la copier-coller ailleurs dans le document et ensuite pouvoir supprimer la page importée, sans nuire à son fonctionnement.

    Cette méthode à l’avantage d’importer TOUS les scripts du document cible, pas seulement ceux qui sont dans les pages.
      :Smiley03:

    * Parce-que l’originale était vraiment trop moche…  :tutut:

    en réponse à : Création d’une notice – Page d’info non imprimable #48426
    Merlin
    Maître des clés

    As tu essayé avec des calques ?
    Aujourd’hui c’est réponse que je donnerais à la question originelle de ce sujet.

    en réponse à : Création d’une notice – Page d’info non imprimable #48424
    Merlin
    Maître des clés

    Joli déterrage !
    :geek:

    Merlin
    Maître des clés

    Remercie surtout bebarth, hier j’étais pris toute la journée et surtout, je n’avais pas bien compris ce que tu voulais faire !

    Merlin
    Maître des clés

    Bonjour et bienvenue

    C’est un sujet récurrent plusieurs fois abordé dans ce forum.
    Hélas ce forum ne permet pas de donner un lien vers un résultat de recherche, alors il va falloir que tu recherches toi-même, utilise le bouton « Rechercher » ci-dessus avec les mots-clés : importation, data, CSV, excel…

    Une fois que tu auras tout ingéré, n’hésites pas à revenir poser une question s’il y a un blocage.
    :Smiley15:

    en réponse à : Changement de couleur dans champ #69330
    Merlin
    Maître des clés

    «Je vais me coucher moins niaiseux !» Espression très québécoise.

    C’est toujours plus fleuri que l’expression française : « Je me coucherai moins con ce soir »
    :Smiley03:

    Merlin
    Maître des clés

    As tu créé les champs de formulaire dans InDesign ou dans Acrobat Pro ?
    Si dans Acrobat Pro : as tu utilisé la détection-création automatique des champs ?

    En tout cas je serais curieux de voir le fichier INDD, si tu pouvais me le faire passer (avec les polices, mais pas besoin des images).

    en réponse à : Changement de couleur dans champ #69323
    Merlin
    Maître des clés

    Sur Android les meilleures apps pour exploiter des formulaires PDF sont Acrobat Mobile, qPDF Reader et ezPDF Reader.

    en réponse à : Changement de couleur dans champ #69321
    Merlin
    Maître des clés

    Quelle app utilises tu sur Android ?
    Acrobat Mobile ou autre ?

    en réponse à : Changement de couleur dans champ #69319
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Voilà presque le même script, le orange n’existe pas en « couleur nommée » c’est pourquoi il faut le déclarer en utilisant des valeurs RVB :

    Code:
    var cSaisie = event.value;
    var oChampB = this.getField("B");

    if (cSaisie >= 0 && cSaisie <= 4.4) {
    oChampB.value = "Normal";
    oChampB.fillColor = color.green;
    }
    else if(cSaisie >= 4.5 && cSaisie <= 7) {
    oChampB.value = "Alerte";
    oChampB.fillColor = ["RGB", 255/255, 128/255, 0/255]; // orange
    }
    else if(cSaisie >= 7.1 && cSaisie <= 50) {
    oChampB.value = "Danger";
    oChampB.fillColor = color.red;
    }

    Merlin
    Maître des clés

    J’ai trouvé le champ et le script coupable (voir capture), et j’ai l’explication : https://community.adobe.com/t5/acrobat/ghost-javascript/td-p/11751827 (il y a un bouton « Traduire » sous chaque message)

    Mais je n’ai pas trouvé la solution : après avoir supprimé le champ coupable (et ses frères), recréé un champ tout neuf et remis une addition en notation simplifiée, le problème recommence (message d’erreur) et le script coupable réapparait.

    Alors qu’il n’y a aucun champ ni rien d’autre dans ce document dont le nom commence par « AF » ou qui le contienne.
    :Euuuh:  :doute:  :mur:

    Je me demande si tous les champs ne devraient pas être au format « Nombre » mais là je n’ai pas le temps d’essayer.  :joker:

    Merlin
    Maître des clés

    Je suis sur Windows et je n’ai jamais vu ça.

    Dans les deux cas (calcul ou notation simplifiée) la console retourne systématiquement :
    SyntaxError: identifier starts immediately after numeric literal

    Normalement ce message est retourné quand on utilise un « identifier » (variable, fonction…) dont le nom commence par un chiffre, ce qui est interdit en JavaScript (calcul et notation simplifiée sont traduits en JavaScript à la volée pour pouvoir être exécutés. Le format PDF ne comprend rien d’autre que JavaScript).

    Mais normalement ça ne concerne pas les noms des champs de formulaire, ce qui semble être le cas ici car il n’y a ni variable ni fonction.

    J’ai supprimé tous les champs et je les ai recréées avec la détection automatique d’Acrobat Pro : c’est toujours même problème avec la notation simplifiée mais le calcul semble fonctionner…

    Quand je crée un nouveau PDF et que j’y ajoute des champs dont les noms commencent par des chiffres je n’ai pas ce problème, tout fonctionne comme attendu…

    J’en perds mon LatinScript…  :geek:  :Euuuh:

    Je n’ai pas le temps d’aller plus loin aujourd’hui mais je vois plusieurs solutions :
    – renommer les champs en ajoutant un préfixe (on peut utiliser les tirets _ ou – ),
    – exporter en PDF sans les champs de InDesign et les créer avec Acrobat Pro,
    – utiliser JavaScript pour les calculs (non testé),
    – …

    Merlin
    Maître des clés

    Bonjour et bienvenue

    =>la fenêtre avec tous les champs listés s’ouvre, je sélectionne mes choix, MAIS quand je valide les champs sélectionnés, ils n’apparaissent pas dans la fenêtre de calcul !

    C’est un bug connu de la version Mac, je ne sais pas comment on le contourne.

    Par-contre c’est la première fois que j’entends dire que la notation simplifiée ne fonctionne pas, peux tu partager tout ou partie de ton document et/ou des captures d’écrans ?
    (Voir : https://abracadabrapdf.net/forum/index.php/topic,2974.0.html )

    en réponse à : Fusion de pages dans un seul doc #69302
    Merlin
    Maître des clés
    en réponse à : Validation de valeur d’un champ de saisie #69281
    Merlin
    Maître des clés

    Toutes les meilleures références concernant JavaScript sont ici :
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/

    Mais il va falloir copiner avec Googol Traduction car il n’y a rien en français.
    :geek:

    Merlin
    Maître des clés

    Oui effectivement, j’avais déjà lu des articles comme quoi le % était merdique.

    C’était moi l’auteur ?  :Smiley08:

    Je me suis mis en nombre et mon résultat est 0.67. Je ne comprends pas pourquoi je n’ai pas 0.50

    Tu parles d’un formulaire sur lequel tu travailles et que tu connais bien, mais pas moi.
    Où vient ce résultat ?
    De quels champs dépend-il ?
    Quelle est la formule de calcul utilisée ?

    Je le place où ce script ?

    Capture ci-joint.
    Il faut absolument que tu lises cet article : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

Affichage de 99 réponses de 892 à 990 (sur un total de 10,390)