Donnez vie à vos documents numériques !
 

jctremblay

Toutes mes réponses sur les forums

Affichage de 99 réponses de 1 à 99 (sur un total de 219)
  • Auteur
    Réponses
  • en réponse à : Liste de Choix et de Sous-choix #75932
    jctremblay
    Maître des clés

    C’est parfait, et c’est d’un sacré niveau par rapport à ma « nocivisitude ». Merci beaucoup+++ Ma7hieu

    Ne t’en fais pas… «Tout expert fut au départ un amateur!»
    La majorité de ce que j’ai appris fut ici dans ce forum inestimable. Et il m’en reste encore énormément à apprendre. C’est sans fin.

    en réponse à : Liste de Choix et de Sous-choix #75928
    jctremblay
    Maître des clés

    Bonjour,

    Voilà une version modifiée.

    Si j’ai bien compris ce que tu voulais c’est-à-dire de rétinialiser les choix, et les rendre invisibles selon les cases à cocher de l’exemple 2.

    Premièrement, j’ai nommé les trois cases «Exemple 2», mais avec des valeurs différentes. De cette façon, ils se comportent comme des boutons radio, mais avec l’avantage de tout les désactiver.

    Le code pour l’exemple 2 est maintenant dans un script de document, et seulement la fonction est inscrite dans les trois cases.

    Maintenant, il faut savoir si tu as l’intention d’avoir plus d’options, et d’exemple. Si oui, il pourrait être possible d’avoir un script encore plus générique, qui permettrait d’ajouter des exemples et des choix sans avoir à modifier à nouveau les codes. Cela demandera d’avoir une règle plus stricte et prévisible pour les noms des champs.

    • Cette réponse a été modifiée le il y a 3 jours et 11 heures par jctremblay.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liste de Choix et de Sous-choix #75922
    jctremblay
    Maître des clés

    En me basant sur la même logique que Michel, j’ai réduit la longueur des codes et ajouté une réinitialisation des cases Choix si la case à cocher principale est décochée.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : GREP Indesign #75921
    jctremblay
    Maître des clés

    Pour un style GREP avec des nombres sans fin ex: 123 456 789 123 456 789 le GREP à utiliser sera être ceci: \d{1,3}(\s\d{3})+

    Pour le faire dans un rechercher/remplacer ceci:
    Rechercher: \d\K\h(?=(\d\d\d)+)
    Remplacer: ~S

    en réponse à : GREP Indesign #75912
    jctremblay
    Maître des clés

    C’est pour exécuter dans InDesign ou Acrobat? Et qu’est-ce que tu veux faire avec l’espace trouver? La supprimer ou la remplacer par autre chose.

    en réponse à : Contrôler la visibilité de case à cocher #75889
    jctremblay
    Maître des clés

    Pour l’instant, j’utilise aussi ce même truc!!  🙂

    en réponse à : Contrôler la visibilité de case à cocher #75887
    jctremblay
    Maître des clés

    Parlant de convention des noms des champs.
    Comment est-il possible de faire des copies d’un champ sur une page ex: «T1.1», «T1.2», «T1.3», «T1.4» et continuer la série «T1.5», «T1.6», «T1.7» etc. sur une seconde page? J’imagine que cela peut se faire seulement à l’aide d’un script.

     

    en réponse à : Contrôler la visibilité de case à cocher #75883
    jctremblay
    Maître des clés

    Merci Merlin, ce PDF n’est pas le mien. Il y a plusieurs dizaine de pages et des centaines de cases à cochés. Je n’avais pas le «goût» de tout les refaire.

    en réponse à : Contrôler la visibilité de case à cocher #75872
    jctremblay
    Maître des clés

    Merci Merlin….
    Si simple! Des fois je me complique trop la vie.

    J’ai adapter car les case à contrôle, ne commence pas par ISHT- mais toujours après ce qui suit.
    Le nombre des champs à contrôler peut aussi varier en quantité.
    Est-ce que tu y vois quelque chose qui pourrait être mieux ?

    Ce qui donnes ceci:

    function folCoche() {
    var prefixe = event.target.name.split("-")[1];
    var i = 1;

    while (this.getField(prefixe + "-" + i)) {
    var oFlds = this.getField(prefixe + "-" + i);

    if (event.target.value != "Off") {
    oFlds.display = display.visible;
    } else {
    oFlds.display = display.hidden;
    oFlds.value = "Off";
    }
    i++;
    }
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Boite de dialogue #75749
    jctremblay
    Maître des clés

    Merlin à raison, cela ne se fait que dans un contexte d’autorisation (script d’application, console ou protection renforcée)

    Voici une modification qui fonctionnera dans ce contexte.

    function Save() {
    var userName = app.response("Veuillez entrer votre nom :");
    if (!userName || userName.trim() === "") {
    app.alert("Le nom ne peut pas être vide.");
    return;
    }

    var now = new Date();
    var date = util.printd("yyyy.mm.dd-HH", now) + "h" + util.printd("MM", now);
    var newFileName = date + "_organisation-" + userName + ".pdf";
    var filePath = this.path.replace(this.documentFileName, "");
    var newFullFilePath = filePath + newFileName;
    try {
    this.saveAs(newFullFilePath);
    } catch (e) {
    app.alert("Erreur, l'enregistrement suivant est impossible : " + newFullFilePath);
    }
    }

     

    en réponse à : Script pour changer de Helvetica à Courier ? #75675
    jctremblay
    Maître des clés

    Absolument…

    for (var i = 0; i < this.numFields; i++) {
    var fName = this.getNthFieldName(i);
    var f = this.getField(fName);
    f.textSize = "10";
    }

    en réponse à : Sauvegarde prefixe date #75672
    jctremblay
    Maître des clés

    bonjour,

    …. car il faut placer ce script en local dans le répertoire JavaScript d’Acrobat (ou Reader) de chaque ordinateur.

    Oui, et c’est là le problème. Alternativement (à un script d’application), l’utilisateur peut ajouter un dossier/fichier dans ses préférences > section Protection (renforcée).

    en réponse à : Script pour changer de Helvetica à Courier ? #75666
    jctremblay
    Maître des clés

    le script doit être inséré dans chaque champ modifiable, je pensais que c’était le PDF entier avec les champs modifiables.

    Non. Tu l’execute dans la Console JavaScript

    en réponse à : Sauvegarde prefixe date #75662
    jctremblay
    Maître des clés

    De plus, le bout de code que tu as trouvé ne préserve pas le nom du document original. Et s’il y a déjà une date, elle est conservée et une deuxième ajouter. Celui-ci conserve le nom, et remplace la date si déjà présente.

    var date = util.printd("yyyy.mm.dd", new Date());
    var fileName = this.documentFileName;
    fileName = fileName.replace(/^\d{4}\.\d{2}\.\d{2}-/, "");
    var newFileName = date + "-" + fileName;
    var filePath = this.path.replace(this.documentFileName, "");
    var newFullFilePath = filePath + newFileName;
    try {
    this.saveAs(newFullFilePath);
    } catch (e) {
    app.alert("Erreur, l'enregistrement suivant est impossible : " + newFullFilePath); }

    en réponse à : Sauvegarde prefixe date #75661
    jctremblay
    Maître des clés

    Il est important de noter que l’exécution d’un tel script n’est pas permise sur un bouton.

    en réponse à : Script pour changer de Helvetica à Courier ? #75648
    jctremblay
    Maître des clés

    C’est très pénible modifier des formulaires avec la nouvelle interface!

    en réponse à : Script pour changer de Helvetica à Courier ? #75634
    jctremblay
    Maître des clés

    Bebarth, j’avais oublié celui-ci.

    En fait, j’ai remarquer que le fichier aT-ProprietesChamp.js n’est pas dans l’installateur d’AbracadabraTools2020 mais seulement dans la version 2019.

    Pour ceux qui lisent, AbracadabraTools est un bijoux.

    en réponse à : Script pour changer de Helvetica à Courier ? #75622
    jctremblay
    Maître des clés

    Non. Il n’y a pas de différence. Pour les polices standard on peut utiliser font. + l’abbréviation:

    f.textFont = font.Helv;

    ou le nom complet.

    f.textFont = "Helvetica";

    Je me sert de cette ligne pour savoir comment écrire le nom des polices non standard. Et il me retourne le nom complet.
    this.getField("txt").textFont
    Helvetica

     

     

    en réponse à : Supprimer une action #75618
    jctremblay
    Maître des clés

    Oui, c’est brutal en effet. Ce que je n’aime pas, c’est que ce script va mettre des scripts «vide» partout. C’est inoffensif, mais ça m’énerve (comme les espaces en fin de paragraphes). 🙂

    en réponse à : Supprimer une action #75616
    jctremblay
    Maître des clés

    Bonjour Oui et non. Acrobat a un comportement curieux, si on remplace un script par rien ça ne fonctionne pas toujours. Alors quand je veux “nettoyer” un document je remplace les scripts par un double-slash, ce n’est pas rien mais c’est comme rien :

    C’est ce que je fais en ce moment aussi. C’est bête quand même un peu…

    en réponse à : Script pour changer de Helvetica à Courier ? #75613
    jctremblay
    Maître des clés

    Si c’est pour l’aspect des champs (de tout les champs!), tu peut utiliser ceci:

    for (var i = 0; i < this.numFields; i++) {
    var fName = this.getNthFieldName(i);
    var f = this.getField(fName);
    f.textFont = "Courier";
    }

    • Cette réponse a été modifiée le il y a 1 mois et 1 semaine par jctremblay.
    en réponse à : Exportation des données #75579
    jctremblay
    Maître des clés

    bonjour, Non, je ne crois pas qu’il soit possible d’exporter directement en .xlsx, mais par contre on peut exporter au format .csv ! On doit pouvoir ensuite convertir le format avec une macro VBA.

    Merci pour la confirmation. Il y a plusieurs outils de conversion en ligne de CSV > EXCEL ou JSON > EXCEL. Puis les CSV peuvent se convertir à l’ouverture dans EXCEL. Donc ça va!

    PS: Non, mais quelle famille de «Geek»… 🙂

    en réponse à : Ajout de line de code avec JavaScript #75498
    jctremblay
    Maître des clés

    Merci Bebarth, un détail important.

    en réponse à : Ajout de line de code avec JavaScript #75495
    jctremblay
    Maître des clés

    Michel, si c’est pour mettre en action dans tout les listes déroulantes, tu peux executer ça dans la Console.

    for (var i = 0; i < this.numFields; i++) {
    var f = this.getField(this.getNthFieldName(i));
    if (f.type === "combobox") f.setAction("MouseUp", "fillDropdown();");
    }

    en réponse à : Ajout de line de code avec JavaScript #75446
    jctremblay
    Maître des clés

    Oui, j’ai vu. Je dois tester. Merci!
    J’aime bien la lisibilité qu’offre le résultat de https://jsstringconverter.bbody.io/

    en réponse à : Ajout de line de code avec JavaScript #75444
    jctremblay
    Maître des clés

    Merci Merlin!
    Exactement ce qu’il me fallait. Je me voyais mal faire ça manuellement sur plus de 600 lignes.

    en réponse à : Ajout de line de code avec JavaScript #75442
    jctremblay
    Maître des clés

    J’ai ce javascript qui ajoute un script de document.

    var scriptName = “ScriptPersonnalise”;
    var scriptContent = “app.alert(‘Bonjour, ceci est un script de document personnalisé !’);”;
    this.addScript(scriptName, scriptContent);

    C’est quand le scriptContent est plusieurs dizaine de ligne que ça se complique.

    Le but étant de pouvoir écrire du script à l’aide d’un javascript.

    en réponse à : Restreindre/Permettre l’impression #75397
    jctremblay
    Maître des clés

    Merci Merlin,
    Le truc du champs blanc est un «hack» interessant.
    Ça fait aussi une très bonne blague pour les collègues lors du poison d’avril. 🙂

    en réponse à : Scripts de document #75367
    jctremblay
    Maître des clés

    Merci pour votre retour. De très bons commentaires. Il y a des pour et des contres.
    Je commence à prendre l’habitude de séparer le script long par type de contenu (format, alert, config).

    en réponse à : Custom Tool – avec multiples niveaux #75354
    jctremblay
    Maître des clés

    Merci @bebarth,
    Cet exemple m’aide vraiment. J’ai que quelques petites questions que je t’ai envoyées par mail.

    en réponse à : Menu modèle pour dupliquer #75342
    jctremblay
    Maître des clés

    La commande Modèles de page se trouve à l’intérieur de l’outil Organiser les pages dans le menu Autres.

    en réponse à : Custom Tool – avec multiples niveaux #75314
    jctremblay
    Maître des clés

    Le code dans un PDF pour faciliter la lecture/copier.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Custom Tool – avec multiples niveaux #75313
    jctremblay
    Maître des clés

    En lisant, les infos sur PDFScripting et l’aide de Nesa Nurani (Adobe Community), voici ce que la structure d’un bouton d’outil personnalisé peut ressembler. Bien sur cela peut être plus complexe que ça.

    function myToolAction() {
    var mainMenu = {
    cName: "Main Menu",
    oSubMenu: [
    {cName:"Option1", oSubMenu:[{cName:"SubOption1"},{cName:"SubOption2"}]},
    {cName:"Option2", oSubMenu:[{cName:"SubOption3"},{cName:"SubOption4"}]},
    {cName:"SingleOption"}
    ]
    };
    var selectedOption = app.popUpMenuEx(mainMenu);
    if (selectedOption === "SubOption1") {
    app.alert("Sub-Option 1 selected");
    } else if (selectedOption === "SubOption2") {
    app.alert("Sub-Option 2 selected");
    } else if (selectedOption === "SubOption3") {
    app.alert("Sub-Option 3 selected");
    } else if (selectedOption === "SubOption4") {
    app.alert("Sub-Option 4 selected");
    } else if (selectedOption === "SingleOption") {
    singleOptionAlert();
    }
    }
    
    function singleOptionAlert() { app.alert("Direct Action selected");}
    
    myToolAction();
    app.addToolButton({
    cName: "UniqueToolButtonName",
    cLabel: "Tool Button Label",
    cTooltext: "Open Multi-Level Menu",
    cExec: "myToolAction()",
    cEnable: "event.rc = (event.target != null);"
    });
    en réponse à : Custom Tool – avec multiples niveaux #75311
    jctremblay
    Maître des clés

    @Merlin – Tu peux m’envoyer que aT-CompteurMots.js ou aT-NouveauDoc.js.

    @bebarth – Merci pour le document. Je n’ai pas de souci à créer des menu avec multiple sous-menu. C’est pour les Outils personnalisés que je n’y arrive pas.

    en réponse à : Custom Tool – avec multiples niveaux #75307
    jctremblay
    Maître des clés

    MP envoyé!

    en réponse à : Afficher-masquer un calque ou une page #75273
    jctremblay
    Maître des clés

    Le manque de support pour le JavaScript sur les mobiles c’est profondément dommage.

    Si tu veux produire du «WOW» un document interactif Publish Online est une possibilité avec un lien vers ton CV plus linéaire en PDF.

    en réponse à : Afficher-masquer un calque ou une page #75263
    jctremblay
    Maître des clés

    @paulivisual

    J’ai fait un document avec 3 calques…
    Les 3 boutons demeurent visibles, et il n’y a qu’un bouton pour fermer. Je te laisse fouiller les codes.  🙂

    • Cette réponse a été modifiée le il y a 4 mois et 1 semaine par jctremblay.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Afficher-masquer un calque ou une page #75260
    jctremblay
    Maître des clés

    @paulivisual
    La possibilité de «spawned» une page par-dessus une autre page est possible. Par contre je n’ai pas réussi à trouver un code pour l’enlever une fois que la page a été superposée sur un autre.

    L’option des calques me sembles plus pratique quand il y a plusieurs éléments dans cette parties de la page que d’utilise des boutons. Par contre, la création et modification des calques n’est pas toujours simple.

    en réponse à : Afficher-masquer un calque ou une page #75253
    jctremblay
    Maître des clés

    Pour ton bouton «Imprimer», tu pourrais utiliser ce code pour rendre ton modèle visible, imprimes sans interaction et remets le modèle invisible:

    this.getTemplate("printcv").hidden = false;
    this.print({
    bUI: false, // Masquer la boîte de dialogue d'impression
    bSilent: true, // Imprimer sans interaction utilisateur
    nStart: 1, // Start printing from page 2
    nEnd: 1 // End printing at page 2 (print only page 2) });
    this.getTemplate("printcv").hidden = true;

    en réponse à : Afficher-masquer un calque ou une page #75248
    jctremblay
    Maître des clés

    Parole de sage de Merlin ici…

    en réponse à : Afficher-masquer un calque ou une page #75244
    jctremblay
    Maître des clés

    Il y a certainement plusieurs façons de faire cela.

    Une méthode simple est de faire des boutons avec tes différentes sections et de les mettre invisible au départ. Par la suite, tu peux les faire apparaitre à l’aide de boutons avec quelque chose comme ceci:

    ["Close", "Page1", "Page2"].forEach(f => this.getField(f).hidden = true);
    ["Close", "Page3"].forEach(f => this.getField(f).hidden = false);

    Tu trouvera un exemple dans le PDF.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Supprimer les icônes #75174
    jctremblay
    Maître des clés

    Merci!
    J’oublie toujours d’aller voir cette documentation officielle.

    en réponse à : Probleme Javascript dans PDF #75167
    jctremblay
    Maître des clés

    Boujour David,
    Regarde le document ici:
    J’ai modifié ton script de document en enlevant function JSON()
    J’ai mis le script en tant que script de calcul au lieu d’un script de validation.

    var userInput = this.getField("codeInput").value;
    var dropdown = this.getField("filteredOptions");
    // Sécuriser la conversion en chaîne et en minuscules
    userInput = userInput ? String(userInput).toLowerCase() : "";
    // Gérer les différents cas de saisie
    if (userInput.length < 2) {
    dropdown.setItems(["Entrez au moins 2 caractères"]);
    } else {
    // Filtrer les options
    var filtered = data.filter(function(item) {
    return item.code.toLowerCase().startsWith(userInput);
    });
    if (filtered.length > 1) {
    // Construire un tableau des valeurs pour le dropdown
    var options = filtered.map(function(item) {
    return item.value;
    });
    dropdown.setItems(options);
    } else {
    dropdown.setItems(["Aucune correspondance"]);
    }
    }

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Incrémenter numéro de page à partir d’un modèle #75163
    jctremblay
    Maître des clés

    Cela ne semble pas être le cas. Regarde le document joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Coller du texte dans des champs RTF #75161
    jctremblay
    Maître des clés

    Dommage!

    en réponse à : Incrémenter numéro de page à partir d’un modèle #75157
    jctremblay
    Maître des clés

    J’obtiens un NaN quand j’utilise ton code:
    event. value = (event.target.page[1] + 1) + " / " + this.numPages ;

    Mais celui-ci fonctionne:
    event.value = (event.target.page + 1) + " / " + this.numPages ;

    en réponse à : Identifier la couleur des champs en exportant les données #75142
    jctremblay
    Maître des clés

    @Rockabilly
    Dans le fichier joint…
    Le script de calcul ajoute la couleur dans les infobulles des champs en plus de changer la couleur de fond de ceux-ci.

    Il y a deux boutons:
    Un va exporter le nom des champs ainsi que la valeur de leurs infobulles dans un fichier .txt. Pour pouvoir le faire, tu devras inclure, dans la section Protection (renforcée) des préférences d’Acrobat, le PDF ou le répertoire dans lequel il se trouve.

    L’autre bouton va simplement envoyer le résultat dans un champ «MAT».

    ~ Jean-Claude

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Identifier la couleur des champs en exportant les données #75141
    jctremblay
    Maître des clés

    En effet, si on veut rapidement obtenir que les valeurs de certains champs, un script d’exportation donnerait un résultat plus concis. Tout dépend de ce que l’utilisateur veut faire avec ces données une fois exportées.

    en réponse à : Identifier la couleur des champs en exportant les données #75138
    jctremblay
    Maître des clés

    Tu trouveras cette approche dans le document ci-joint.
    Reste à mettre le script de format pour «cacher» la couleur.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Identifier la couleur des champs en exportant les données #75137
    jctremblay
    Maître des clés

    Une piste de solution…

    Si en plus de changer la couleur des champs, ton script de calcule ajouter à la fin des valeurs de tes champs le texte «- Orange», et que, dans ces champs tu ajoutes un script de format qui cache le texte à partir de «- ». Ceux-ci seront allons présent lors de l’exportation des données en .txt, mais pas visibles dans les champs du PDF.

    Ex:
    if ((this.getField("AS").value == "1") && color.equal(this.getField("EST").fillColor, color.green)) { this.getField("EST").fillColor = color.orange;
    var estField = this.getField("EST");
    if (!estField.valueAsString.endsWith(" - Orange")) {
    estField.value = estField.valueAsString + " - Orange"; }
    }

    et ceci comme script de format.
    event.value = String(event.value).split("-")[0].trim();

    Le reste du code est possiblement à optimiser.

    en réponse à : Identifier la couleur des champs en exportant les données #75129
    jctremblay
    Maître des clés

    Une maquette serait très utile en effet. Cela permettrait de voir les types de champs en question.

    Je comprends que ce dont tu as besoin est que ces «marqueurs» de couleurs soit présents danston exportation des données.

    en réponse à : Choix de Zone de liste vers liste déroulante #75031
    jctremblay
    Maître des clés

    … et on aime ça le «frotter» un peu. Il en sort toujours quelque chose d’épatant! 😀

    en réponse à : Choix de Zone de liste vers liste déroulante #75019
    jctremblay
    Maître des clés

    @bebarth

    J’ai réussi à faire que les choix multiples d’une zone de liste se copient en temps réel dans un champ de texte. Il y a donc un script lors du changement de choix, et un script de calcul dans le champ pour mettre en forme les valeurs reçues.
    (voir le PDF pour les codes).

    Par contre je n’y suis pas arrivé encore pour une zone de liste vers une liste déroulante.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Choix de Zone de liste vers liste déroulante #74992
    jctremblay
    Maître des clés

    Je suis complètement débordé avec tout le TAF urgent à terminé! C’est un document d’expérimentation, donc pas d’urgence. Merci!

    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74981
    jctremblay
    Maître des clés

    Ça devrait fonctionner sur Mac et PC, sous unix je ne connais pas la syntaxe des chemins !

    J’essai cela quand j’ai quelques minutes. Merci!

    en réponse à : Choix de Zone de liste vers liste déroulante #74978
    jctremblay
    Maître des clés

    Je l’ai placé en action champ désactivé car comme la sélection multiple est autorisée ça ne fonctionne pas correctement en action “changement de sélection”.

    Merci! C’est ce que j’avais remarqué. Donc, “selection multiple” et “changement de sélection” ne fonctionne pas ensemble.

    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74977
    jctremblay
    Maître des clés

    Ça plus de sens… 🙂 Merci!

    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74971
    jctremblay
    Maître des clés

    Si le pdf original est sur le même disque on peut en déduire le chemin du bureau, mais attention ils sont différents selon l’OS !

    Donc, ce sera impossible si le PDF source se trouve sur un serveur SharePoint j’imagine.
    Il me manque les détails de cela pour l’instant.


    @Merlin
    Merci pour le lien vers le «safe path».  Je n’y comprends rien. Mais bon, je n’ai pas pris mon café encore.  🙂

    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74968
    jctremblay
    Maître des clés

    Mais on pourrait (dans le script d’application) en inclure un vers le dossier bureau de l’utilisateur, au lieu du chemin du PDF original?

    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74966
    jctremblay
    Maître des clés

    Donc, on ne peut qu’écrire manuellement le chemin désiré?

    Impossible de capturer le chemin, et de l’écrire comme variable pour pouvoir le récupérer pour le reste de l’exécution?

    en réponse à : Variables aléatoires #74921
    jctremblay
    Maître des clés

    Je n’arrive pas à faire tourner ce script en script de document…

    Tu dois mettre tout le script dans une fonction et celle elle que tu appera dans ton bouton.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Formulaire avec date calculée en JavaScript #74916
    jctremblay
    Maître des clés

    Ah! Maintenant je saisis… 🙂

    en réponse à : Formulaire avec date calculée en JavaScript #74914
    jctremblay
    Maître des clés

    Juste pour info,  ce n’est pas la peine d’indiquer event.rc = true; car c’est l’état par défaut de la validation si on indique pas event.rc = false;. Ça fait une ligne de moins…

    Donc le event.rc = false; n’est pas nécessaire également?

    en réponse à : Formulaire avec date calculée en JavaScript #74908
    jctremblay
    Maître des clés

    C’est amusant comment il y a plusieurs chemin pour obtenir le même résultat avec le JavaScript.
    J’ai réussi à obtenir 3, 4 méthode qui donnes le même résultat. Voici la plus courte.

    if (event.value) {
    var enteredDate = util.scand("dd/mm/yyyy", event.value);
    if (enteredDate >= new Date()) {
    this.getField("DateLimite").value = util.printd("dd/mm/yyyy", new Date(enteredDate.getTime() + ([5,4,6,5,5,5,5][enteredDate.getDay()] * 86400000))
    );
    event.rc = true;
    } else {
    app.alert("La date doit être aujourd'hui ou une date ultérieure.");
    event.rc = false; }
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Variables aléatoires #74899
    jctremblay
    Maître des clés

    J’ai modifié ton script de document comme suit:

    function VarAleas() {
    for (var i = 1; i <= 4; i++) {
    var aMin = parseFloat(this.getField("Var." + i + ".1").value);
    var aMax = parseFloat(this.getField("Var." + i + ".2").value);
    var aDec = parseInt(this.getField("Dec." + i).value, 10);
    var a1 = aMin + Math.random() * (aMax - aMin); a1 = a1.toFixed(aDec);
    a1 = parseFloat(a1);
    this.getField("Var." + i + ".3").value = a1; }
    }

    • Cette réponse a été modifiée le il y a 7 mois par jctremblay.
    • Cette réponse a été modifiée le il y a 7 mois par jctremblay.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Formulaire avec date calculée en JavaScript #74890
    jctremblay
    Maître des clés

    Une date future à aujourd’hui et non pas antérieur. Donc, < et non pas > ici:

    if (laDate<aujourdhui) {
    app.alert("Veuillez indiquer une date future à aujourd'hui.",3);

    en réponse à : Problème script de validation valeur minimale #74873
    jctremblay
    Maître des clés

    Tu as modifié passablement le code de la fonction mots. L’erreur se trouve là…
    Je te laisse revérifier le tout ou recommencer selon mon document.

    en réponse à : Problème script de validation valeur minimale #74863
    jctremblay
    Maître des clés

    Bonjour JC, Merci beaucoup ! En effet, le script de transcription a plus sa place en script de document. Le seul hic, c’est que tant que l’utilisateur n’a pas cliqué dans le champ “SaisieSomme”, le champ “TexteSomme” transcrit le contenu du champ “Nombre” et non celui de “SaisieSomme”. Si on rentre la valeur 5 dans le champ “Nombre”, le champ “TexteSomme” affiche “cinq euros”, tandis que le champ “SaisieSomme” affiche “5000 €”.

    Remplace cette ligne:
    var chaine=this.event.target.valueAsString;
    Par ceci et tout devrait fonctionner.
    var chaine=this.getField("SaisieSomme").valueAsString;

    en réponse à : Problème script de validation valeur minimale #74851
    jctremblay
    Maître des clés

    Ok…
    Comme j’avais mentionné, déplace ton code pour les nombres en mots dans un script de document.
    Puis consolide tout dans un script de calcule du champ «nombre» comme ceci:

    var saisieSomme = this.getField("SaisieSomme");
    if (event.value != "" && event.value < 5)
    {
    app.alert("Rentrer une valeur supérieure ou égale à 5");
    event.value = "";
    } else {
    saisieSomme.value = event.value * 1000;
    mots();
    }

    Le script du document ici à le nom de fonction «mots».
    Tu trouvera la correction dans le PDF.
    L’ordre de calcul a aussi été modifié… et les champ «SaisieSomme» et «texteSomme» en lecture seulement.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème script de validation valeur minimale #74850
    jctremblay
    Maître des clés

    Pour ton champ de validation «nombre» tu peut utiliser ceci:

    if (event.value != "" && event.value < 5)
    {
    app.alert("Rentrer une valeur supérieure ou égale à 5");
    event.value = "";
    }

    Pour le reste, ton code pour les chiffres en mots devrait être en Javascript de document, le calcul de «SaisieSomme» et de celui-ci devrait idéalement être dans ton champ «nombre».

    en réponse à : Dupliquer un modèle visible et Réinitialiser #74844
    jctremblay
    Maître des clés

    Merci encore une fois!

    en réponse à : Remplir les champs d’une 2e liste déroulante dynamiquement #74821
    jctremblay
    Maître des clés

    Merci bebarth! Je me souvient maintenant du terme «mère-fille». Je vais aller lire…

    Pour ce type de champs j’arrive à ces méthodes:
    1. Script de validation witch > case > set > break dans le script ou le document
    2. Information dans un script de document
    3. Information dans un fichier .csv en pièces jointes.

    en réponse à : Ajout d’un PDF dans les emplacements privilégiés #74818
    jctremblay
    Maître des clés

    Merci Merlin!
    Je n’ai besoin que de faire ça pour un client, donc, je vais lui demander de modifier ses préférences et tout fonctionnera.

    J’étais curieux de voir si c’était possible. Sécurité oblige, je comprend très bien pourquoi cela ne l’est pas.

    en réponse à : Ajout d’un PDF dans les emplacements privilégiés #74815
    jctremblay
    Maître des clés

    Bonjour Bonne question à laquelle je ne peux pas répondre pour le moment car je suis dans les Alpes loin de chez moi et mon ordi. …

    C’est une très bonne excuse…

    en réponse à : Not Allowed – Script #74794
    jctremblay
    Maître des clés

    J’avais le même erreur avec l’original de bebarth. Version corrigé.

    var aTemplates = this.templates;
    for (var i = 0; i < aTemplates.length; i++) {
    aTemplates.hidden = false;
    var leNom = aTemplates.name;
    var ind = leNom.substr(leNom.length - 1);
    this.setPageLabels(this.numPages - 1, ["D", leNom, ind - 1]);
    }

    en réponse à : Not Allowed – Script #74772
    jctremblay
    Maître des clés

    Le script qui démasque les modèles en conservant leurs noms, à placer dans une Action :

    Merci!

    Je l’ai modifié car le dernier caractère du nom du modèle n’étais pas conservé.

    var aTemplates = this.templates;
    for (var i = 0; i < aTemplates.length; i++) {
    aTemplates.hidden = false; // true ou false
    var leNom = aTemplates.name;
    var ind = leNom.substr(leNom.length - 1);
    this.setPageLabels(this.numPages - 1, ["D", leNom, ind - 1]);
    }

     

    en réponse à : Not Allowed – Script #74728
    jctremblay
    Maître des clés

    Waouh, beau boulot ! Si ça t’intéresse, bebarth m’avait écrit un script qui “démasque” les modèles masqués en conservant leurs noms de modèle dans le panneau des pages, au lieu d’avoir page 1, page 2, etc. C’est très pratique quand il y en a beaucoup. Avec son autorisation (dont je doute pas) je pourrais te l’envoyer, ou le poster céans.

    Ce serait utile en effet. Est-ce qu’un script pourrait aussi créer un modèle en utilisant le nom du panneau page? J’imagine que oui.

    en réponse à : Not Allowed – Script #74725
    jctremblay
    Maître des clés

    Merci pour ces précision.

    Dans mon cas, l’avantage des modèles masqués est d’offrir ce panneau à l’utilisateur lui offrant un choix de modèle à dupliquer.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Not Allowed – Script #74719
    jctremblay
    Maître des clés

    On peut dupliquer une page template qu’elle soit masquée ou apparente, ça ne change rien. Il faut seulement que ladite page soit enregistrée comme template.


    @Merlin
    Est-ce qu’il y a un scénario ou cela pourrait être avantageux ou problèmatique d’avoir les page modèles visible ou l’inverse.

    Ce que je comprend…
    Pages modèles cachées = Augmentation du Poids du PDF
    Pages modèles visible = Si l’utilisateur supprime cette page, le modèle disparaît également.

    en réponse à : Not Allowed – Script #74718
    jctremblay
    Maître des clés

    Désolé je suis dans le cap corse sans pratiquement aucun réseau…

    Profite…

    en réponse à : Not Allowed – Script #74710
    jctremblay
    Maître des clés

    @Merlin,

    Il y a donc une sérieuse limite en lien avec la sécurité. C’est compréhensible… mais chiant à la fois.

    Je vais, comme tu le suggères, devoir faire mes modèles avant et modifier mon script pour avoir un choix des modèles existant à dupliquer. Je garde quand même celui-ci à sauvegarder en action.

    @bebarth,
    De quel Quick bar parles-tu?

    • Cette réponse a été modifiée le il y a 8 mois et 1 semaine par jctremblay.
    en réponse à : Caractères avec accents dans les menus #74695
    jctremblay
    Maître des clés

    Merci Merlin pour le contexte de la chose… On vas mettre des caractères sans accents! 🙁

    en réponse à : Caractères avec accents dans les menus #74692
    jctremblay
    Maître des clés

    Je l’ai testé avec Acrobat 11, et j’ai le même résultat. J’ai donc rêvé. 🙂

    en réponse à : Caractères avec accents dans les menus #74691
    jctremblay
    Maître des clés

    Est-ce que cela signifie que ça a déjà fonctionné un jour ???

    Bonne question, il se peut que non. Mais il me semble que j’ai un vague souvenir que oui. Ma mémoire me joue peut-être des tours. J’ai demandé à Adobe, on verra ce qu’ils me donneront comme réponse.

    en réponse à : Créer un lien vers une base de donnés en ligne #74638
    jctremblay
    Maître des clés

    C’est bien ce que je pensais. On peut par contre relier un fichier .csv en pièce jointe. Je vais voir si c’est une option faisable. Merci!

     

    en réponse à : Tampons – Texte retour “Undefined” #73279
    jctremblay
    Maître des clés

    Merci mon cher bebarth!
    J’était bien conscience que mon code n’était pas optimale. 😀

    Je vais comparer.
    Merci 1000x

    en réponse à : Tampons – Texte retour “Undefined” #73272
    jctremblay
    Maître des clés

    Thom Parker (l’auteur du fameux «All About PDF Stamps») as répondu dans le forum de la communauté.
    L’erreur était que:

    The “item_id” in a dialog object must be 4 and only 4 characters long.
    Otherwise that item cannot be referenced and returns undefined as a value. 

    en réponse à : Tampons – Texte retour “Undefined” #73271
    jctremblay
    Maître des clés

    C’est rassurant… Je ne suis donc pas fou.
    J’ai publié sur la «Community Adobe». On verra ce que nos amis nous diront.

    en réponse à : Ajouter numérotation après un ajout de page modèle #73252
    jctremblay
    Maître des clés

    En effet! 😕

    Pas de rapport, mais j’ai ajouté un this.resetForm(prefix); avant de remplir les champs de numérotation, car dans mon doc actuel cela m’assurer de réinitialiser le contenue des modèles dupliquer (je n’utilise pas ici de modèle caché).

    en réponse à : Ajouter numérotation après un ajout de page modèle #73250
    jctremblay
    Maître des clés

    Pour moi ça fonctionne… dans le PDF la page 2 [pageindex 1] (le modèle) lorsque copier, devient la page 3 [pageindex 2] et les champs dupliquer sont avec un P2. au début.

    Si j’utilise var pageIndex = this.pageNum +1;

    La console me donne ceci et les champs à modifier ne sont pas reconnue
    prefix: P3
    TypeError: this.getField(…) is null

    en réponse à : Ajouter numérotation après un ajout de page modèle #73245
    jctremblay
    Maître des clés

    C’est fait (le prototype en pièce jointe). J’ai placé mes variables de compteurs sur la page 1 (ils seront invisibles au final). Puis, chaque page (2,3,7 et 8) avec un compteur est un modèle avec un bouton. Pour la page 2, comme ceci:

    var expTplt = getTemplate("p2");
    expTplt.spawn(this.pageNum+1,true,false);
    var newCount = parseInt(this.getField("counterP2").value + 3);
    this.getField("counterP2").value = newCount;
    var pageIndex = this.pageNum;
    var prefix = "P" + pageIndex;
    this.getField(prefix +".p2.p2_1").value = newCount;
    this.getField(prefix +".p2.p2_2").value = newCount + 1;
    this.getField(prefix +".p2.p2_3").value = newCount + 2;

    Dommage, le client à changer d’idée! 😐

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter numérotation après un ajout de page modèle #73244
    jctremblay
    Maître des clés

    Un compteur par couleur (donc quatre au total dans ce document).
    Pour ce qui est de supprimer les pages. En fait, non, ils ne pourrons pas. (Reader ne le permet pas, à moins de leurs offrir un bouton/script).

    en réponse à : Ajouter numérotation après un ajout de page modèle #73242
    jctremblay
    Maître des clés

    Les pages à dupliquer sont elles toutes identiques ou bien ont elles un contenu différent ? Contenu différent 

    L’utilisateur a-t-il moyen de supprimer les pages dupliquées et si oui comment ? Non, sinon qu’avec le navigateur de page

    Dans l’image, un utilisateur pour dupliquer la section jaune, par exemple, dix fois. Donc, il y aurait plus que douze pages.

    Une solution encore plus simple serait de laisser l’utilisateur entrer même les numéros. Cela risque d’être ma solution considérant le temps que j’ai a y mettre. 😀

    en réponse à : Ajouter numérotation après un ajout de page modèle #73236
    jctremblay
    Maître des clés

    Je me suis réjouis trop vite…
    En réalité, je vais avoir «4 liste» numérotés à configurer. Utiliser le pageIndex ne fonctionneras plus car les pages ne seront pas dupliquer toujours le même nombres ni le même ordre (voir l’image). Il me faudrais une façon de calculer le nombre de pages d’un templates spécifique, et d’utiliser ce nombre pour les calcules.

    Une idée de comment faire ça?

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter numérotation après un ajout de page modèle #73234
    jctremblay
    Maître des clés

    Mes maths n’étaient pas correct… 😃 ceci fonctionne. (PDF joint pour les curieux)

    var pageIndex = this.pageNum;
    var prefix = “P” + pageIndex;
    var nbField = 3;
    this.getField(prefix +”.page.A”).value = pageIndex * nbField + 1;
    this.getField(prefix +”.page.B”).value = pageIndex * nbField + 2;
    this.getField(prefix +”.page.C”).value = pageIndex * nbField + 3;

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajouter numérotation après un ajout de page modèle #73231
    jctremblay
    Maître des clés

    This seems to be working… the nbField variable is the number of fields on that page affected. Is there a better way of doing it?
    var expTplt = getTemplate("page");

    expTplt.spawn(numPages,true,false);

    var pageIndex = this.pageNum;

    var prefix = "P" + pageIndex;

    var nbField = pageIndex + 3;

    this.getField(prefix +".page.A").value = nbField + 1;

    this.getField(prefix +".page.B").value = nbField + 2;

    this.getField(prefix +".page.C").value = nbField + 3;

    • Cette réponse a été modifiée le il y a 1 année et 7 mois par jctremblay.
    • Cette réponse a été modifiée le il y a 1 année et 7 mois par jctremblay.
    en réponse à : Ouvrir une page web de type data #73212
    jctremblay
    Maître des clés

    Merci!

    en réponse à : Ouvrir une page web de type data #73205
    jctremblay
    Maître des clés

    Wow! Merci!
    Il ne resterais qu’a enlever l’extension dans le nom de la pièce jointe dans le popup.

    Que ferions nous sans toi mon cher @bebarth ? 😍

    en réponse à : Ouvrir une page web de type data #73188
    jctremblay
    Maître des clés

    Bon… J’ai réussi à faire un menu sur un bouton comme ceci, mais chaque nom des pièces jointes doit être écrit manuellement.

    var menuItemNames = ["Le PDF 1", "Le PDF 2", "Le PDF 3", "Le HTML 1", "Le HTML 2"];
    var actions = [
    'this.exportDataObject({ cName: "PDF1.pdf", nLaunch: 2 });', 'this.exportDataObject({ cName: "PDF2.pdf", nLaunch: 2 });', 'this.exportDataObject({ cName: "PDF3.pdf", nLaunch: 2 });', 'this.exportDataObject({ cName: "html1.html", nLaunch: 2 });', 'this.exportDataObject({ cName: "html2.html", nLaunch: 2 });'
    ];
    var cChoice = app.popUpMenu.apply(app, menuItemNames);
    if (cChoice != null) { var selectedIndex = menuItemNames.indexOf(cChoice);
    if (selectedIndex >= 0 && selectedIndex < actions.length) {
    try {
    eval(actions[selectedIndex]);
    } catch (e) {
    app.alert("An error occurred while executing the selected action: " + e);
    } } } 

    Ce qui serait mieux c’est que le menu capture le nombre de pièces et leurs noms de façon dynamique. Ce qui permettrait de l’utiliser rapidement sans avoir à l’éditer pour chaque usage. À suivre… à moins que @bebarth ait une idée pour modifier ce code. Je joint le PDF

    Attachments:
    You must be logged in to view attached files.
Affichage de 99 réponses de 1 à 99 (sur un total de 219)