Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 1 à 99 (sur un total de 10,383)
  • Auteur
    Réponses
  • Merlin
    Maître des clés

    Bonjour

     

    Ce n’est malheuresement pas possible dans le cas que tu décris. Sécurité oblige, ça ne peut fonctionner que depuis un script d’application (voir : https://www.abracadabrapdf.net/?p=2990).

    Concernant le nom, tout ce que tu peux faire c’est afficher une boite d’alerte avant l’enregistrement pour suggérer un nom de fichier, à copier-coller par l’utilisateur.

    Concernant le chemin d’accès il n’y a pas de contournement possible.

    en réponse à : Comment faire – + – = + #76044
    Merlin
    Maître des clés

    Salut

    Mes cours de math sont loins, mais je crois me souvenir que l’addition de deux nombres négatifs donne nécessairement un résultat négatif.

    De même que l’addition de deux nombres positifs donne un résultat positif.

    en réponse à : Boite de dialogue pour récupérer des valeurs #76035
    Merlin
    Maître des clés

    Ce soir j’étais plutôt dans « Légion », j’ai regardé Terminator Dark Fate.

    😉

    en réponse à : Boite de dialogue pour récupérer des valeurs #76032
    Merlin
    Maître des clés

    Intéressant, mais j’ai failli zaper avant la fin de l’intro (un peu trop longue) !

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Boite de dialogue pour récupérer des valeurs #76030
    Merlin
    Maître des clés

    Tu n’as pas posté le lien vers la vidéo

    😉

    en réponse à : Boite de dialogue pour récupérer des valeurs #76027
    Merlin
    Maître des clés

    Je crois que jctremblay sera d’accord avec moi : « intelligence artificielle » est une mauvaise traduction de l’anglais (comme Réseaux sociaux qu’on aurait du traduire par Réseaux relationnels).

    En anglais américain « intelligence » signifie plutôt « traitement de l’information » ou « renseignement », comme dans CIA (Central Intelligence Agency).

    Un peu comme quand en français on parle « d’intelligence avec l’ennemi ».

    en réponse à : Bouton d’impression de pièce jointes dans un PDF #76016
    Merlin
    Maître des clés

    Bonjour

    – Qu’est-ce que le format HR ?

    – Le 1 et le 2 sont possibles en PDF, mais le 2 demanderait une manip de plus à l’utilisateur. En tout cas c’est une solution qui ne fonctionnera que si l’utilisateur se sert d’Acrobat ou de Foxit Reader qui sont de « vrais » logiciels lecteurs de PDF.
    Avec tout autre logiciel (comme les navigateurs Edge, Chrome…) le fonctionnement du document serait dégradé, voire ne fonctionnerait pas du tout.

    en réponse à : Boite de dialogue pour récupérer des valeurs #76012
    Merlin
    Maître des clés

    Il faut utiliser « break » :

    https://www.w3schools.com/jS/js_break.asp

    en réponse à : Boite de dialogue pour récupérer des valeurs #76006
    Merlin
    Maître des clés

    Bonjour

     

    Ça c’est une question pour jctremblay, il est à fond dedans en ce moment !

    😉

    en réponse à : Case à cocher multiples #76003
    Merlin
    Maître des clés
    en réponse à : Case à cocher multiples #76001
    Merlin
    Maître des clés

    Par ailleurs, quand on veut des valeurs d’exportation différentes qui répresentent au final la même somme il faut savoir que :

    7

    7,0

    7,00

    7,000

    sont des valeurs d’exportation différentes pour des cases à cocher (ou des boutons-radio) mais représentent le même nombre dans un calcul.

    Dans ton exemple ça semblait fonctionner grâce aux arrondis mais 7,1 n’est pas égal à 7.

    Ca peut poser des problèmes lors de calculs plus complexes.

    en réponse à : Case à cocher multiples #75999
    Merlin
    Maître des clés

    Comme quoi il est important de poster un exemple : souvent la bonne réponse vient de l’abandon de la « mauvaise » question.

    Dans le ci-joint la deuxième rangée est en lecture seule, c’est la première qui contrôle tout.

    Il y a un script d’action dans les coches, et un script de validation dans le champ texte/nombre.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout script #75998
    Merlin
    Maître des clés

    PS : ne pert pas de vue non plus que comme le script « sera imprimé » (Will Print) le script « sera enregistré » (Will Save) n’est pas bloquant, il ne peut pas empêcher l’action d’enregistrement de se produire.

    en réponse à : Ajout script #75996
    Merlin
    Maître des clés

    Bonjour

    Fais attention qu’on ne peut pas intégrer le script tel quel, il faut d’abord le convertir en une chaine de caractères (string), notament pour échapper les balises.

    Voir ce sujet : https://www.abracadabrapdf.net/forums/topic/ajout-de-line-de-code-avec-javascript/

    en réponse à : Emplacement de fichier de paramêtres #75992
    Merlin
    Maître des clés

    Salut

    – Les PDF-JavaScripts n’ont pas accès aux dossiers « sensibles » de l’ordinateur, je ne sais pas si «Application Support» (ou « Library » sur Mac) en fait partie.

    – Si ça doit fonctionner sur les deux plateformes Windows/Mac il sera plus facile de paramétrer le chemin d’accès vers le dossier Documents de l’utilisateur.

    en réponse à : Case à cocher multiples #75988
    Merlin
    Maître des clés

    Bonjour

     

    Oui, n’hésite pas à joindre un exemple, parce-que ce n’est pas très clair.

    Mais surtout sans support il est difficile de fournir une réponse vraiment adéquate.

    Merlin
    Maître des clés

    Moi aussi j’avais bricolé.

    Ça m’est revenu entre-temps, c’était pour des couleurs de soulignement et je ne voulais pas que « blanc » apparaisse en tête de liste. Donc j’ai mis son nom en anglais. 😉

     

    Attachments:
    You must be logged in to view attached files.
    Merlin
    Maître des clés

    Salut

     

    Je me souviens avoir déjà eu un probème identique il y a quelques années, je crois qu’effectivement on ne peut rien faire contre.

    Par-contre ce n’est pas une limitation d’Acrobat, c’est une limitation d’EcmaScript 😉

    en réponse à : Bouton radio sur plusieurs lignes #75974
    Merlin
    Maître des clés

    « Ok merlin, mais j’ai besoin d’une balance par ligne oui ou non, pas les deux. »

    Je ne comprend pas « balance ».

    Dans l’exemple que j’ai posté chaque rangée peut être cochée oui ou non, mais pas les deux à la fois.

    en réponse à : Bouton radio sur plusieurs lignes #75969
    Merlin
    Maître des clés

    Bonjour

     

    Les boutons-radio c’est la misère.

    Ci-joint avec des cases à cocher : chaque rangée à des cases qui ont le même nom mais avec une valeur d’exportation différente (oui/non).

    ==> https://acrobat.adobe.com/id/urn:aaid:sc:EU:9481f177-4423-44f3-a1ab-99dc38ccf6d8

    en réponse à : Copie de champs #75960
    Merlin
    Maître des clés

    Bonjour

     

    J’en profite pour attirer ton attention sur le fait qu’en France la mention « Lu et appouvé » n’a plus aucune valeur juridique depuis la loi n°80-525 du 12 juillet 1980.

    Tu pourrais donc t’en passer 😉

    en réponse à : Script qui marche en partie #75935
    Merlin
    Maître des clés

    Salut

     

    Pour moi rien ne fonctionne, je crois que c’est dû au script RAZ car la console le signale en erreur à chaque clic sur une coche.

    Il y a aussi une accolade mal placée dans les fonctions laCouleur, qui fait que la condition else ne peut jamais s’exécuter.

    Je ne comprend pas les fonctions « laCouleur », si je lis le script il doit changer successivement  les couleurs de tous les champs en fonction de la valeur de chaque coche rencontrée. C’est à dire à changer la couleur de tous les champs à chaque fois qu’il rencontre une coche.

    C’est donc forcément la dernière qui leur donnera leur couleur définitive.

    Je suppose donc que ce n’est pas le but, que veux tu faire exactement ?

     

    Dans le script RAZ il manque une accolade, et il tente de génèrer une variable à partir d’un élément qui n’existe pas : var P3

    Mais je ne comprend par quoi il est déclenché.

    Quoi qu’il en soit il s’exécuterait plus vite en le simplifiant ainsi :

    function Raz() {
    //decoch();

    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);

    var b = nomChamp.split(".");
    var P1 = (b[0]);
    // var P2 = (b[1]); // inutile
    // var P3 = (b[2]); // b2 n'existe pas

    if (P1=="A" || P1=="AA" || P1=="B" || P1=="BB") {this.getField(nomChamp).value="";}
    }

    }

    en réponse à : GREP Indesign #75926
    Merlin
    Maître des clés

    Merci.

    En plus de l’attribut Sans retour, rien n’interdit de modifier l’approche dans le style de caractère.

    en réponse à : GREP Indesign #75918
    Merlin
    Maître des clés

    « ou y a-t-il possibilité qu’ils le soient sans espaces ? »

    Dans ce cas ce n’est pas un problème, InDesign ne coupe pas les nombres.

    😉

    en réponse à : GREP Indesign #75915
    Merlin
    Maître des clés

    Bonjour

     

    « c’est dans indesign, c’est pour le trouver et le remplacer par un espace insécable. »

    Ce n’est pas la meilleure méthode.

    Le plus efficace c’est un style GREP qui applique l’attribut « sans retour automatique » via un style de caractère, soit à l’espace seule, soit au nombre en entier, ce qui revient au même.

    Ainsi il n’y a plus besoin d’y penser par la suite, même en cas de modification ou d’ajout dans le texte.

    La requête à utiliser : \d{1,3}?\s\d{1,3}\s\d{3,3}

    Lors des copier-coller « \s » (espace quelconque) est remplacé par une espace, ce n’est pas grave. Ci-dessus j’ai mis \s car c’est plus visuel.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Liste déroulante avec long texte #75901
    Merlin
    Maître des clés

    Top !

    Du coup c’est une liste qui n’est plus déroulante mais ça fonctionne avec Edge et Chrome.

    en réponse à : Outils Pré-presse SANS Acrobat Pro #75900
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    Qu’il existe d’autres logiciels qu’Acrobat Pro pour faire ça je n’en doute pas (Callas, Pitstop…).

    Par-contre qu’il en existe des gratuits ça m’étonnerait car c’est un marché de petite niche et le développement de tels logiciels spécialisés est coûteux.

    Je ne peux pas mieux te répondre, sinon te dire qu’on n’est pas obligé de s’abonner à Acrobat, c’est le seul logiciel Adobe qui est également disponible à l’achat (licence à vie).

     

     

    en réponse à : Liste déroulante avec long texte #75896
    Merlin
    Maître des clés

    Avec Edge ou Chrome c’est encore pire, la liste n’affiche qu’une seule ligne quel que soit le cas. Et avec Apple Aperçu aucun espoir non plus.

    Afficher le texte dans un champ de texte adjacent est possible mais ce ne sera pas instantané, il faut d’abord que l’utilisateur sélectionne un item dans la liste pour qu’il s’affiche.

    en réponse à : Liste déroulante avec long texte #75893
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    La réponse courte c’est : pas possible.

     

    La réponse longue c’est : on peut quand même le faire mais c’est bancal car quand la liste est activée les items ne s’affichent que sur une seule ligne et sont donc illisibles. Ils ne sont lisiblesque quand la liste est désactivée et si on a prévu une hauteur suffisante.

    Autre inconvénient : on ne peut pas la remplir manuellement, il faut impérativement utiliser JavaScript pour remplir la liste en plaçant des retours de ligne (\n) dans le texte, ce qui devient vite laborieux.

    C’est une limitation du format PDF, ce n’est pas lié à un logiciel en particulier.

     

    Par exemple dans le PDF exemple ci-joint (où je n’ai mis que les deux premiers items) il faut utiliser le script ci-dessous dans la Console JavaScript pour remplir la liste déroulante :

    var l = this.getField("liste");
    l.setItems(["Sélectionner","LIT-201 – Introduction à la littérature musicale\nLe cours LIT-201 explore les grandes périodes et aborde les œuvres majeures\nqui ont marqué l’histoire de la musique en Occident, du Moyen Âge\njusqu’à aujourd’hui. Des genres et des styles variés provenant\ndu répertoire instrumental, vocal, profane et sacré sont étudiés.\nCe cours vise à acquérir des connaissances et des compétences pour apprécier\ndes œuvres représentatives de grandes périodes historiques,\net pour les situer dans leur contexte. Il amènera aussi l’étudiante\net l’étudiant à une meilleure compréhension du langage musical\ngrâce à une initiation à l’analyse.", "LIT-202 – Moyen Âge, Renaissance et baroque\nLe cours LIT-202 aborde les grandes œuvres et explore les différents courants\nqui ont marqué l’histoire de la musique en Occident, du Moyen Âge\njusqu’au milieu du 18e siècle. Des genres et des styles variés\nprovenant du répertoire instrumental, vocal, profane et sacré sont étudiés.\nCe cours vise à acquérir des connaissances et des compétences\npour apprécier des œuvres représentatives de l’époque médiévale,\nde la Renaissance et du baroque, et pour les situer dans leur contexte.\nIl amènera aussi l’étudiante et l’étudiant à une meilleure compréhension du langage musical\ngrâce à une initiation à l’analyse."]);

     

    Comment utiliser la Console : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Contrôler la visibilité de case à cocher #75891
    Merlin
    Maître des clés

    Je fais ça parce que de toute façon il faut ensuite positionner précisément les champs sur les pages. C’est ce qui prend le plus de temps et avec un script ce n’est pas évident ni forcément plus rapide qu’à l’œil.

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

    J’utilise une astuce plus basique, je crée un grand PDF*, par exemple au format A2 ou A1, sur lequel je duplique les champs autant de fois que nécessaire et ensuite je copie-colle le nombre de champs requis sur chaque page du document final.

    C’est un truc que j’utilise aussi quand je veux que tous les champs dupliqués n’aient qu’un seul numéro après le point, et non pas deux comme quand on les duplique en grille (colonnes + rangées).

    Bien entendu c’est valable pour un petit nombre de page, au dela d’une dizaine il serait certainement plus rentable d’utiliser un script mais je n’ai jamais eu ce cas.

     

    *Avec le plugin « Nouveau » de abracadabraTools

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

    Je comprend bien !

     

    en réponse à : Boite de dialogue #75884
    Merlin
    Maître des clés

    Bravo, mais en fait tu viens de réinventer la roue.

    Si j’avais compris que c’était pour faire ça je t’aurais conseillé d’utiliser l’info-bulle

    😉

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Contrôler la visibilité de case à cocher #75877
    Merlin
    Maître des clés

    Non, pas mieux.

    Je t’aurais bien parlé de la Convention de dénomination des champs de formulaire mais il me semble que dans ce cas ce ne serait pas plus pratique.

    en réponse à : Boite de dialogue #75876
    Merlin
    Maître des clés

    Salut

     

    Souris entrée : afficher un champ

    Souris sortie : masquer un champ

    En général on utilise un bouton comme support du texte à afficher, avec ou sans image.

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

    Et donc en fonction pour mettre en script de document :

    function folCoche() {

    var sNom = event.target.name;
    if (event.target.value != "Off") {
    for (var j = 1; j < 5; j++) {
    this.getField(sNom + "-" + j).display = display.visible;
    }
    }
    else {
    for (var j = 1; j < 5; j++) {
    this.getField(sNom + "-" + j).display = display.hidden;
    this.getField(sNom + "-" + j).value = "Off";
    }
    }

    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Contrôler la visibilité de case à cocher #75868
    Merlin
    Maître des clés

    Bonjour

    Exemple ci-joint, avec en prime un reset des cases à cocher quand elles sont masquées.

    var sNom = event.target.name;
    if (event.target.value != "Off") {
    for (var j = 1; j < 5; j++) {
    this.getField(sNom + "-" + j).display = display.visible;
    }
    }
    else {
    for (var j = 1; j < 5; j++) {
    this.getField(sNom + "-" + j).display = display.hidden;
    this.getField(sNom + "-" + j).value = "Off";
    }
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Dupliquer des boutons #75867
    Merlin
    Maître des clés

    On peut éventuellement aussi reprendre les attributs des boutons existants plutôt que de les réécrire, ça fait un script un peu plus long mais si tu l’utilises sur plusieurs documents ou plusieurs types de boutons se sera plus pratique.

    Par-contre on ne peut pas reprendre les actions des boutons, il faut forcément les réécrire.

    Exemple :

    // POUR BOUTONS LinkT
    for (var j = 0; j < 8; j++) {
    var b = this.getField("LinkT.A." +j);
    var aRect = b.rect; // stocke rect
    var contour = b.borderStyle;
    var coulContour = b.strokeColor;
    var comport = b.highlight;
    var corps = b.textSize;
    var coulTexte = b.textColor;
    var coulFond = b.fillColor;
    var poliss = b.textFont;
    var label = b.buttonGetCaption();

    for (var p = 1; p < this.numPages; p++) { // de la 2e à la dernière page
    var f = this.addField("LinkT."+p+"."+j, "button", p, aRect )
    f.setAction("MouseUp", "//"); // action à placer dans le bouton
    f.borderStyle = contour; // contour
    f.strokeColor = coulContour; // couleur du contour
    f.highlight = comport; // comportement
    f.textSize = corps; // corps
    f.textColor = coulTexte; // couleur texte
    f.fillColor = coulFond; // couleur de fond
    f.textFont = poliss; // police
    f.buttonSetCaption(label) // Label
    }
    }

    en réponse à : Dupliquer des boutons #75863
    Merlin
    Maître des clés

    Dans le PDF ci-joint j’ai renommé les boutons en remplaçant le « 5 » par un « A » pour ne pas que le script bugge à partir la page 6, mais je pense que tu sauras l’adapter à tes documents.

    Ce script duplique les boutons de la page 1 (zéro) sur toutes les autres pages du document.

    À copier-coller dans la console :

    // POUR BOUTONS LinkT
    for (var j = 0; j < 8; j++) {
    var b = this.getField("LinkT.A." +j);
    var aRect = b.rect; // stocke rect
    // console.println("\naRect" + j + ": " + aRect);
    for (var p = 1; p < this.numPages; p++) { // de la 2e à la dernière page
    var f = this.addField("LinkT."+p+"."+j, "button", p, aRect )
    f.setAction("MouseUp", "//"); // action à placer dans le bouton
    f.borderStyle = border.s; // contour ligne
    f.strokeColor = color.black; // couleur du contour
    f.highlight = highlight.i; // comportement inversé
    f.textSize = 0; // corps automatique
    f.textColor = color.black; // couleur texte
    f.fillColor = color.ltGray; // couleur de fond
    f.textFont = font.Helv; // police helvetica
    f.buttonSetCaption("...") // Label
    }
    }

    // POUR BOUTON AjouT
    var b = this.getField("AjouT.A");
    var aRect = b.rect; // stocke rect
    // console.println("\naRect" + j + ": " + aRect);
    for (var p = 1; p < this.numPages; p++) { // de la 2e à la dernière page
    var f = this.addField("AjouT."+p, "button", p, aRect )
    f.setAction("MouseUp", "//"); // action à placer dans le bouton
    f.borderStyle = border.s; // contour ligne
    f.strokeColor = color.black; // couleur du contour
    f.highlight = highlight.i; // comportement inversé
    f.textSize = 0; // corps automatique
    f.textColor = color.black; // couleur texte
    f.fillColor = color.ltGray; // couleur de fond
    f.textFont = font.Helv; // police helvetica
    f.buttonSetCaption("Ajouter lien") // Label
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Dupliquer des boutons #75861
    Merlin
    Maître des clés

    Bonjour

     

    J’imagine que les boutons doivent avoir un nom différent sur chacune des pages, c’est bien ça ?

    en réponse à : Action pour ouvrir une page web par script #75850
    Merlin
    Maître des clés

    « Je n’ai pas pdf expert mais pdf Xchange « 

    Oups ! 😉

    en réponse à : Action pour ouvrir une page web par script #75836
    Merlin
    Maître des clés

    bebarth, PDF Expert gère nativement les boites de dialogue (AcroDialog).

    Michel va te mettre la misère.

    😉

    en réponse à : Calcul filetages #75821
    Merlin
    Maître des clés

    En ce moment je crée des regex pour identifier les NIF (Numéro d’Identification Fiscale) de plusieurs pays.

    Dire que je trouvais ça compliqué, ce n’est rien a côté des filetages !

    😉

    en réponse à : Applications mobiles #75816
    Merlin
    Maître des clés

    Pour installer des apps mobiles il faut soit passer par les stores de Google et d’Apple avec toutes contraintes que ça suppose (financières mais pas seulement, il y a aussi des contraintes techniques, de contenu, et de présentation dans le store).

    Soit il y a l’installation directe après déverrouillage du système de protection sur chaque appareil utilisateur, sans surprise c’est beaucoup plus simple à faire sur Android que sur iOS.

    en réponse à : Boite de dialogue #75748
    Merlin
    Maître des clés

    Bonjour

     

    Avec PDF Expert je ne sais pas mais avec Acrobat ça ne peut fonctionner que depuis un script d’application (placé dans le sous-dossier « JavaScripts » d’Acrobat, donc sur chaque poste utilisateur).

    Sécurité oblige.

    Pour le “h” entre HH et MM je crois que que un (ou deux) anti-slash devant le « h » devrait suffire.

    en réponse à : Action pour ouvrir une page web par script #75731
    Merlin
    Maître des clés

    « On trouve différentes expressions régulières sur internet qui correspondent à une url »

    Une des plus simples se trouve ici :

    GREP pour InDesign : détection d’URL

    En ce qui nous concerne ici, on peut même se passer des deux métacaractères finaux qui indiquent la fin d’un mot puisqu’on ne risque pas de trouver de ponctuation après.

    😉

    en réponse à : Action pour ouvrir une page web par script #75718
    Merlin
    Maître des clés

    Bonjour

     

    Il faut remplir la liste déroulante avec les intitulés (ou « Elément », c’est ce qui est affiché à l’utilisateur) et les valeurs d’exportation (l’URL correspondante).

    Ensuite le bouton utilise la valeur d’exportation pour ouvrir le lien (via un navigateur).

    Code à utiliser dans le bouton (souris relâchée) :

    app.launchURL(this.getField("LISTE").value);

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Applications mobiles #75692
    Merlin
    Maître des clés

    Bonjour

     

    Je m’étais lancé dans la création d’applications mobiles en 2014, pour finallement tout arrêter en 2018.

    J’en ai gardé un mauvais souvenir car ça m’a couté cher, surtout pour iOS (140€/an rien que pour le droit d’inscription* à l’Apple Store), et ça ne m’a pas rapporté grand-chose. Mais je n’utilisais pas un langage de programmation, j’étais abonné à une plate-forme de création (un peu comme WordPress ou Drupal pour les sites web).

    Tout ça pour dire que je ne connais pas DART, mais je suppose que si ça a été fait par Google, a priori ça ne fonctionnera pas sur iOS (Apple).

    Et pour dire que j’ai constaté qu’il est en fait beaucoup plus facile et moins cher de faire des « web-app ». C’est à dire un site web dédié qui se présente comme une application mobile. La limite étant que, contrairement à une vraie app, ça ne fonctionne pas vraiment bien quand l’utilisateur est hors ligne, malgré les « mises en cache ».

    Donc sauf si on veut espionner tout ce que contient le smartphone de l’utilisateur ou faire une application de randonnées en montagne, de spéléologie ou de haute-mer, en général ça se passe bien.

     

    *Chez Google (Android) c’était 50€ à vie (une seule fois).

    en réponse à : Ajout d’un code #75687
    Merlin
    Maître des clés

    Bonjour

     

    Attention cependant car ça écrasera tout script de calcul pré-existant dans ces champs :

    for (var i = 0; i < 126; i++) {
    this.getField("Vol."+i).setAction("Calculate", "W(event.target.name.substr(4));");
    }

    en réponse à : Intégrer un dictaphone dans un PDF ? #75682
    Merlin
    Maître des clés

    Bonjour

     

    La réponse est oui, ça existe depuis bientôt 30 ans dans Acrobat.

    Il faut utiliser l’outil de commentaire « Enregistrer l’audio », cependant attention au poids du fichier car, de mémoire, il me semble que les sons ainsi enregistrés sont peu ou pas compressés.

    S’agissant d’un « commentaire » il bénéficie des mêmes options de suivi et de classement que tous les autres outils de commentaire.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script pour changer de Helvetica à Courier ? #75677
    Merlin
    Maître des clés

    Pour le corps automatique :

    f.textSize = "0";

     

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

    Scusate, abbiamo approfittato della vostra assenza per deviare un po’ dall’argomento originale.

    Ecco un articolo sull’uso della Console JavaScript:

    La Console JavaScript d’Acrobat

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

    Tu auras peut-être plus de chance avec ezPDF Reader, à ma connaissance c’est celui qui supporte le plus de fonctions JavaScript sur Android.

    https://play.google.com/store/search?q=ezPDF%20reader

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

    Bonjour

     

    Quel logiciel utilises tu sur Android ?

    Une chose est certaine c’est qu’avec Acrobat Mobile ça ne fonctionnera pas, son support de JavaScript est beaucoup trop pauvre.

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

    En résumé :

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Générer des nombres se trouvant dans une table commune #75649
    Merlin
    Maître des clés

    « je ne suis pas trop familier avec l’anglais »

    Dans les forums d’Adobe il y a un bouton « Traduire » sous chaque message 😉

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

    Adobe a initié cette interface en 2021, elle est affichée par défaut depuis 2023, mais elle n’est toujours pas finalisée, certains outils ne fonctionnent toujours pas, et d’autres très mal (comme qui dirait, ils pédalent dans le yaourt).

     

    Le mieux c’est de commencer par là : Acrobat’s new interface is a disaster

    Et de continuer par :

    https://community.adobe.com/t5/acrobat-discussions/adobe-acrobat-pro-layout-is-different/m-p/14769830#M472836

    https://community.adobe.com/t5/acrobat-discussions/why-change-everything/m-p/14770316/page/2#M472876

    https://community.adobe.com/t5/acrobat-reader-discussions/stupid-interface-no-visible-way-to-find-document-properties/td-p/15049034

    https://community.adobe.com/t5/acrobat-discussions/stop-it-with-the-nonsense-redesigns/td-p/14946257

     

    Mais ce dont ils sont le plus fier c’est d’avoir inversé toute l’interface et d’avoir rendu nécessaires 2 ou 3 clics supplémentaires pour accéder à chaque fonction.

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

    « C’est quoi cette nouvelle expérience ? »

    C’est la pire modification de l’interface d’Acrobat et de l’interface d’un logiciel professionnel qu’on ait jamais vu.

    Je n’en dirai pas plus car je serai tenté de devenir grossier.

    😉

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

    « 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 »

    Oups !

    Il va falloir que je vérifie ça, de toute façon j’ai prévu une mise à jour pour bientôt car pour l’heure ils ne sont pas compatibles avec la « nouvelle expérience » de l’interface d’Acrobat.

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

    Précision : pour le(s) script(s) de document il faut connaitre son(leurs) nom(s) pour les écraser.

    Ci-dessus c’est « init » parce-que je met tous mes scripts ensemble, sous ce nom que j’utilise toujours. Mais ça peut varier en fonction des habitudes de chacun.

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

    Oui, c’est un peu bête mais les machines s’en moquent pas mal, elles n’ont aucun sens du correct ou de l’esthétisme.

    Et comme disait Arnaud Amalric, abbé de Cîteaux, pendant la croisade contre les albigeois :

    « Scriptez les tous, Dieu reconnaitra les siens ».

    🙂

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

    PS : le script ci-dessus ne génère pas d’erreurs bien qu’il s’applique à tous les champs, quel que soit leur type.

    Par exemple, ce n’est pas parce-que l’interface d’Acrobat ne propose pas de « Format » ou de « Validation » pour les boutons qu’ils ne peuvent pas avoir un script de Format ou de Validation. Rien n’empêche de le faire avec JavaScript.

    Donc je ne me casse pas la tête à détecter le type de champ avant de nettoyer les scripts. J’utilise la méthode « brutale ».

    en réponse à : Supprimer une action #75615
    Merlin
    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, et ça fonctionne à tous les coups :

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    oFld.readonly = true; // verrouiler les champs
    oFld.setAction("Format", "//");
    oFld.setAction("Keystroke", "//");
    oFld.setAction("Calculate", "//");
    oFld.setAction("Validate", "//");
    oFld.setAction("MouseExit", "//");
    oFld.setAction("MouseEnter", "//");
    oFld.setAction("MouseUp", "//");
    oFld.setAction("MouseDown", "//");
    oFld.setAction("OnBlur", "//");
    oFld.setAction("OnFocus", "//");
    }

    this.setAction("WillSave", "//"); // actions de document
    this.setAction("WillPrint", "//");
    this.setAction("DidSave", "//");
    this.setAction("DidPrint", "//");
    this.setAction("WillClose", "//");

    this.addScript("init", "//"); // script de document

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

    Bonjour

     

    Si c’est à faire dans des champs de formulaire la réponse est oui.

    Sinon c’est non.

    en réponse à : Générer des nombres se trouvant dans une table commune #75607
    Merlin
    Maître des clés

    « Pourtant avec ce fichier, ça fonctionne (il vient d’un ancien fil de discussion, d’ou mon event.commitKey = 13) »

    En fait, si on va voir dans le sujet mentionné par Michel, on s’aperçoit que c’est lui qui a proposé ce bout de script.

    Nous avons été deux à lui demander pourquoi « 13 », mais il n’a pas répondu.

    😉

    en réponse à : Générer des nombres se trouvant dans une table commune #75605
    Merlin
    Maître des clés

    « Il faut utiliser “2”, pas “13”. »

    Je mange mon chapeau, la réponse de ChatGPT (qui, comme Googol, ne considère le JavaScript que par rapport aux navigateurs web, d’où le point n°2 qui n’est pas vrai dans ce qui nous intéresse)  :

    En JavaScript, l’instruction :

    event.commitKey = 13;

    semble vouloir assigner la valeur 13 à une propriété commitKey de l’objet event.

    Explication :

    1. event : Généralement, c’est un objet représentant un événement (ex : keydown, click, etc.).
    2. commitKey : Ce n’est pas une propriété standard des objets event. Cela signifie qu’elle a été ajoutée dynamiquement.
    3. Valeur 13 : Ce nombre correspond au code ASCII/Unicode de la touche Entrée (Enter).
    en réponse à : Générer des nombres se trouvant dans une table commune #75598
    Merlin
    Maître des clés

    Chez moi ce fichier fonctionne correctement.

    Par contre tu devrais gérer le paramètre nIcon dans les alertes, car « OK » s’affiche à côté de l’icône d’erreur (icône par défaut), ce qui est un peu perturbant.

    L’icône Status conviendrait mieux.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Générer des nombres se trouvant dans une table commune #75587
    Merlin
    Maître des clés

    Oui, il faut absolument que je prenne l’habitude de rafraichir ma page avant de répondre, surtout quand elle est affichée depuis la veille.

    😉

    en réponse à : Générer des nombres se trouvant dans une table commune #75584
    Merlin
    Maître des clés

    Bonjour

     

    Tu pourrais utiliser commitKey pour détecter l’usage de cette touche, mais :

    • Il faut utiliser « 2 », pas « 13 ».
    • Çe ne détecte que la touche Entrée, pas la touche Retour.
    • Il faudrait l’utiliser en fonction dans tous les champs de saisie car cet évènement est détecté lors de la perte du focus (onBlur) par un champ, et non pas seulement quand on utilise ladite touche.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Exportation des données #75580
    Merlin
    Maître des clés

    Bonjour

     

    On ne peut pas exporter les données directement en XLSX, Adobe a préféré utilisé un format ouvert.

    Cependant il suffit d’ouvrir le CSV exporté avec Excel ou LibreOffice et de l’enregistrer (sous) au format XLSX.

    en réponse à : Calcul d’un pourcentage mais pas que… #75569
    Merlin
    Maître des clés

    Bonjour

     

    Nul besoin de se casser la tête avec des kilomètres de JavaScript, il suffit de créer un troisième champ (masqué) contenant la valeur maximum de G et de D, et de partir de la valeur qu’il contient.

    (Image jointe)

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Changement de couleur dans champ #75564
    Merlin
    Maître des clés

    Apparement ton problème vient des guillemets, JavaScript ne supporte que les guillemets droits, tous les autres sont à bannir.

    "blablabla"

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

    Oui, en utilisant une fonction.

    Par exemple :

    function styl1(A) {
    A.strokeColor = color.red;
    A.textColor = color.red;
    A.textSize = 12;
    }

    styl1(this.getField("Text1"));

     

    On peut bien entendu aussi mettre le nom du champ en variable.

    en réponse à : Générer des nombres se trouvant dans une table commune #75554
    Merlin
    Maître des clés

    « Je crois même qu’on apprend ça en fin de primaire… »

    C’est te dire pendant combien de temps j’en ai cauchemardé…

    🙂

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

    Tu devrais mettre les accolades, on est d’accord que quand il n’y a qu’une seule ligne d’instruction elles ne servent à rien mais c’est une bonne pratique et une habitude à prendre.

     

    Pour la couleur c’est simple, il faut choisir une couleur dans un logiciel quelconque et aller dans l’éditeur de couleur/couleur personnalisée pour noter ses trois valeurs RGB (red, green, blue = rouge, vert, bleu).

    Ensuite il faut remplacer les trois nombres dans cette partie du script , exemple pour le rouge abracadabraPDF :

    = [“RGB”, 163/255, 0/255, 0/255];

     

    Si cette couleur est utilisée plusieurs fois on a tout intérêt à la mettre en variable :

    var coulPerso = [“RGB”, 163/255, 0/255, 0/255];

     

    else if(champimc >= 30) {event.target.textColor = coulPerso;}

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Changement de couleur dans champ #75548
    Merlin
    Maître des clés

    Pourquoi ?

    en réponse à : Générer des nombres se trouvant dans une table commune #75543
    Merlin
    Maître des clés

    Le PGCD et le PPCM, mes cauchemars de collégien !

    😉

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

    Exemple ci-joint, le script est dans l’onglet Calcul, mais on peut aussi le mettre en Validation.

    (C’est l’un ou l’autre, pas dans les deux)

    if (event.value >= 4) {event.target.textColor = color.red;}
    else {event.target.textColor = color.black;}

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script pour corriger une date #75532
    Merlin
    Maître des clés

    Waow !

    en réponse à : Raccourcir un script #75531
    Merlin
    Maître des clés

    Je ne sais pas de quand date l’interdiction de « SS ».

    (Joker)

    Mais je me souviens que mon père a eu une voiture immatriculéee « QQ », et qu’il s’est fait chambrer plus d’une fois.

    😉

    en réponse à : Générer des nombres se trouvant dans une table commune #75524
    Merlin
    Maître des clés

    Bonjour

     

    Je te propose encore la méthode « brutale » : si ça ne correspond pas on recommence !

    var Nb1=(Math.floor(Math.random()*99))+1;
    if (Nb1 < Nb1Min || Nb1 > Nb1Max) {var Nb1=(Math.floor(Math.random()*99))+1;}

    var Nb2=(Math.floor(Math.random()*99))+1;
    if (Nb2 < Nb2Min || Nb2 > Nb2Max) {var Nb2=(Math.floor(Math.random()*99))+1;}

    en réponse à : Raccourcir un script #75521
    Merlin
    Maître des clés

    🙂

    en réponse à : Comment compter un nombre de cases à cocher ? #75519
    Merlin
    Maître des clés

    Bonjour

     

    Le truc c’est d’attribuer aux cases à cocher (qui dans l’exemple sont en fait des boutons-radio) comme choix/valeur d’exportation des zéros et des uns pour pouvoir utiliser la fonction de calcul intégrée aux champ de texte.

    J’ai utilisé la « Convention de dénomination des champs de formulaire » (voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/) pour additionner plus facilement le total des boutons-radio dans le champ Score.

    Car ainsi il n’y a que le champ « parent » à cocher dans les champs à additionner, au lieu de devoir tout cocher un par un.

    Exemple ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir un script #75512
    Merlin
    Maître des clés

    Sur les plaques d’immatriculation il y a une lettre interdite dans les paires O-Q et U-V pour raison de lisibilité, je ne sais plus lesquelles.

    Par contre ce qui est interdit partout, y compris sur les plaques d’immatriculation c’est « SS ».

    Mais s’agissant de trios de lettres, SS ne sera jamais seul, donc ça devrait passer.

    (Et du coup je m’aperçois que ci-dessus j’ai oublié SUS 🙂 )

    en réponse à : Raccourcir un script #75510
    Merlin
    Maître des clés

    Je croyais que la liste que tu as donné était juste un exemple, parce qu’il en manque :

    LFI, SS, SA, NIK, CON, CUL, PUT, BIT, TEB, FDP, LOL… et on pourrait certainement en trouver encore plus.

    Si tu veux vraiment faire de la censure il ne te restera plus beaucoup de lettres à disposition, auquel cas il vaudrait peut être mieux utiliser l’alphabet Grec.

    Personellement je suis contre la censure, et puis ça égaiera certainement les cours.

    😉

    en réponse à : Raccourcir un script #75494
    Merlin
    Maître des clés

    Je ne me suis pas posé toutes ces questions, mon script est « brutal » : si une des conditions interdites est remplie il recommence au départ. Autant de fois que nécessaire.

    en réponse à : Ajout de lignes de code avec JavaScript #75493
    Merlin
    Maître des clés

    Oui, mais comment sont nommées ces listes déroulantes ?

    en réponse à : Raccourcir un script #75481
    Merlin
    Maître des clés

    Du coup j’ai testé avec Foxit Reader, la génération aléatoire des caractères y fonctionne bien.

    Par contre comme on ne peut pas activer la console dans la version Reader je ne sais pas si le bouton démarrer y déclenche aussi une erreur.

    en réponse à : Script pour corriger une date #75478
    Merlin
    Maître des clés

    Bonjour

     

    C’est possible si l’utilisateur saisit « 1.2.2025 », s’il ne saisit pas l’année en entier ça retourne une erreur (alerte de format).

    Dans le ci-joint, clique dans le champ pour voir ce qui a été saisi.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir un script #75476
    Merlin
    Maître des clés

    Beau boulot !

    Mais quand je teste, la console affiche une erreur chaque fois que je clique sur le bouton « Démarrer ».

    Et comme les scripts de document sont fragmentés impossible de savoir d’où vient la « ligne 17 » en question.

     

    J’ai testé plusieurs fois et ce sont toujours les mêmes lettres « SKX » qui s’affichent dans le document, quelles que soient les valeurs de « pointsABC ».

    (Capture jointe)

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Raccourcir un script #75469
    Merlin
    Maître des clés

    Essaye ça (chez moi ça fonctionne), l’idée c’est ce qu’il y a un doublon ou une association interdite on relance la fonction :

    function generLettres() {

    function generateRandomLetter() {
    var randomValue = Math.random();
    var randomCode = 65 + Math.floor(randomValue * 26);
    return String.fromCharCode(randomCode);
    }

    var pointA = generateRandomLetter();
    var pointB = generateRandomLetter();
    var pointC = generateRandomLetter();
    var str = pointA + pointB + pointC;

    console.println("pointsABC: " + pointA + pointB + pointC);

    if (pointA === pointB || pointA === pointC || pointB === pointC) {generLettres();} // dédoublonage

    else if ((/PS|PC|FN|RN|FO|LR|PD|PQ|WC|GPT|PT/.test(str))) {generLettres();} // associations interdites

    }

    generLettres();

    en réponse à : Raccourcir un script #75466
    Merlin
    Maître des clés

    Bonjour

     

    Je ne suis pas certain d’avoir tout compris mais a priori à partir du moment où on affecte une valeur (lettre) aléatoire à pointA, pointB et pointC on se fiche pas mal de la valeur de « points » puisqu’elle n’y change rien.

     

    Ce qui nous donnerait :

    function generateRandomLetter() {
    var randomValue = Math.random();
    var randomCode = 65 + Math.floor(randomValue * 26);
    return String.fromCharCode(randomCode);
    }

    var pointA = generateRandomLetter();
    var pointB = generateRandomLetter();
    var pointC = generateRandomLetter();

    console.println(pointA + pointB + pointC);

     

    On pourrait ensuite détecter les paires interdites mais dis moi d’abord si ça convient.

    en réponse à : Renommer indice 2 #75459
    Merlin
    Maître des clés

    Salut

    Programmatiquement il est impossible de savoir si un champ contient des scripts.

    en réponse à : Ajout de lignes de code avec JavaScript #75450
    Merlin
    Maître des clés

    « je ne comprend pas quel problème vous soulevez »

    Le truc c’est que quand on utilise un script pour ajouter un script (de document ou d’objet) il faut que le script ajouté soit sous forme d’une chaîne de caractères (string), sans contenir de guillemets ni de caractères spéciaux qui pourrait la segmenter. Et donc rendre le script ajouté inutilisable.

    Quand c’est un simple script d’une ou deux lignes, pas de souci. Mais quand c’est plus complexe il faut y faire attention.

    en réponse à : Ajout de lignes de code avec JavaScript #75449
    Merlin
    Maître des clés

    babarth, dans ton document je crois que c’est « Texte converti avec caractères d’échappement pour les guillemets, » qui est le mieux.

    Avec le même script de départ voilà ce que ça donne avec l’utilitaire de Thom Parker, qui ajoute aussi les tabulations et les sauts de lignes mais en fait ça ne sert à rien car les machines n’en tiennent pas compte de toute façon. Au mieux ça ne sert qu’aux humains qui veulent ensuite faire l’opération inverse.

    "if (event.target.buttonGetCaption()==\"Montrer\") {\r\n\tthis.viewState={overViewMode:7};\r\n\tevent.target.buttonSetCaption(\"Cacher\");\r\n} else {\r\n\tthis.viewState={overViewMode:0};\r\n\tevent.target.buttonSetCaption(\"Montrer\");\r\n}"

    en réponse à : Ajout de lignes de code avec JavaScript #75443
    Merlin
    Maître des clés

    Bonjour

     

    Il faut que tu utilises un utilitaire pour convertir le script JavaScript en texte (une seule chaine de caractères), par exemple :

     

    en réponse à : Migration vers Acrobat DC #75437
    Merlin
    Maître des clés

    Je te conseille de revenir à l’ancienne interface !

    Suis le lien ci-dessous, c’est le message le plus posté, en anglais et en français, sur le forum d’Adobe ces trois dernières années :  😉

    Essayez de revenir à l’interface utilisateur classique : https://community.adobe.com/t5/acrobat-discussions/acrobat-2023-how-to-revert-to-classic-gui-user-interface/td-p/14052807

    Considérez le « nouvel Acrobat » comme une version bêta, de nombreuses fonctionnalités sont encore manquantes ou à moitié implémentées.

    en réponse à : Vérification et tri #75428
    Merlin
    Maître des clés

    Bravo, beau boulot mais cette erreur s’affiche à l’ouverture du PDF :

    TypeError: event.target.name is undefined
    12:Document-Level:init

     

    Et je crois qu’il y a un problème dans la colonne « Groupe » (image jointe)

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Migration vers Acrobat DC #75424
    Merlin
    Maître des clés

    En fait il n’y a qu’un seul Acrobat qu’on puisse installer.

    Après s’être identifié dans le logiciel Creative Cloud avec son Adobe ID on obtient Acrobat Reader si on a un abonnement gratuit, ou bien on obtient Acrobat Pro si on a l’abonnement adéquat (ou Acrobat Standard).

    C’est un seul et même logiciel qui déverrouile des fonctionnalités en fonction de l’abonnement correspondant à l’Adobe ID.

Affichage de 99 réponses de 1 à 99 (sur un total de 10,383)