Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 100 à 198 (sur un total de 10,383)
  • Auteur
    Réponses
  • en réponse à : Migration vers Acrobat DC #75420
    Merlin
    Maître des clés

    Tu vas dans l’onglet Applications, tu trouves Acrobat et tu cliques sur Installer.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Vérification et tri #75418
    Merlin
    Maître des clés

    bebarth = ce type est top !

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

    Salut

     

    C’est typiquement une question pour bebarth, les array c’est mon cauchemar !

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

    🙂

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

    Si c’est pour le 1er avril n’hésites pas à mettre un champ image, avec un poisson.

    🙂

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

    A priori c’est une ancienne version.

    Vérifie son numéro dans le menu Aide : A propos d’Acrobat

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

    Bonjour

     

    Les spécifications des champs (Date y compris) dépendent des spécification du PDF (alias norme ISO-32000) pas des développeurs d’Acrobat.

    Donc ils n’ont pas changés depuis Acrobat X, pour avoir un champ Date il faut aller dans Format : Date.

    Leur particularité (par rapport aux listes par exemple) c’est qu’il faut cliquer dedans pour voir apparaitre le bouton et le calendrier.

     

    PS : « Adobe X » et DC Pro » n’existent pas.

    Il existe trois versions d’Adobe Acrobat pour Mac et PC (le suffixe DC a été supprimé il y a plus de deux ans) :

    Adobe Acrobat Pro
    Adobe Acrobat Standard
    Adobe Acrobat Reader (gratuit, également disponible pour iOS et Android).

    Mal nommer les choses c’est ajouter au malheur du monde (Camus).

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

    Bonjour

     

    Je ne connais pas AEM, par-contre faute de pouvoir interdire l’impression, avec JavaScript on peut l’empêcher via les évènements « Document will print » (sera imprimé) et « Document did print » (a été imprimé).

    Par exemple en affichant un calque blanc ou un champ blanc qui recouvre toutes les pages ou bien en faisant apparaitre un filigrane (watermark) avec l’évènement « Document will print » et en le faisant disparaitre en « Document did print ».

    Bien entendu la politesse voudrait qu’une alerte soit ajoutée en « Document will print » pour avertir l’utilisateur qu’il n’obtiendra que des pages vierges. C’est toujours plus user-friendly.

    Une fois le document validé il suffit de supprimer les scripts dans ces évènements.

     

    Le calque ou les champs blanc c’est pour éviter le gaspillage de papier et d’encre si l’utilisateur persiste, mais si on veut être perfide on peut les remplir en noir ou avec plein de couleurs…  😉

    en réponse à : Formater formulaire pour exploitation avec Excel #75393
    Merlin
    Maître des clés

    « personne ne possède la version Adobe, ils n’ont que Reader »

    Il existe trois versions d’Adobe Acrobat pour Mac et PC :

    • Adobe Acrobat Pro
    • Adobe Acrobat Standard
    • Adobe Acrobat Reader (gratuit, également disponible pour iOS et Android).

    Mal nommer les choses c’est ajouter au malheur du monde (Camus).

    en réponse à : Formater formulaire pour exploitation avec Excel #75392
    Merlin
    Maître des clés

    Bonjour

     

    Pour intégrer des photos, si j’en crois ton document d’exemple tu as bien compris comment faire.

    Par-contre le problème c’est de les récupérer par la suite, c’est quasiment impossible car il faut passer par des solutions tortueuses, peu pratiques et donc pas du tout productives (et il faut Acrobat Pro).

     

    Pour l’ajout de commentaires c’est plus simple, il faut utiliser des pages modèles masquées que l’utilisateur peut afficher via un bouton. Ça fonctionne très bien avec Acrobat Reader ou Foxit Reader.

    Exemples et explications : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/dupliquer-dynamiquement-des-pages-dans-un-pdf/

    Tu peux aussi chercher « pages modèles » ou « page template » sur ce forum.

     

     

    en réponse à : Effet au survol d’un champ #75389
    Merlin
    Maître des clés

    Quand une commande est suivie de deux parenthèses c’est une fonction :

    resetForms()

    afficheContour()

     

    Certaines, comme la première ci-dessus, sont intégrées d’origine dans Acrobat (en script d’application dans le fichier « JSByteCode » qui est placé dans le dossier JavaScripts »), et les autres sont des fonctions personnalisées qui peuvent être placées soit en script d’application soit en script de document.

     

    L’intérêt d’utiliser une fonction c’est de ne pas avoir à répéter le même code dans plusieurs champs ou à plusieurs endroits dans le document, et d’avoir un code qui s’exécute plus rapidemment car il est préchargé au lancement de l’application ou à l’ouverture du document.

     

    Ça permet aussi de regrouper tous les scripts, ce qui facilite beaucoup la maintenance.

    en réponse à : Effet au survol d’un champ #75382
    Merlin
    Maître des clés

    Bonjour

     

    Si j’en crois le nom des fonctions qui sont dans le champ utilisé dans ton exemple ce document vient de chez moi. Il aurait fallu copier aussi les fonctions.

    Mais il n’y a pas nécessairement besoin d’utiliser des fonctions.

    Exemple ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Formater formulaire pour exploitation avec Excel #75366
    Merlin
    Maître des clés

    Bonjour et bonne année

     

    Quand on intègre les données d’un ou plusieurs formulaires dans un fichier Réponses et qu’on exporte ensuite en CSV on obtient les données dans les cellules, les noms des champs sont en tête des colonnes.

    Si on exporte les données en FDF depuis chaque formulaire individuellement on obtient aussi les noms des champs, mais on ne peut pas les concaténer facilement.

     

    Dans la maquette jointe je ne récupère que le chemin des fichiers, et leur dates de création, mais aucun champ.

    Qu’est-ce que tu veux dire par « récupérer », que fais tu exactement ?

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

    Bonjour et bonne année

     

    Je ne crois pas que ça change quelque chose point de vue vitesse d’exécution ou de chargement, mais je préfère tout mettre dans un seul script dans un seul fichier .JS, sauf quand il y a des images/icônes que je met à part car sinon on atteint vite la limite de 32000 caractères de l’éditeur d’Acrobat.

     

    Je travaille en faisant des copier-coller depuis Notepad++, donc en une seule fois je met tout à jour.

    Ca me permet d’avoir une vue globale de tous les scripts du document et donc de toutes les erreurs possibles. Par exemple quand je sélectionne un nom de variable ou n’importe quel mot, toutes ses occurrences sont mises en surbrillance, ce qui permet de les repérer facilement dans tous les scripts et toutes les fonctions.

    C’est plus simple quand il faut minifier le script parce que je place toutes les variables en tête des scripts, donc je peux minifier seulement le code en un seul copier-coller. Parce-que quand on minifie le texte des variables (messages d’alerte…) les caractères Unicode redeviennent des caractères accentués/spéciaux de base, ce qui pose l’éternel problème Mac/PC.

    Ca permet aussi au client de pouvoir les modifier facilement sans chercher (s’il a le niveau).

    Et ainsi j’ai un seul fichier .JS en regard de chaque PDF (et avec le même nom), ça simplifie beaucoup la maintenance. Même si en vrai j’ai plutôt deux fichiers .JS : l’original bien détaillé et bien commenté, et la version minifiée incorporée dans le document final. Mais cette dernière n’est crée que quand tout est fini et testé, je ne la réutilise que rarement.

     

    en réponse à : Renommer indices #75337
    Merlin
    Maître des clés

    Je n’ai pas trop de temps en ce moment car comme d’habitude tous les clients ont des urgences avant les vacances.

    J’essaierai de trouver un peu de temps ce weekend.

    En tout cas j’ai regardé ta vidéo et l’interface de PDF Expert m’a fait baver, tout est disponible directement à un seul clic dans le panneau des propriétés. Ça change d’Acrobat et de son interface des années 90 qui impose d’ouvrir plusieurs boites pour modifier une propriété !

     

    « S’il faut passer par un hébergeur, par lequel dois-je passer? »

    Voir : https://www.abracadabrapdf.net/forums/topic/envoyer-partager-poster-une-piece-jointe-volumineuse/

     

     

    en réponse à : Renommer indices #75321
    Merlin
    Maître des clés

    Michel C. très franchement j’admire ce que tu fais, à double titre.

    D’une part le côté apprentissage technique du PDF-JavaScript et ses à cotés, et d’autre part la passion pédagogique et le cœur que tu mets à transmettre le savoir à tes élèves en utilisant des technologies qui les intéressent*.

    Bravo et joyeuses fêtes (sans élèves).

     

    *J’imagine que parmi tes élèves il y a un groupe de petits malins qui cherchent à cracker tes documents, si ça trouve il y en a d’inscrits sur ce forum ! 😉

    en réponse à : Renommer indices #75320
    Merlin
    Maître des clés

    Dans renommer_champs_v01.pdf il n’y a pas de champs à renommer, et exercice_interactif-ok.pdf n’a pas été transféré car trop lourd.

    Du coup on ne peut pas tester.

    🙁

    en réponse à : Gestion multicalque sur iPhone #75317
    Merlin
    Maître des clés

    Bonjour

     

    Non, je ne crois pas.

    Sur les machines Apple il faudrait essayer avec PDF Expert, mais c’est une app payante.

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

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

    Ayé !

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

    Bonjour

    Pareil, je peux t’envoyer les abracadabraTools en version originale (non minifiée).

    Chaque plugin est indépendant, donc il vérifie d’abord la présence du menu « abracadabraTools ». S’il n’existe pas déjà il le crée, sinon il s’y intègre.

    en réponse à : Renommer indices #75299
    Merlin
    Maître des clés

    J’ai passé un bon moment à chercher… et il me semblait bien qu’il y avait comme une évidence que je ne voyais pas !

    😉

    en réponse à : Renommer indices #75291
    Merlin
    Maître des clés

    Je n’ai pas le temps de tout bien vérifier mais a priori le problème vient du nom des champs (this.getField(« Name.3.1 ») et this.getField(« Name.3.2 »)) qui sont utilisés dans le script en nom absolu.

    Comme ils rentrent dans la boucle leur nom est modifié pendant l’exécution de celle-ci et ça provoque des incohérences.

    Ça l’est moins quand on utilise P1 mais c’est flagrant quand on utilise P2, le retour de la Console est sans appel :

    TypeError: this.getField(…) is null
    12:Document-Level:Renommer_c

    (dans « Test-4.pdf », ligne 12 du script sans commentaire, ou ligne 15 du script commenté, voir capture)

    Il faut donc soit les exclure de la boucle, soit modifier leurs noms de sorte qu’ils ne rentrent pas dans la boucle.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : FindChangeList.txt et AppleScript #75289
    Merlin
    Maître des clés

    Bonjour

     

    J’ai placé cette question dans un nouveau sujet pour plus de clarté.

    Pour répondre à la question : je n’ai jamais utilisé FindChangeList.txt avec AppleScript, seulement avec les scripts JavaScript (.jsx).

    Tout ce que je peux te dire c’est que le fichier FindChangeList.txt doit être placé dans le dossier FindChangeSupport qui se trouve au même niveau que le fichier FindChangeByList.jsx

    A priori ça devrait être pareil pour les scripts AppleScript.

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

    « Il y a un truc que je ne comprend pas. Mon script fonctionne mais il y a toujours un champ qui n’est pas renommé… »

    Il est toujours très difficile d’examiner des scripts non commentés, même quand on sait ce qu’ils sont supposés faire.

    J’y jetterai un deuxième regard demain à tête reposée.

    en réponse à : Renommer indices #75280
    Merlin
    Maître des clés

    « Par contre mon script ne fonctionne pas quand je souhaite “modifier” la partie 2 P2. J’ai une erreur à la ligne 28… »

    Vu le dernier exemple je crois que tu as compris l’erreur entre nom du script (qui importe peu) et nom de la fonction.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Utiliser FindChangeList dans un document bilingue. #75279
    Merlin
    Maître des clés

    Bonjour

     

    Non hélas, ni ses instructions (dont je suis l’auteur) ni ce script (fourni par Adobe) ne permettent de rechercher dans un style de paragraphe en particulier.

    Tu pourrais peut-être trouver ton bonheur en utilisant ce script : Record Find Change

     

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

    « un nouveau problème rien ne fonctionne sur les mobiles !!!!!!!!!! une idée pourquoi ? c’est des simples boutons … »

    En fait ce n’est pas nouveau, hélas.

    Le support de JavaScript sur les mobiles est très très limité. Pour te donner une idée la documentation JavaScript d’Acrobat fait plus de 800 pages, celle d’Acrobat Mobile à peine une soixantaine.

     

    « la personne qui m’a répondu est un des dirigeants d’une banque privée. »

    Je travaille beaucoup avec les banques, suffisamment pour savoir que en général les postes sont équipés d’Acrobat Reader mais que le plus souvent l’utilisation de JavaScript est désactivée par le service informatique. Sécurité oblige.

     

    « Le but est de faire du visuel et d’impressionner »

    Dans ce cas le plus simple est d’utiliser InDesign, de faire des animations qui déchirent avec ses fonctions intégrées et/ou avec Express, de publier en ligne avec Publish On Line et de mettre un lien sur ton CV.

    Le PDF a beaucoup de qualités (ce n’est pas moi qui dirait le contraire) mais en version interactive ce n’est pas un format diffusable de façon fiable.

    Exemple que j’ai réalisé : https://indd.adobe.com/view/2a8f6f46-a53c-4fd4-851e-db3a5d906f6b

    Exemple réalisé par JCTremblay : https://indd.adobe.com/view/16a62004-694d-442a-9650-000a6dd4d241

    Et voir plus généralement : https://indd.adobe.com/view/c2c7aa96-405e-488f-8902-e1d96c1bea4f

    en réponse à : Renommer indices #75271
    Merlin
    Maître des clés

    Sinon fais moi passer ton document, avec Acrobat j’en aurai pour 2 minutes.

    en réponse à : Renommer indices #75255
    Merlin
    Maître des clés

    « Je voulais renommer 30 champs : “Q.7.1” à “Q.7.30” qui se seraient appelés : “R.7.1″ à R.7.30”. »

    Il y a beaucoup plus simple qu’un script, c’est une astuce bien cachée dans Acrobat (je ne sais pas pour PDF Expert).

    Dans le panneau des champs il faut d’abord cliquer sur le bouton AZ pour afficher les champs dans l’ordre alphabétique.

    À partir de là il apparaissent sous forme d’une arborescence qu’on déplie en cliquant sur les flèches, ce sont les points dans les noms qui séparent chaque niveau.

    Il faut juste savoir qu’il suffit de double-cliquer sur un nom pour pouvoir renommer, on peut renommer la racine ou n’importe quel niveau en deux secondes. 😉

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Afficher-masquer un calque ou une page #75254
    Merlin
    Maître des clés

    « D’après plusieurs pro dans le domaine 3 minutes pour un CV « 

    Compte plutôt entre 10 et 20 secondes.

    Il est généralement plus judicieux de présenter un CV « normal » et d’y mettre des liens vers les documents interactifs que tu veux présenter, ainsi s’il retient l’attention le recruteur prendra le temps d’aller voir.

     

    « je ne sais pas supprimer des calques »

    Acrobat est retors : il faut d’abord masquer le calque à supprimer et ensuite soit aplatir tous les calques soit le fusionner avec un autre, ce qui le fait disparaitre.

     

    « la lecture des vidéos n’est pas activé par defaut »

    Si Acrobat pouvait déjà juste lire les vidéos se serait bien, depuis la dernière mise à jour ça ne fonctionne plus !

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

    Bonjour

    L’expérience montre que la plupart des gens (et des recruteurs) affichent les PDF dans le logiciel par défaut (Aperçu sur Mac, Edge sur Windows, et « Pourave » sur mobile).

    Donc pour qu’un CV soit lu et retenu il faut aller au plus simple pour être efficace.

    En clair : zéro interactivité, parce qu’en plus s’ils comprennent que quelque chose ne fonctionne pas dans certains cas ce sera forcément de ta faute et à cause de ton « incompétence ». Ils ne remettront jamais en cause leur logiciel ni leurs pratiques.

    en réponse à : Renommer indices #75238
    Merlin
    Maître des clés

    bebarth doit être en vacances.

    J’ai retrouvé le sujet, le script y est en pièce jointe :

    Renommer plusieurs champs de formulaire avec JavaScript

    en réponse à : Renommer indices #75235
    Merlin
    Maître des clés

    Nos messages se sont croisés (j’étais au téléphone avec un bavard).

    Sinon, bebarth a créé un utilitaire de renommage des champs, je pense qu’il va t’en parler.

    en réponse à : Renommer indices #75233
    Merlin
    Maître des clés

    Bonjour

     

    Il te faut télécharger la version d’essai de Qoppa PDF Studio qui permet de renommer plusieurs champs de formulaire à la fois, des centaines si besoin.

    Comme cette version d’essai ajoute des filigranes l’astuce c’est de faire ça dans une copie du document PDF et ensuite de ramener les champs renommés dans le document original par copier-coller en ouvrant les 2 PDF avec Acrobat, ou avec PDF Expert.

    Pour trouver cette fonction il faut sélectionner plusieurs champs à la fois et faire un clic-droit dessus : Sequential renaming (Je ne l’ai pas en français).

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Centrage des éléments de listes déroulantes #75224
    Merlin
    Maître des clés

    Bonjour

     

    Ça m’en bouche un coin ! Je ne savais qu’il existait un logiciel capable faire ça (bien que dans Acrobat les items se placent à gauche quand on clique sur le menu).

    Concernant Acrobat tu n’as rien raté, la réponse est non.

    en réponse à : Action « Lire un son » #75219
    Merlin
    Maître des clés

    Sur mon PC ça fonctionne bien, sauf quand je veux jouer la même note deux fois de suite : pour la jouer une deuxième fois il faut cliquer deux fois de suite.

    Je ne peux pas tester faute d’avoir les sons mais je me demande si tu ne devrais pas plutôt utiliser l’action souris relâchée.

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

    🙂

    en réponse à : Action « Lire un son » #75213
    Merlin
    Maître des clés

    Bonjour

    Il me semble que c’est un vieux bug de la version Mac, fais moi passer ton fichier que j’essaie sur PC.

    en réponse à : Champ image #75210
    Merlin
    Maître des clés

    Bonjour

     

     » En fait, tout se passe à la création de ton champ image qui te propose un nom avec le suffixe “_af_image”. »

    Ça c’est le comportement d’Acrobat, peut être que PDF Expert gère différemment.

    En tout cas oui, il faut qu’il y ait une différence entre les noms car JavaScriptement on ne peut pas distinguer un bouton image d’un bouton en label/texte seul.

    en réponse à : Champ image #75206
    Merlin
    Maître des clés

    Essaye ça :

    if (nomChamp.indexOf("Aide.")==0) {
    if (this.getField(nomChamp).type=="text" || (this.getField(nomChamp).type=="button" && nomChamp.indexOf("_af_image")>0)) this.getField(nomChamp).readonly=true;
    else this.getField(nomChamp).readonly=false;
    }

    en réponse à : ACROBAT : Pages affichées ou non #75203
    Merlin
    Maître des clés

    Dans ce cas il faut voir avec le service informatique ou avec l’administrateur de l’ordinateur, qui a volontairement verrouillé cette option.

    C’est souvent le cas dans les entreprises qui ne veulent pas prendre le moindre risque de sécurité.

    en réponse à : ACROBAT : Pages affichées ou non #75197
    Merlin
    Maître des clés

    Ce message prévient que JavaScript n’est pas activé sur le poste utilisé, il est donc normal que rien ne fonctionne.

    Tu peux soit cliquer sur le bouton « Options » pour l’activer pour ce document seulement, soit l’activer dans les Préférences pour tous les documents.

     

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

    Bonjour

     

    bebarth m’a devancé.

    Effectivement le type « image » n’existe pas, et s’il n’y a pas de message d’erreur dans la console c’est tout simplement parce-que la condition ne s’exécute pas, et donc qu’elle ne peut pas provoquer d’erreur.

     

    C’est dans ces cas là qu’on regrette de ne pas avoir utilisé :

    try {
    // blablabla
    }
    catch(e) {console.println(e);}

    😉

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

    this.dirty = false;

    est placé à la fin de chaque fonction pour que l’utilisateur ne soit pas invité à enregistrer le document après utilisation.

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

    Ne te fatigues pas avec les scripts contenus dans le document ils sont minifiés.

     

    Ci-dessous les deux principaux, le premier s’exécute à l’ouverture du document, le deuxième à chaque changement de sélection du menu déroulant.

    /* importation texte */
    this.delay = true;
    this.resetForm();
    this.getField("ratpStation").clearItems(); // champ liste déroulante
    // importer l'unique PJ sans la nommer
    var p = this.getDataObject(this.dataObjects[0].name)
    var fi = this.getDataObjectContents(p.name)
    var fit = util.stringFromStream(fi)
    // séparation des rangées
    var datarr1 = fit.split("\n")
    // séparation des colonnes
    var datarr = new Array()
    for (var i = 0 ; i < datarr1.length ; i++) {datarr = datarr1.split(";")}
    var fillarr = new Array() ;
    for (var j = 0 ; j < datarr.length ; j++) { fillarr[j] = [datarr[j][1], j] ;}
    // remplissage de la liste déroulante avec la 2e rangée
    this.getField("ratpStation").setItems(fillarr);
    // réglage du corps de la liste déroulante au cas où
    this.getField("ratpStation").textSize = 18;
    // masquage du champ QRcode
    this.getField("ratp.QRcode").display = display.hidden;
    // masquage du bouton Gmap
    this.getField("ratpBoutonGmap").display = display.hidden;
    // mise en couleur des champs
    maCouleur = ["RGB", 224/255, 224/255, 224/255]; // gris moyen clair
    this.getField("ratpStation").fillColor = maCouleur;
    this.getField("ratp.adresse").fillColor = maCouleur;
    this.getField("ratp.coordonneesGPS").fillColor = maCouleur;
    this.getField("ratp.departement").fillColor = maCouleur;
    this.delay = false;
    this.dirty = false;

    /****************************************************/

    function selectData() {
    if (!event.willCommit) {
    this.delay = true;
    this.getField("ratp.adresse").value = datarr[event.changeEx][2];
    this.getField("ratp.coordonneesGPS").value = datarr[event.changeEx][3];
    this.getField("ratp.departement").value = datarr[event.changeEx][7];
    // affichage bouton Gmap
    this.getField("ratpBoutonGmap").display = display.visible;
    // affichage du champ QRcode sauf si Reader
    if (app.viewerVariation == "Reader")
    {this.getField("ratp.QRcode").display = display.hidden;}
    else
    {this.getField("ratp.QRcode").display = display.visible;}
    //
    if (datarr[event.changeEx][1] == "Sélectionnez une station") {
    this.resetForm("ratp");
    this.getField("ratpBoutonGmap").display = display.hidden;
    this.getField("ratp.QRcode").display = display.hidden;
    }
    this.delay = false;
    this.dirty = false;
    }
    }

    en réponse à : ACROBAT : Pages affichées ou non #75187
    Merlin
    Maître des clés

    Pour pouvoir te répondre il faudrait que tu partages le document, un exemple ou au moins le script utilisé.

    L’exemple ci-dessus fonctionne avec Reader.

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

    « On peut faire ça ? »

    Oui, regarde ce document de démo : https://www.abracadabrapdf.net/pdf-de-demo/formulaires/open-data-javascript-et-pdf/

    Il y a 26560 entrées dans le fichier CSV incorporé.

    en réponse à : Supprimer les icônes #75173
    Merlin
    Maître des clés

    Bonjour

     

    Attention car ça ne fonctionne pas dans Reader, auquel cas l’astuce c’est de transformer le bouton en texte seul (label only) ce qui lui fait perdre son icône, et ensuite de le retransformer en bouton avec icône.

    en réponse à : Coller du texte dans des champs RTF #75162
    Merlin
    Maître des clés

    L’astuce c’est de coller le texte d’abord dans un éditeur de texte ou dans un traitement de texte en mode « texte seul » (TextEdit, Bloc-Notes…) et ensuite de re copier-coller vers Acrobat, mais c’est un peu laborieux.

    en réponse à : Coller du texte dans des champs RTF #75160
    Merlin
    Maître des clés

    Bonjour.

    Hélas non, la commande qui permet de coller du texte brut, sans formatage, (CTRL/CMD + Shift + V) fonctionne dans quasiment tous les logiciels mais pas dans Acrobat !

     

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

    J’obtiens un NaN quand j’utilise ton code

    C’est normal, ce script ne fonctionne que sur une page générée depuis une page modèle, il ne fonctionne pas sur la page modèle elle même ni sur une page normale (statique).

    D’ailleurs pour que ça fonctionne vraiment bien il faut lui ajouter :

    this.calculateNow();

    pour s’assurer de la mise à jour immédiate du calcul du numéro de la page générée.

     

    Je ne me souviens plus de la raison profonde pour laquelle les pages générées requièrent ce script particulier mais je me souviens que j’avais bien galéré pour le mettre au point. Je remercie une fois de plus notre grand gourou Thom Parker qui m’avait expliqué pourquoi et comment.

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

    PS : il faut le placer en script de calcul dans les champs concernés.

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

    Bonjour

     

    Il faut utiliser ce script, sachant qu’il renvoie une erreur quand on le place sur la page modèle et que c’est normal : il ne fonctionne que sur une page générée.

    event.value = (event.target.page[1] + 1) + " / " + this.numPages ;

    La partie en orange est facultative, ça sert à obtenir une numérotation du type : 2/10 (s’il y a 10 pages).

    en réponse à : ACROBAT : Pages affichées ou non #75153
    Merlin
    Maître des clés

    🙂

    en réponse à : ACROBAT : Pages affichées ou non #75149
    Merlin
    Maître des clés

    Bonjour

     

    Quelle que soit l’interface que tu utilises (nouvelle expérience ou ancien Acrobat) il faut que tu trouves l’outil « Modèles de pages ».

    Dans l’exemple ci-joint le script est dans les cases à cocher (c’est le même partout).

    Il faudra adapter les cases à cocher et le script si tu veux n’afficher qu’un seul jeu de page à la fois (même nom et valeur d’exportation différente).

     

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

    Par ailleurs on devrait pouvoir le simplifier ainsi (non testé) :

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text" || this.getField(nomChamp).type=="combobox") {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton") && this.getField(nomChamp).name != "Menu.6") {this.getField(nomChamp).value="Off";}
    }

    en réponse à : Modification de script #75145
    Merlin
    Maître des clés

    Bonjour

    Non testé :

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text") {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton") && this.getField(nomChamp).name != "Menu.6") {this.getField(nomChamp).value="Off";}
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

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

    On pourrait aussi baliser automatiquement les données avec la couleur du champ, mais pour ça il faudrait utiliser un script d’exportation spécifique au lieu de la fonction fournie dans Acrobat.

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

    Bonjour

    La réponse est non, sauf si on ajoute un champ/rubrique « couleur » en plus de chaque champ.

    L’autre solution serait d’ajouter (automatiquement) la couleur dans le contenu des données de chaque champ de manière à avoir cette indication dans les données..

    Mais tout dépend de la façon dont sont ensuite utilisées les données au format TXT.

    en réponse à : JavaScript formulaire afficher/masquer champs texte #75125
    Merlin
    Maître des clés

    Pour masquer tous les champs il faut décocher toutes les cases, c’est la principale différence entre cases à cocher et boutons-radio : l’utilisateur peut désélectionner toutes les cases, contrairement aux boutons-radio.

    en réponse à : JavaScript formulaire afficher/masquer champs texte #75122
    Merlin
    Maître des clés

    *Parce que les traitements de texte ajoutent des caractères « parasites », et parce-que les éditeurs de texte colorent automatiquement la syntaxe des scripts, ce qui rend leur lecture plus facile et évite des erreurs (image jointe).

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : JavaScript formulaire afficher/masquer champs texte #75121
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Ça serait plus facile si tu avais posté un exemple en PDF contenant les coches et les champs en question.

    Il y a une erreur (que font tous les débutants) à ne pas commettre : il ne faut jamais éditer des scripts avec un traitement de texte (comme Word), il faut toujours utiliser un Éditeur de texte, comme BBEdit (Mac) ou NotePad (Windows).

    Il est contre-productif de répéter la condition (if/else) pour chaque champ, une seule condition peut traiter plusieurs instructions afficher/masquer (ou autre). C’est à ça que servent les accolades.

    Il est inutile de mettre « this » devant « event.target ».

    En fait, pour agir comme des boutons-radio, il faut que les 3 cases à cocher aient toutes exactement le même nom avec chacune une valeur d’exportation différente. Et pour que ça fonctionne correctement il faut mettre le même script dans les trois cases.

    Pour faire simple disons que la case 1 a une valeur d’exportation « 1 », la case 2 a la valeur d’exportation « 2 » et la case 3 a la valeur d’exportation « 3 ».

    Ce qui donnerait par exemple ce script à placer dans les 3 cases, en action Souris relevée :

     

    // D'ABORD ON MASQUE TOUS LES CHAMPS
    this.getField("Teste_PSA1").display=display.hidden;
    this.getField("vict_pro_1_4").display=display.hidden;
    this.getField("aucune_vict_pr_1_4").display=display.hidden;
    this.getField("Texte_PSA3").display=display.hidden;
    this.getField("une_vict_pr_3").display=display.hidden;
    this.getField("vic_profil3").display=display.hidden;
    this.getField("enfant_victime").display=display.hidden;
    this.getField("enfant_victime1").display=display.hidden;
    this.getField("autre_vic_case").display=display.hidden;
    this.getField("Texte222").display=display.hidden;
    this.getField("Texte223").display=display.hidden;
    this.getField("Liste222").display=display.hidden;
    this.getField("Liste223").display=display.hidden;
    this.getField("Texte121").display=display.hidden;
    this.getField("Texte122").display=display.hidden;
    this.getField("Texte_PSA4").display=display.hidden;
    this.getField("Texte_CETM2").display=display.hidden;
    this.getField("typeverdict").display=display.hidden;
    this.getField("Tx_SAS").display=display.hidden;

     

    // ENSUITE ON AFFICHE CEUX QUI DOIVENT L'ÊTRE
    if (event.target.value == 1)
    {
    this.getField("Teste_PSA1").display=display.visible;
    this.getField("vict_pro_1_4").display=display.visible;
    this.getField("aucune_vict_pr_1_4").display=display.visible;
    }

    else if (event.target.value == 2)
    {
    this.getField("Texte_PSA3").display=display.visible;
    this.getField("une_vict_pr_3").display=display.visible;
    this.getField("vic_profil3").display=display.visible;
    this.getField("enfant_victime").display=display.visible;
    this.getField("enfant_victime1").display=display.visible;
    this.getField("autre_vic_case").display=display.visible;
    this.getField("Texte222").display=display.visible;
    this.getField("Texte223").display=display.visible;
    this.getField("Liste222").display=display.visible;
    this.getField("Liste223").display=display.visible;
    this.getField("Texte121").display=display.visible;
    this.getField("Texte122").display=display.visible;
    }

    else if (event.target.value == 3)
    {
    this.getField("Texte_PSA4").display=display.visible;
    this.getField("Texte_CETM2").display=display.visible;
    this.getField("typeverdict").display=display.visible;
    this.getField("Tx_SAS").display=display.visible;
    }

    en réponse à : Problème de lancement d’un script #75118
    Merlin
    Maître des clés

    Alors pourquoi ça fonctionne en ne recherchant que 4 chiffres ???

    Soit parce-que tu as eu la chance de ne pas l’avoir fait fonctionner sur des codes utilisant des lettres, soit parce-que ECMAScript n’est pas très rigoureux dans le respect des métacaractères GREP (comme j’ai déjà pu le constater).

    À mon avis c’est la 2e supposition qui est la plus probable.

    😉

    en réponse à : Problème de lancement d’un script #75117
    Merlin
    Maître des clés

    J’ai également écris un petit utilitaire !

    Excellent !

    en réponse à : Tracé arc de cercle #75101
    Merlin
    Maître des clés

    Joker !

    en réponse à : Problème de lancement d’un script #75100
    Merlin
    Maître des clés

    🙂

    en réponse à : Problème de lancement d’un script #75093
    Merlin
    Maître des clés

    Effectivement j’utilise l’utilitaire cité ci-dessus.

    C’est un ancien script que je t’ai donné, maintenant je ne perd plus de temps à ne convertir que les caractères accentués je converti toute la chaîne de caractères, et je laisse l’originale juste au-dessus sous forme de commentaire.

    Ainsi l’originale disparaît lors de la minification/optimisation du script avec tous les autres commentaires, comme ça je suis le seul à comprendre ce que fait le script et je complique la tâche de ceux qui veulent piquer ou détourner mes scripts 😉

    Exemple :

    // var strTitre = "COUCOU";
    // var strMessage = "Merci de renseigner les champs Date et Nom avant d'enregistrer ce document.";
    var strTitre = "\u0043\u004F\u0055\u0043\u004F\u0055";
    var strMessage = "\u004D\u0065\u0072\u0063\u0069\u0020\u0064\u0065\u0020\u0072\u0065\u006E\u0073\u0065\u0069\u0067\u006E\u0065\u0072\u0020\u006C\u0065\u0073\u0020\u0063\u0068\u0061\u006D\u0070\u0073\u0020\u0044\u0061\u0074\u0065\u0020\u0065\u0074\u0020\u004E\u006F\u006D\u0020\u0061\u0076\u0061\u006E\u0074\u0020\u0064\u0027\u0065\u006E\u0072\u0065\u0067\u0069\u0073\u0074\u0072\u0065\u0072\u0020\u0063\u0065\u0020\u0064\u006F\u0063\u0075\u006D\u0065\u006E\u0074\u002E";

    // MESSAGE D'ALERTE
    app.alert({cMsg:strMessage, nIcon: 1, cTitle: strTitre});}

     

    Et je met toujours les commentaires en capitales pour mieux les détacher du code et les rendre plus visibles

     

     

    en réponse à : Problème de lancement d’un script #75086
    Merlin
    Maître des clés

    var strAlertRaz = "Voulez vous vraiment supprimer le contenu de tous les champs de donn\u00E9es et revenir \u00E0 l'\u00E9tat initial du document ?\n\nCette action ne pourra pas \u00EAtre annul\u00E9e.\nSi besoin utilisez : menu Fichier : R\u00E9tablir";
    var strTitr = "TITRE";

    // si réponse = 3 = non
    if (app.alert({cMsg: strAlertRaz, cTitle: strTitr, nIcon: 2, nType: 2}) == 3) {
    app.alert("Opération annulée.");
    }
    else {this.resetForm();}

    en réponse à : Problème de lancement d’un script #75081
    Merlin
    Maître des clés

    Concernant la fonction « defaut », je n’ai pas bien compris pourquoi mais pour les combobox l’égalité « defaultValue = value » ne fonctionne pas directement, il passer par une variable.

    Par-contre ce qui est certain car c’est précisé dans la doc c’est qu’il faut cocher l’option « Autoriser l’utilisateur à saisir un texte personnalisé » pour chaque combobox concerné sinon ça ne peut pas fonctionner.

    Fait attention à une chose : quand tu testes des conditions avec trois « if » qui se suivent tu obliges le script à tester tous les champs trois fois, alors qu’avec « else if » la deuxième condition n’est testée que si la première n’est pas remplie, et la troisième n’est testée que si la première et la deuxième ne sont pas remplies.

    « else if » est donc un gain de temps qui permet d’accélérer l’exécution des scripts.

     

    function Default() {

    var sText;

    for (var i=0; i<this.numFields; i++) {
    var nomChamp=this.getNthFieldName(i);
    //console.println(i+" - nomChamp : "+nomChamp+" - "+(this.getField(nomChamp).page+1)+" - "+this.getField(nomChamp).type);

    if (nomChamp.indexOf("R.")==0) {
    if (this.getField(nomChamp).type=="text") this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

    if (nomChamp.indexOf("Q.")==0) {
    if (this.getField(nomChamp).type=="text") {this.getField(nomChamp).value="";}
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).value="Off";
    else if (this.getField(nomChamp).type=="combobox") {this.getField(nomChamp).value=this.getField(nomChamp).getItemAt(0,false);}
    }

    if (nomChamp.indexOf("Titre.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("TQ.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("Question.")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}
    if (nomChamp.indexOf("Aide." && this.getField(nomChamp).type=="text")==0) {this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;}

    if (nomChamp.indexOf("TL.")==0 && this.getField(nomChamp).type=="text") {this.getField(nomChamp).defaultValue="";}

    if (nomChamp.indexOf("Menu.")==0) {
    this.getField("Menu.3").fillColor=color.green;
    this.getField("Menu.4").fillColor=color.green;
    if (this.getField(nomChamp).type=="text") this.getField(nomChamp).defaultValue=this.getField(nomChamp).value;
    else if ((this.getField(nomChamp).type=="checkbox" || this.getField(nomChamp).type=="radiobutton")) this.getField(nomChamp).value="Off";
    else if (this.getField(nomChamp).type=="combobox") {sText = this.getField(nomChamp).value; this.getField(nomChamp).defaultValue = sText;}
    }

    }}

    en réponse à : Problème de lancement d’un script #75079
    Merlin
    Maître des clés

    J’ai l’habitude de mettre toutes mes fonctions ensembles dans un seul fichier texte et ensuite de tout copier-coller dans un seul script de document.

    Après avoir cherché l’erreur en vain pendant de longues minutes c’est quand j’ai fait ça avec tes deux fonctions, car je trouve ça plus pratique, que l’évidence m’a sauté aux yeux :

    dans la fonction « aleatoir » l’indice « i » est déclaré avec « var », donc il est enfermé dans cette fonction et ne peut pas communiquer avec une autre fonction. Ce qui condamne la fonction « hasard/random » à l’échec systématique.

    Quand elle est appelée directement depuis le bouton ça fonctionne car dans ce cas l’indice « var i » n’est pas enfermé dans une fonction.

    Donc dans la fonction « aleatoir » il faut juste supprimer « var » en deuxième ligne pour que ça fonctionne :

    function aleatoir() {
    for (i=1; i<=30; i++) {
    // etc

    Ci-joint.

     

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème de lancement d’un script #75074
    Merlin
    Maître des clés

    Bonjour

     

    Il existe une fonction nommée « random » dans tes scripts, et il est fort possible que « random » fasse partie des mots réservés. Il faudrait donc commencer par changer ce nom.

    en réponse à : URL cliquable dans champ de formulaire #75067
    Merlin
    Maître des clés

    Normalement il suffit de cocher « Mémoriser cette action… » et de cliquer « Autoriser » pour que le site cible soit ajouté à la liste blanche.

    Sinon on peut cocher « Autoriser les PDF à accéder à tous les sites » dans les Préférences*, mais c’est un choix utilisateur qu’on ne peut pas forcer.

    Voir captures.

     

    *Ce n’est pas dans les Préférences « Internet », ce serait trop facile !

    😉

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

    Bonjour

     

    Place ce script en Action « Souris relâchée » dans le champ concerné :

    if ( !/^\s*$/.test(event.target.value) ) {app.launchURL(event.target.value);}

    Mais il faut remplir le champ avec une vraie URL, c’est à dire qui commence par « www » ou « http » ou https ».

    Pour la couleur bleue il faut changer la couleur du texte, pour le soulignement je n’ai pas de solution car il faudrait utiliser le format RTF mais celui-ci se réinitialise à chaque changement du contenu du champ.

    Ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Problème de lancement d’un script #75048
    Merlin
    Maître des clés

    Bonjour

     

    Dans ton document il y a 25 scripts de document, donc je n’ai pas cherché la ligne 75… 😉

    Sinon, met ton script en fonction dans un script de document :

    function aleatoir() {
    for (var i=1; i<=30; i++) {
    try {
    random (i);
    } catch(e) {
    this.getField("Var."+i+".3").value="";
    }
    }
    }

    Et appelle cette fonction via la condition (if else).

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

    Quand je te dis que tu es un génie !

    Sur Windows ça fonctionne parfaitement avec la touche Ctrl ou avec la touche AltGr (qui correspond à la touche Alt/Option du Mac). Ça fonctionne aussi très bien avec la touche Ctrl et la touche AltGr en même temps.

    Et aussi avec la touche majuscule pour la sélection continue.

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

    bebarth est un génie !

    en réponse à : Expression regulière #75028
    Merlin
    Maître des clés

    Les parenthèses : erreur à la console et arrêt du script
    Le crochet [ : erreur à la console et arrêt du script
    Le crochet ] : n’a pas l’air de poser problème

    Parenthèses et crochets sont utilisés en JavaScript comme délimiteurs de string et d’array, c’est pour ça qu’il faut les échapper (escape) avec un antislash quand ils sont utilisés dans une chaîne de caractères (string).

    en réponse à : Expression regulière #75022
    Merlin
    Maître des clés

    Au lieu de

    droite P'(x)

    essaie avec

    droite P\'\(x\)

    ou avec

    droite P\\'\\(x\\)

    Par fois deux antislash valent mieux qu’un seul.

    en réponse à : Calcul taux d’évolution JavaScript #75009
    Merlin
    Maître des clés

    C’est bebarth qu’il faut remercier, j’ai juste adapté son script.

    en réponse à : InDesign : afficher/masquer un calque dans Acrobat #75007
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    Je ne vois pas de popup ni d’action qui affiche de calque dans ton exemple…

    Regarde dans les actions des deux champs, j’ai ajouté des scripts. Car ce document étant créé avec InDesign les champs sont attachés aux calques, on ne peut donc pas utiliser l’action « Définir la visibilité du calque ».

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Expression regulière #75003
    Merlin
    Maître des clés

    Bonjour

     

    Essaie de remplacer le « ? » par son équivalent en Unicode :

    \u003F

    en réponse à : Calcul taux d’évolution JavaScript #74999
    Merlin
    Maître des clés

    Je l’ai fait comme ça (ci-joint).

    Le script est dans le champ « calcul ».

    Attachments:
    You must be logged in to view attached files.
    en réponse à : impression : pivoter des pages #74984
    Merlin
    Maître des clés

    Bonjour

     

    Il n’y a pas besoin de script, c’est une fonction native dans Acrobat (Reader) et dans la plupart des logiciels.

    Capture jointe.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74976
    Merlin
    Maître des clés

    En vrai c’est du « Device Independent Path » dont je voulais parler.

    Je viens d’en retrouver le lien : http://acrobatusers.com/tutorials/file-paths-acrobat-javascript

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

    Bonjour

     

    Ci-joint, le script est dans le champ « zone2 ».

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

     

    this.getField("choix2").value = event.value;

    var f = this.getField("zone2");
    var a = f.currentValueIndices;
    if (typeof a == "number") {// A single selection (type: number)
    this.getField("pop2").setItems([f.value]);
    }
    else { // Multiple selections (type: array)
    this.getField("pop2").setItems(f.value);
    }

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Enregister Sous – Chemin choisi par l’utilisateur #74970
    Merlin
    Maître des clés
    en réponse à : Variables ayant comme nom la valeur des champs #74945
    Merlin
    Maître des clés

    PS : ci-dessus c’est le principe que j’ai décrit, je n’ai pas vérifié mais il est possible que pour des « raisons de sécurité » Adobe ait limité l’échange de variables entre les documents.

    Cependant ce qui vaut chez Adobe ne vaut pas pour tous les éditeurs de logiciels.

    en réponse à : Variables ayant comme nom la valeur des champs #74944
    Merlin
    Maître des clés

    Bonjour

    Attention, le point est aussi un caractère spécial non toléré dans un nom de variable. Donc pas de noms de champs contenant des points !

     

    Autre question : si je déclare ces variables par var, celles ci ne sont déclarées que dans le script de document ou dans tout le document?

    En utilisant « var » dans la déclaration d’une variable :

    var toto = "Blablabla";

    Si elle est déclarée dans une fonction elle n’est disponible que dans cette fonction.

    Si elle est déclarée ailleurs que dans une fonction (script de document ou d’objet) elle est disponible dans tout le document actif, et seulement dans celui là.

     

    En n’utilisant pas « var » dans la déclaration :

    toto = "Blablabla";

    Elle est disponible pour tous les scripts de tous les documents ouverts et ceux qu’on ouvrira par la suite tant qu’on n’aura pas quitté l’application.

    Ce qui est parfois trompeur car on peut avoir un document avec des scripts qui fonctionnent très bien alors que le lendemain, après avoir quitté l’application, ou bien quand on le transmet à quelqu’un d’autre ça ne fonctionne plus. En cause : la variable avait été déclarée ailleurs dans un autre document.

    Ce qui peut aussi causer des erreurs si plusieurs documents utilisent un même nom de variable : il en résulte que chaque document écrase la variable déclarée dans un autre.

    en réponse à : Calcul taux d’évolution JavaScript #74934
    Merlin
    Maître des clés

    Bonjour

     

    A priori la réponse est oui mais il faudrait que tu donne plus détails sur la formule à calculer, voire que tu partages tout ou partie du formulaire si tu veux un exemple.

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

    C’est tout le charme des forums, chacun propose son idée et ensuite il faut faire la part des choses.

    Ci-joint un exemple fonctionnel, il faut aussi faire attention à l’ordre de calcul.

     

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

    sauf que, à nouveau, l’affichage en lettre n’est pas automatique : il faut cliquer sur le champ “TexteNombre” pour voir apparaître la transcription. Ça fait un moment que je cherche mais je ne vois pas où est l’erreur. Est-ce parce que l’ordre de calcul n’a pas été modifié ?

    J’ai déjà répondu à cette question il y a deux jours dans ma première réponse (voir ci-dessus) :

    « Et dans le champ “SaisieSomme” le script devrait placé en script de Validation, pas en Action. »

    Si tu ne lis pas les réponses et que tu ne regardes pas les copies d’écran qu’on se donne la peine de te fournir tu risques de tourner en rond pendant longtemps !

    Merlin
    Maître des clés

    Bonjour

    Fais une recherche sur « liste », mère fille » ou sur « listes dépendantes » dans ce forum. Tu auras beaucoup de réponses car ce sujet à déjà été abordé de nombreuses fois.

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

    C’est vrai, mais la validation Acrobat implique d’indiquer une fourchette de valeurs et je ne souhaite pas indiquer de valeur maximale.

    Non.

    Si tu avais regardé la capture d’écran que j’ai posté (ci-dessus) tu aurais vu qu’on peut très bien n’entrer qu’une seule valeur, minimum ou maximum.

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

    Ceci dit JC à raison, le script de conversion en lettres serait mieux placé en script de document.

    Et pour plus de cohérence je mettrais le symbole € dans le champ « SaisieSomme », qui devrait être en lecture seule tout comme le champ « TexteSomme ».

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

    Bonjour

     

    C’est le script de validation du champ « nombre » qui n’est pas correct, c’est d’autant plus dommage qu’il n’y a pas besoin de script : il suffit d’utiliser la validation fournie par Acrobat (voir capture).

    Et dans le champ « SaisieSomme » le script devrait placé en script de Validation, pas en Action.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Chiffre en lettres avec JavaScript #74838
    Merlin
    Maître des clés

    Bonjour

     

    Ci-joint, je ne sais pas s’il y a eu d’autres versions depuis.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Léger bug sur mon formulaire #74836
    Merlin
    Maître des clés

    Moi en général c’est après avoir dormi que je comprend mes erreurs/bugs !

    😉

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

    Il y a de nombreuses années j’ai publié cet utilitaire qui fonctionne sur ce principe, c’est le plus inutile et le moins utilisé que j’ai jamais fait !

    Show_me_the_path

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

    Je viens de regarder la documentation : une chose est sure c’est que dans tous les cas ça ne pourrait se faire que depuis la console ou depuis un script d’application.

    Donc tu n’es pas plus avancé.

     

    Si c’était possible la seule solution serait d’envoyer le script dans la console, d’afficher la console, de demander à l’utilisateur de tout sélectionner dans la console et d’appuyer sur la touche Entrée (Enter) en lui demandant de bien faire attention à ne pas confondre avec la touche Retour (Return). Sachant que sur les Mac portable il faut faire FN-Return pour obtenir Enter.

    D’expérience je peux te dire qu’entre les inexpérimentés qui ne comprendront rien et les méfiants qui ne voudront pas le faire, ça ne fonctionnera que pour un tout petit petit nombre d’utilisateurs.

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