Donnez vie à vos documents numériques !
 

bebarth

Toutes mes réponses sur les forums

Affichage de 99 réponses de 2,080 à 2,178 (sur un total de 3,392)
  • Auteur
    Réponses
  • bebarth
    Maître des clés

    bonsoir,
    Pour le français :

    Code:
    …
        this.event.target.value=nombre+ » $ »;
    } else {
        this.event.target.value= » »;
    }

    Pour l’anglais :

    Code:
    …
    var chaine=this.event.target.valueAsString;
    if (chaine.startsWith(« $ »)) var chaine=chaine.substring(1);
    …
    …
        this.event.target.value= »$ »+nombre;
    } else {
        this.event.target.value= » »;
    }

    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65476
    bebarth
    Maître des clés

    bonjour,
    Tu me donnes tes modifications et/ou ton nouveau tampon avec les infos à indiquer, je regarde, je fais et je t’explique… pour une éventuelle prochaine fois.
    Il y a quand même un minimum à connaitre en JavaScript, mais avec un peu de cogitation et de copier/coller on peut y arriver même sans tout comprendre…
    @+
    :bonjour:

    en réponse à : Liste déroulante d’après champ du formulaire #65540
    bebarth
    Maître des clés

    bonjour,
    Voilà !
    Si j’ai bien compris ce que tu voulais faire, il faut créer une table avec le texte récupéré de ton champ et coupé à chaque saut de ligne puis alimenter la liste en définissant chaque élément par un élément de la table divisé à chaque ||…
    Je ne sais pas si je suis très clair !!! Tu regarderas le script…
    @+
    :bonjour:

    en réponse à : Paramétrage formulaire #65433
    bebarth
    Maître des clés

    bonsoir,
    Pour rendre le champ obligatoire :
    this.getField(« lacheckbox »).required=true;
    @+
    :bonjour:

    en réponse à : PDF interactif – Fonction récapitulative #65524
    bebarth
    Maître des clés

    tu peux faire apparaitre le résultat dans un champ auparavant invisible (s’il possède un fond) ou en lecture seule si le fond est blanc !!!
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Je ne pense pas qu’il soit possible de modifier via JavaScript les préférences d’Adobe Reader !
    Moi, je n’ai pas de PC, et sur Mac l’activation JavaScript est peut-être activée d’office, mais si on la désactive, le résultat est identique.
    Par contre on a une alerte avec possibilité d’activer le JavaScript pour ce document. N’est-ce pas la même chose sur PC ???

    Pour info, ton script de document n’a pas besoin d’être mis en tant que fonction. Tu peux juste indiquer une ligne de script.
    @+
    :bonjour:

    en réponse à : PDF interactif – Fonction récapitulative #65522
    bebarth
    Maître des clés

    En fait, je regarde tous les champs entre la page 3 et la page 11

    Code:
    if (f.page>=(3-1) && f.page<=(11-1))

    et selon si c’est une case à cocher (case « checkbox »:), un menu déroulant (case « combobox »:) ou un champ texte (case « text »:), je vais chercher le nombre indiqué (f.value) et la désignation dans l’info bulle (f.userName) que j’ajoute à la chaine « laListe ».
    Une fois que tous les champs ont été vérifiés, on affiche la fenêtre avec le résultat (app.alert(laListe,3);).
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Voici les 2 scripts d’actions à indiquer :

    Code:
    // Le document sera imprimé
    lesFonds=new Array();
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        lesFonds=f.fillColor;
        f.fillColor=color.transparent;
    }

    // Le document a été imprimé
    for (var i=0; i    var f=this.getField(this.getNthFieldName(i));
        f.fillColor=lesFonds;
    }

    @+
    :bonjour:

    en réponse à : PDF interactif – Fonction récapitulative #65520
    bebarth
    Maître des clés

    bonsoir,
    Voici ce que je t’ai fait.
    J’ai supposé que les champs « texte » des sacs, stylos et crayons devaient contenir des nombres.
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65472
    bebarth
    Maître des clés

    bonsoir,
    Tampons personnalisés -> Gérer… -> Modifier
    @+
    :bonjour:

    en réponse à : PDF interactif – Fonction récapitulative #65519
    bebarth
    Maître des clés

    Sinon, à la place du nom du champ on peut faire correspondre son « userName » (le contenu de l’info-bulle) avec le nom de l’article correspondant.

    Ça c’est une excellente idée… plus besoin de fichier excel !
    @+
    :bonjour:

    en réponse à : PDF interactif – Fonction récapitulative #65517
    bebarth
    Maître des clés

    bonjour,

    Tu penses qu’il serait possible de simplifier le processus si la structure du formulaire était différente ?

    Il faudrait que tous les champs sélectionnables aient le même nom avec un indice (leChamp1, leChamp2, etc.).
    Si tu fournis un fichier excel avec 2 colonnes Nom du champ & Désignation pour tous les champs sélectionnables, ça permettrait de créer une table et ça faciliterait le script.

    Je souhaiterais ajouter une fonctionnalité qui permettrait de faire un récapitulatif de ce qui a été sélectionné (donc de n’afficher que les éléments qui ont été préalablement sélectionnés) avant l’envoi par mail ou l’impression. Cela dans l’optique de simplifier la lecture des gens chargés de traiter les données de l’inventaire.

    Je ne comprend pas bien ce que tu veux faire exactement !
    Comment veux-tu afficher le résultat ? Une Fenêtre d’alerte ?
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65470
    bebarth
    Maître des clés

    bonjour,
    Désolé, mais je n’ai pas eu le temps hier !
    Tu places donc le fichier .pdf dans ton répertoire « Stamps » et tu auras ton tampon après avoir redémarré Acrobat.
    J’ai indiqué la date du jour par défaut.
    Si tu as besoin d’autres valeurs par défaut tu me demandes (sauf si tu sais faire !!!).
    ATTENTION : La date doit être indiquée YY/MM/DD comme tu l’as demandé mais je n’ai pas géré les erreurs de syntaxes.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonsoir,
    Il faudrait créer un script d’action qui rend le fond des champs transparents lorsque le fichier est imprimé, puis un autre qui remet les fonds lorsque le fichier a été imprimé.
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65468
    bebarth
    Maître des clés

    bonjour,
    Je vais essayer de travailler sur le tampon aujourd’hui, mais pas sûr…
    La date celle du jour où on applique le tampon (automatique) ou doit elle être renseignée ?
    @+
    :bonjour:

    en réponse à : PDF avec correction masquable #65503
    bebarth
    Maître des clés

    bonjour,

    1. Je m’aperçois que je n’ai pas été assez précise : j’aurais voulu que la correction reste affichée une fois le bouton de la souris relâché.

    Voici une nouvelle proposition.

    2. Bizarrement, cela fonctionne très bien sur mon PC, mais pas du tout sur mon smartphone (la plupart de mes élèves n’ont pas de PC, mais ont un smartphone).

    Je sais qu’il y a des soucis avec les tablettes, mais je ne sais pas te dire quoi ou quand ça marche ou ne marche pas !
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65466
    bebarth
    Maître des clés

    bonjour,
    quels sont les champs à renseigner via la boite de dialogue ?
    Le champ pour « APPROVED BY » ne semble pas assez grand pour indiquer un nom… à moins que ce ne soit des initiales ou un chiffre !!!
    La date doit être indiquée en 3 morceaux ??? DD/MM/YY -> dans ce format ?
    Faut-il renseigner 2 champs pour « …CLIENT.MATTER »
    Je suppose que pour SIGNATURE c’est une signature manuelle !
    @+
    :bonjour:

    en réponse à : PDF avec correction masquable #65500
    bebarth
    Maître des clés

    bonsoir,
    Sans JavaScript et un seul bouton (par question), je vois cette solution : une action qui masque ou affiche un champ de la couleur du fond.
    @+
    :bonjour:

    en réponse à : PDF avec correction masquable #65497
    bebarth
    Maître des clés

    bonjour,
    Pas de souci si tu as Acrobat Pro !
    Partage un fichier exemple et on te montre ce qui est possible de faire !
    @+
    :bonjour:

    en réponse à : PDF avec correction masquable #65495
    bebarth
    Maître des clés

    bonsoir,
    J’avais espoir que tu utilisais Acrobat Pro !
    Je ne connais pas les possibilité de pdf creator. Peux-tu créer des champs et leur attribuer des actions ou des scripts ?
    @+
    :bonjour:

    en réponse à : Profil icc incorporé, RIP, non détection.. #65508
    bebarth
    Maître des clés

    Je me doutais bien qu’il n’y avait sûrement que toi qui pouvait répondre à ce genre de question !
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65463
    bebarth
    Maître des clés

    Si tu peux, tu me fais passer ton fichier Tampons utilisateur qui porte un nom genre « iOjT0b3PCLbVGbKhQ3OQfA.pdf » et qui se trouve dans le répertoire que tu auras trouvé en tapant app.getPath(‘user’,’stamps’); dans la console !
    Je pourrais récupérer le script de l’alerte avec 2 champs.
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65461
    bebarth
    Maître des clés

    …le script est là !
    J’essaye de regarder rapidement, mais n’attends pas avant le début de semaine prochaine.
    bon weekend.
    @+
    :bonjour:

    PS : pour trouver les fichiers des tampons, il faut taper dans la console app.getPath(‘user’,’stamps’); pour les tampons personnalisés ou app.getPath(‘app’,’stamps’); pour les tampons d’Acrobat, suivi de ENTER.

    en réponse à : Tampon avec plusieurs zones de texte libre #65459
    bebarth
    Maître des clés

    …OK !
    En fait je n’avais jamais travaillé sur les tampons et je vois que ce n’est pas si simple que ça ! Beaucoup de possibilité, mais pas simple…
    La fenêtre apparait donc lorsqu’on appose le tampon !
    Je vais essayer de regarder mais je ne suis pas certain de pouvoir rapidement.
    Merlin a-t-il peut être plus de connaissance que moi pour ce sujet.
    Voici les quelques pages que j’ai consulté pour l’instant :
    https://acrobatusers.com/tutorials/custom_dynamic_stamp
    https://acrobatusers.com/tutorials/dynamic_stamp_secrets
    http://blogs.adobe.com/acrolaw/2009/09/try-these-two-line-dynamic-exhibit-stamps/#more-108
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65458
    bebarth
    Maître des clés

    …et la boite de dialogue est déclenchée quand ou par quoi ? un bouton ?
    As tu le script pour la boite de dialogue ?
    Tu veux renseigner le fichier Tampon, ou le tampon une fois apposé (je ne sais pas si c’est possible…).
    @+
    :bonjour:

    en réponse à : PDF avec correction masquable #65493
    bebarth
    Maître des clés

    bonjour,
    Que disposes-tu comme outils ? Acrobat Pro ?
    As-tu un fichier exemple ? Ou veux-tu faire apparaitre la correction ? une fenêtre, une autre page ?
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65456
    bebarth
    Maître des clés

    bonjour,
    Le plus simple serait de partager un fichier !
    @+
    :bonjour:

    en réponse à : Calcul – créer un message d’alerte #65452
    bebarth
    Maître des clés

    …genre le fichier joint.
    Si je peux, je te conseillerais de lire le tuto « Duplication rapide de champs » qui pourrait te faciliter la tâche !
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
    @+
    :bonjour:

    en réponse à : Calcul – créer un message d’alerte #65449
    bebarth
    Maître des clés

    bonjour,
    Pourquoi ton champ « Nombre de courts » ne calcule-t-il pas directement la somme des 3 autres champs au lieu de l’indiquer avec risque d’erreur ???
    @+
    :bonjour:

    en réponse à : Tampon avec plusieurs zones de texte libre #65453
    bebarth
    Maître des clés

    bonjour,
    Je veux bien essayer de t’aider dès que je comprends ce que tu veux faire…
    Promis !
    @+
    :bonjour:

    en réponse à : Calcul pourcentage #65447
    bebarth
    Maître des clés

    bonsoir,
    Il suffit de redéfinir l’ordre de calcul (et l’ordre de tabulation, c’est pas mal aussi) !
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    …en sachant qu’avec Acrobat Pro il n’est pas possible de renommer des champs via JavaSricpt, mais qu’on peut les supprimer et en re-créer de nouveaux identiques, mais sans les scripts associés !
    @+
    :bonjour:

    en réponse à : Paramétrage formulaire #65430
    bebarth
    Maître des clés

    bonjour,
    Voici ma proposition :

    Code:
    var j=0;
    for (var i=0; i    var fname = this.getNthFieldName(i);
        var f = this.getField(fname);
        try {
          if (f.required && (f.value== » » || f.value== »Off »)) j++;
        } catch(e) {};
    }
    if (j!=0) {
        app.alert(« Tous les champs entourés d’un filet rouge doivent être remplis et toutes les évaluations doivent être renseignées »,3);
    } else {
        for (var i=0; i      var fname = this.getNthFieldName(i);
          var f = this.getField(fname);
          f.readonly = true;
        }
        this.mailDoc({
        bUI: false,
        cTo: « robin@pdjconnect.com »,
        cSubject: « Sujet deu message »,
        cMsg: « Texte du message. »
        });
        this.resetForm();
        this.dirty=false;
    }

    On vérifie que tous les champs obligatoires ne sont pas vide et que les boutons radio sont renseignés.
    Si c’est bon, on met tous les champs en lecture seule et on envoie le pdf avec mailDoc (c’est une copie qui est envoyée par la messagerie).
    Ensuite on réinitialise le formulaire avec « this.resetForm(); » et on indique qu’il n’y a pas besoin d’enregistrer avec « this.dirty=false; »
    J’ai également ajouter des script pour vérifier la syntaxe des adresses e-mail et les premières lettres en capitales pour Nom et Prénom.
    Je te laisse étudier ça !
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65361
    bebarth
    Maître des clés

    Oups ! J’avais publié une mauvaise ligne de script (var lesLignes=lesLignes.replace(/ »/gi, » »); au lieu de var lesDonnees=lesDonnees.replace(/ »/gi, » »);).
    Par contre, l’action postée et que je t’ai envoyé par mail est correcte.
    J’ai modifié la ligne dans les 2 post précédents.
    Tu me dis si tu as encore un message dans la console.
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65359
    bebarth
    Maître des clés

    Concernant le fichier avec l’autre norme, cela n’est pas possible ?

    C’est possible, mais on ne récupère plus les caractères accentués !
    Essaie ce script et donne-moi les résultats de la console.

    Code:
    console.show();
    console.clear();
    var Chemin=this.path;
    var donneesCSV=this.getDataObjectContents(« UTF-8.csv »);
    var lesDonnees=util.stringFromStream(donneesCSV);
    console.println(« lesDonnees : « +lesDonnees);
    for (var i=1; i    if (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
    }
    console.println(« lesDonnees 1 : « +lesDonnees);
    var lesDonnees = lesDonnees.replace(/ »/gi, » »);
    console.println(« lesDonnees 2 : « +lesDonnees);
    var lesLignes=lesDonnees.split(separateur);
    console.println(« lesLignes : « +lesLignes);
    var laLigne1=lesLignes[0].split(« ; »);
    console.println(« laLigne1 : « +laLigne1);
    var laLigne2=lesLignes[1].split(« ; »);
    console.println(« laLigne2 : « +laLigne2);
    for (var i=0; i    console.println(« i : « +i);
        console.println(« laLigne1 : « +laLigne1);
        console.println(« laLigne2 : « +laLigne2);   
        try {
            this.getField(laLigne1).value=laLigne2;
        } catch(e) {}
    }
    this.removeDataObject(« UTF-8.csv »);
    this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);

    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65357
    bebarth
    Maître des clés

    bonjour,
    Voici une version adaptée spécialement pour les fichiers que tu m’as fait parvenir. Je ne suis pas diplômé es .csv, et je ne pourrais donc pas t’expliquer le pourquoi mais avec tes fichiers UTF-8 on récupères également des guillemets et le retour ligne récupéré n’est pas r. Par contre on récupère bien les caractères accentués, j’ai donc retiré les lignes pour renommer.
    Il faut donc dans un premier temps trouver ce séparateur. Avec : if (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
    On vérifie donc le caractère situé entre 2 guillemets (34) et si ce n’est pas un point-virgule (59), c’est le retour ligne !
    Ensuite on retire tous les guillements dans la chaine avec : lesDonnees.replace(/ »/gi, » »); -> ici le « i » n’est pas obligatoire car il est pour « insensitive case », on pourrait se contenter de : lesDonnees.replace(/ »/g, » »);
    Ce qui donne au final :

    Code:
    var Chemin=this.path;
    var donneesCSV=this.getDataObjectContents(« fichierData.csv »);
    var lesDonnees=util.stringFromStream(donneesCSV);
    for (var i=1; i    if (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
    }
    var lesDonnees=lesDonnees.replace(/ »/gi, » »);
    var lesLignes=lesDonnees.split(separateur);
    var laLigne1=lesLignes[0].split(« ; »);
    var laLigne2=lesLignes[1].split(« ; »);
    for (var i=0; i    try {
            this.getField(laLigne1).value=laLigne2;
        } catch(e) {}
    }
    this.removeDataObject(« fichierData.csv »);
    this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);

    @+
    :bonjour:

    en réponse à : Bon de commande boutique Club #65439
    bebarth
    Maître des clés

    …et si tu les nommes PVPDF.0 à PVPDF.6 (au lieu de PVPDF1 à PVPDF7) tu peux faire la somme juste en indiquant PVPDF comme dans la copie d’écran !
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65353
    bebarth
    Maître des clés

    Il faut plutôt utiliser « try & catch » :

    Code:
    …
    try {
    this.getField(laLigne1).value=laLigne2;
    } catch(e) {}
    …

    @+
    :bonjour:

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

    bonjour,
    Normalement, si ton fichier pdf et ton fichier data.txt sont dans le même répertoire, tu as juste à modifier le nom « data » pour indiquer le nom exact.
    this.path lit le chemin du fichier pdf et this.documentFileName lit son nom donc il ne faut pas toucher.
    Si le document data.txt n’est pas dans le même répertoire il faut remplacer « var fileName = repertoire+ »data.txt »; » par « var fileName = « le chemin exact du fichier data.txt »; ».
    IL faut s’assurer d’avoir les droits dans ce répertoire !
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65350
    bebarth
    Maître des clés

    Voici un script spécialement adapté pour ton fichier.

    Code:
    var Chemin=this.path;
    var donneesCSV=this.getDataObjectContents(« test.csv »);
    var lesDonnees=util.stringFromStream(donneesCSV);
    var lesLignes=lesDonnees.split(« r »);
    var laLigne1=lesLignes[0].split(« ; »);
    var laLigne2=lesLignes[1].split(« ; »);
    for (var i=0; i    var n=laLigne2.charCodeAt(0);
        if (n==10) laLigne2=laLigne2.substring(1); // Spécialement pour fichier csv fourni ???
        if (laLigne1== »Rfrence ») laLigne1= »Référence »;
        if (laLigne1== »Site de lincident ->Nom complet ») laLigne1= »Site de l’incident ->Nom complet »;
        this.getField(laLigne1).value=laLigne2;
    }
    this.removeDataObject(« test.csv »);
    this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);

    Les caracères non reconnus sont « é » dans Référence et l’apostrophe dans « Site de l’incident… »
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65348
    bebarth
    Maître des clés

    Cependant, j’ai réalisé le test et pour le champ « Référence » cela fonctionne (même avec les accents)…

    Cela m’étonne un peu car lorsque je récupère « Référence » du fichier csv j’obtiens « Rfrence » !
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65347
    bebarth
    Maître des clés

    J’ai peut-être une solution mais pour savoir, pourquoi les champs « Site… » et « Client… » sont-ils des listes déroulantes s’il sont remplis via l’application web ?
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65345
    bebarth
    Maître des clés

    Je comprends que tu ne puisses pas renommer les noms de champs de l’application web, mais pourquoi ne pas renommer les champs du formulaire ???
    Ensuite si le nom du champ récupéré commence par « Site de l’incident » tu renvoies vers le nom de champ « Site » par exemple !
    @+
    :bonjour:

    en réponse à : Bon de commande boutique Club #65437
    bebarth
    Maître des clés

    bonjour,
    Il faut redéfinir l’ordre de calcul des champs.
    Dans ton cas PT1…PT20, puis les PV FDP1 à 7 et enfin ST et PV TOTAL.
    Si je peux, je te conseillerais de lire le tuto « Duplication rapide de champs » qui pourrait te faciliter la tâche !
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65343
    bebarth
    Maître des clés

    bonjour,
    Voici un script pour une action adaptée spécialement pour ton fichier avec les champs renommés (je ne savais pas si je pouvais poster ton fichier).

    Code:
    var Chemin=this.path;
    var donneesCSV=this.getDataObjectContents(« test.csv »);
    var lesDonnees=util.stringFromStream(donneesCSV);
    var lesLignes=lesDonnees.split(« r »);
    var laLigne1=[« Client », »Description », »Reference », »Titre », »Site »];
    var laLigne2=lesLignes[1].split(« ; »);
    for (var i=0; i    var n=laLigne2.charCodeAt(0);
        if (n==10) laLigne2=laLigne2.substring(1); // Spécialement pour fichier csv fourni ???
        this.getField(laLigne1).value=laLigne2;
    }
    this.removeDataObject(« test.csv »);
    this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client »).value+ »).pdf »);

    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65341
    bebarth
    Maître des clés

    Si les infos du fichier csv sont toujours identiques, on peut ignorer la première ligne :

    Code:
    var laLigne1= lesLignes[0].split(« ; »);

    et la remplacer par une table avec les noms corrects des champs renommés dans le pdf, par exemple :

    Code:
    var laLigne1= [« Client », »Description », »Reference », »Titre », »Site »];

    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65339
    bebarth
    Maître des clés

    Je n’avais pas vu que tu m’avais envoyé un fichier teste sur ma boite mail.
    J’ai essayé et ça fonctionne mais il va falloir modifier le nom de certains champs pour ne pas avoir de caractères accentués ni de caractères spéciaux (et je crois pas d’espace… en tout cas moi je n’en mets jamais !).
    …et bien sûr indiquer le nom correct du fichier .csv dans le script.
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65338
    bebarth
    Maître des clés

    Voici un nouvel exemple pour un fichier csv avec 2 lignes et qui est supprimé après importation des données.
    Si tu utilises l’action (uniquement si), tu peux en plus enregistré le fichier complété sous un nouveau nom : nomFichier (Nom Prenom).pdf
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65336
    bebarth
    Maître des clés

    bonjour,
    Si j’ai bien compris, le fichier csv ne comprend qu’une seule ligne à chaque fois, correct ?
    Voici donc un exemple qu’il faudra certainement adapter en fonction du nom des champs à remplir.
    …après, je ne sais pas si le script doit importer le fichier csv, le supprimer après remplissage des champs, enregistrer le fichier sous un nom (lequel), etc.
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65333
    bebarth
    Maître des clés

    …si tu cliques sur mon pseudo, tu devrais la trouver !!!
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65331
    bebarth
    Maître des clés

    Si tu peux me faire parvenir ton/tes fichiers(s), je pourrai regarder demain matin !
    @+
    :bonjour:

    en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65329
    bebarth
    Maître des clés

    bonjour,

    Cependant, tu ne réponds pas à la problématique principale, qui est de pouvoir importer les données d’un fichier CSV joint à mon formulaire PDF, afin de compléter certains champs de mon formulaire avant de l’envoyer au client.

    Je n’ai pas suivi ce post depuis le début, mais pour ce point n’est-il pas possible d’utiliser plutôt un fichiet .txt et d’adapter le script de ce post ?
    https://abracadabrapdf.net/forum/index.php/topic,3498.msg20950.html#msg20950
    @+
    :bonjour:

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

    bonjour,

    Je crois savoir que l’auteur de ce script est en vacances.  :afro:

    Moi j’étais bien en vacances la semaine dernière, mais je ne suis pas l’auteur du script…  :Smiley15:
    Voici une action d’une adaptation avec traduction.

    Code:
    var Chemin = this.path;
    var nomDocument = this.documentFileName;
    var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length);
    var fileName = repertoire+ »data.txt »;
    var outputDir = repertoire;
    var err = 0;
    var idx = 0;
    while (err==0) {
        err = this.importTextData(fileName, idx++); // Importation des données
        if (err == -1) app.alert(« Erreur : Le fichier ne peut pas être ouvert. »);
        else if (err == -2) app.alert(« Erreur : Les données ne peuvent pas être importées. »);
        // else if (err == -3) app.alert(« Error: Invalid Row »);
        // Nous n’indiquons pas cette erreur car elle signale la fin du tableau de données
        // et il faut donc sortir de la boucle « while »
        else if (err == 1) app.alert(« Attention : Sélection de fichier annulé par l’utilisateur. »);
        else if (err == 2) app.alert(« Attention : Sélection de ligne annulée par l’utilisateur. »);
        else if (err == 3) app.alert(« Attention : Données non trouvées. »);
        else if (err == 0) this.saveAs(outputDir + this.getField(« Nom »).value + « _ » + this.getField(« Prenom »).value + « .pdf »); // Enregistrement du fichier
    }

    Il faut que ton fichier data.txt soit dans le même répertoire que ton fichier .pdf et tous les fichiers seront enregistrés dans ce même répertoire.
    Attention à ne mettre de caractères spéciaux dans les nom des champs. Ici j’ai renommé « Prénom » en « Prenom ».
    @+
    :bonjour:

    en réponse à : Insertion d’une page entre chaque page d’un PDF #65419
    bebarth
    Maître des clés

    Je viens de m’apercevoir dans le second script qu’avec le copier/coller, il y avait 2 fois la variable « i » dans 2 boucles « for » imbriquées !!!
    Et ça fonctionne quand même…  :Euuuh:
    => En fait j’ai modifié le script juste avant de le poster. Dans la version d’origine les boucles n’étaient pas imbriquées. Dans la version avec 2 variables « i », ça fonctionne uniquement s’il n’y a que les 2 fichiers ouverts ou si ce sont les 2 derniers.
    Je pense qu’il vaut mieux changer le nom d’une de ces variables. Ici, j’ai conservé la variable « i » identique au premier script et j’ai remplacé l’autre par « j » :

    Code:
    // Insertion page active du fichier ouvert
    var Chemin = this.path;
    var nomDocument = this.documentFileName;
    var d = app.activeDocs;
    for (var j=0; j < d.length; j++) {
        if (j!=0 && d[j].documentFileName==nomDocument) {
            var lautreChemin=d[j-1].path;
            var laPage=d[j-1].pageNum;
            for (var i=this.numPages-2; i>=0; i–) {
                // Pour une page blanche après la dernière page : var i=this.numPages-1;
                // Pour une page blanche avant la première page : i>=-1;
                this.insertPages ({
                    nPage: i,
                    cPath: lautreChemin,
                    nStart: laPage
                });
            }
            // Enregitrement
            this.saveAs({
                cPath: Chemin,
                bPromptToOverwrite: false,
            });
            break;
        }
    }

    @+
    :bonjour:

    en réponse à : Insertion d’une page entre chaque page d’un PDF #65417
    bebarth
    Maître des clés

    bonjour,
    Voici deux scripts.
    Le premier insert la première page d’un fichier PageBlanche.pdf qui se trouve dans le même répertoire que le fichier à traiter.
    Les variantes sont indiquées dans le script. L’enregistrement est prévu, mais il suffit de retirer les lignes si on n’en veut pas !

    Code:
    // Insertion page #1 d’un fichier
    var Chemin = this.path;
    var nomDocument = this.documentFileName;
    var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length);
    for (var i=this.numPages-2; i>=0; i–) {
        // Pour une page blanche après la dernière page : var i=this.numPages-1;
        // Pour une page blanche avant la première page : i>=-1;
        this.insertPages ({
            nPage: i,
            cPath: repertoire+ »PageBlanche.pdf »,
            nStart: 0
        });
    }
    // Enregitrement
    this.saveAs({
        cPath: Chemin,
        bPromptToOverwrite: false,
    });

    Ce second script insert la page active du fichier précédemment ouvert.
    Si 15 fichiers sont ouverts et que le fichier à traiter est le dixième, la page insérée sera la page active du neuvième fichier. Est-ce clair ???
    Si ça ne l’est pas, le plus simple est de n’ouvrir que les 2 fichiers nécessaires. En premier le fichier où il y a la page à insérer (afficher la page), puis le fichier à traiter avant de lancer l’action.

    Code:
    // Insertion page active du fichier ouvert
    var Chemin = this.path;
    var nomDocument = this.documentFileName;
    var d = app.activeDocs;
    for (var i=0; i < d.length; i++) {
        if (i!=0 && d.documentFileName==nomDocument) {
            var lautreChemin=d[i-1].path;
            var laPage=d[i-1].pageNum;
            for (var i=this.numPages-2; i>=0; i–) {
                // Pour une page blanche après la dernière page : var i=this.numPages-1;
                // Pour une page blanche avant la première page : i>=-1;
                this.insertPages ({
                    nPage: i,
                    cPath: lautreChemin,
                    nStart: laPage
                });
            }
            // Enregitrement
            this.saveAs({
                cPath: Chemin,
                bPromptToOverwrite: false,
            });
            break;
        }
    }

    @+
    :bonjour:

    en réponse à : Calculs multiples à partir de cases cochées #64096
    bebarth
    Maître des clés

    bonjour Merlin,

    Ou bien dans le menu local du panneau de navigation « Contenu ».

    En 2 mots, il sert à quoi ce panneau ? On y voit tous les éléments contenus dans le pdf mais on peut faire quoi avec ?
    Merci.
    @+
    :bonjour:

    en réponse à : Calculs multiples à partir de cases cochées #64094
    bebarth
    Maître des clés

    Comment a-t-on cette fenêtre ?
    Peut-on désinstaller uniquement « certaines » polices ??? et non toutes sauf…
    @+
    :bonjour:

    en réponse à : Calculs multiples à partir de cases cochées #64092
    bebarth
    Maître des clés

    bonjour,
    Voici :
    https://we.tl/t-b3T12PT5H6
    Je ne comprends pas pourquoi le fichier est si gros…
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65387
    bebarth
    Maître des clés

    bonjour,

    Si je comprend bien, le meilleur moyen serait de refaire ces 2 formulaires avec mes propres champs.

    Ça, ce n’est pas ce qu’il y a de plus compliqué et de plus long à faire… Certaines fois on cherche la complexité pour pas grand chose.
    https://we.tl/t-wzG52maJow
    Voilà ! Je te laisse le soin de renommer les champs identiques comme je l’ai fait pour les champs « NOM ».
    Peut-être quelques ajustements de position des champs.
    @+
    :bonjour:

    en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65412
    bebarth
    Maître des clés

    bonjour,
    Voici le fichier avec le script modifié qui indique les bureaux qui ne sont pas cochés.
    Je préfère indiquer comme cela plutôt que « tous… sauf » car ça me parait étrange comme formulation quand le « sauf » devient plus important que le reste !
    Il faut peut-être revoir le texte de l’indication donnée dans ce champ… (bureaux cochés ???).

    Pour cet étage, il n’y avait pas 40 bureaux mais 33. C’est pour cela que j’ai mis l’instruction « try… catch » qui évite que le script ne s’arrête si le bureau n’existe pas !
    @+
    :bonjour:

    en réponse à : Les champs ne se classent pas automatiquement (tabulations) #65416
    bebarth
    Maître des clés

    bonjour,

    Ta question m’a fait m’apercevoir que l’outil qui permettait de cliquer sur les champs pour leur affecter un ordre de tabulation a disparu d’Acrobat Pro.

    Ça me rassure, car les dernières fois que j’ai voulu utiliser cette outil après ne pas l’avoir utilisé pendant des années, je me suis demandé si je ne l’avais pas imaginé…

    Si tu as des besoins particuliers en ordre de tabulation le mieux est de commencer par un de ces deux modes automatiques pour faire le plus gros, et ensuite de repasser en « manuel » pour peaufiner.

    C’est également la meilleure façon que j’ai trouvé pour pour ordonner les champs, sachant que je crois qu’il est même impossible de le faire par JavaScript.

    @+
    :bonjour:

    en réponse à : Calculs multiples à partir de cases cochées #64090
    bebarth
    Maître des clés

    …et si tu ne veux pas partager ton fichier avec tout le monde, tu envoies le lien en MP.
    @+
    :bonjour:

    en réponse à : Prendre un instantané + Positionnement du pdf #65396
    bebarth
    Maître des clés

    …mais la position restera quand même centrée verticalement, et pas sûr que la position horizontale soit exacte non plus par rapport à l’autocollant !!!
    @+
    :bonjour:

    en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65410
    bebarth
    Maître des clés

    Apparemment tous les bureaux n’existent pas.
    Voici ce que j’ai fait. Tu me dis !
    @+
    :bonjour:

    en réponse à : Dupliquer des pages déjà numérotées. #65404
    bebarth
    Maître des clés

    Voici une version améliorée qui te permet d’indiquer le nombre de fois qu’il faut dupliquer chaque page.
    Je ne vois pas bien l’utilité du script ! J’espère que ce n’est pas uniquement pour imprimer car ça peut se régler via le gestionnaire d’impression… non ?
    @+
    :bonjour:

    en réponse à : Calculs multiples à partir de cases cochées #64088
    bebarth
    Maître des clés

    bonjour,

    Mon fichier est trop lourd pour être transmis à priori.

    …une copie d’écran alors !
    @+
    :bonjour:

    en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65409
    bebarth
    Maître des clés

    bonjour,
    Pour chaque bureau on doit avoir soit la coche soit la croix rouge ou aucune des 2 cases peut ne pas être cochée ?
    Je n’ai pas vérifié, mais tous les bureaux 701 à 740 existent ???
    @+
    :bonjour:

    en réponse à : Dupliquer des pages déjà numérotées. #65401
    bebarth
    Maître des clés

    bonjour,

    Ça marche aussi pour 3 pages ? Une action dans Acrobat ?

    Tu veux dire 3 fois de suite la même page ?
    Pour cela il faut modifier un peu le script. Tu me dis…
    @+
    :bonjour:

    en réponse à : Dupliquer des pages déjà numérotées. #65399
    bebarth
    Maître des clés

    bonjour,
    On ne peut pas dupliquer une page d’un fichier .pdf, par contre on peut créer un nouveau fichier où l’on insert deux fois de suite la même page !
    Voici une action qui fait cela.
    @+
    :bonjour:

    en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65407
    bebarth
    Maître des clés

    bonjour,
    Attention aux noms des champs utilisés dans les scripts. Ils ne doivent contenir ni espaces ni caractères spéciaux.
    …et dans tons cas, toutes les cases à cocher doivent se dénommer de la même façon à l’indice près (et non « Case a cocher1 », « case à cocher2),…).
    Voici ton fichier retouché.
    @+

    en réponse à : Calculs multiples à partir de cases cochées #64086
    bebarth
    Maître des clés

    Bonjour,
    Ce serait plus pratique si tu pouvais partager un fichier !
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65385
    bebarth
    Maître des clés

    …à moins d’essayer de mettre « app.activeDocs » en « trustedFunction », mais je n’ai pas le temps d’essayer aujourd’hui, et en plus j’ai mal au crâne !  :geek:
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65384
    bebarth
    Maître des clés

    …et je viens de penser que les documents devraient être « disclosed » pour pouvoir copier les valeurs de l’un à l’autre et apparemment on ne peut pas rajouter le script, à part peut-être sur le document original LiveCycle Designer…
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65382
    bebarth
    Maître des clés

    Acrobat Pro ne permet même pas d’accéder aux noms des champs.

    ???
    Pourtant je connais assez bien une personne qui a écris un script qui liste le nom des champs…  :geek:
    …et ça fonctionne !
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65380
    bebarth
    Maître des clés

    ???
    Ça demande un peu de travail de recherche parce que les champs n’ont pas les mêmes noms, mais sinon on peu bien remplir le deuxième formulaire avec les données du premier, non ?
    Me trompé-je ??? (beurk !)
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65377
    bebarth
    Maître des clés

    …remarque, si on ne peut pas fusionner les documents, il n’y a pas de raison que ce soit interdit !!!
    On pourrait créer une action qui reprend les valeurs des champs d’un des formulaires pour remplir l’autre !
    @+
    :bonjour:

    en réponse à : Fusionner 2 formulaires PDF #65376
    bebarth
    Maître des clés

    bonjour,
    Répliquer la saisie des champs, à première vue c’est faisable, mais a-t-on le droit ?
    On ne pourra pas fusionner les 2 documents car il ont été généré par Adobe LiveCycle Designer.
    C’est pour l’instant ma seule question…
    @+
    :bonjour:

    en réponse à : Transformer un script "absolu" en script "relatif" #65371
    bebarth
    Maître des clés

    …normal que ça ne marche pas, ici il faut écrire :

    Code:
    indice = parseInt(str.substring(n+7));

    str.substring donne la position du premier caractère (n), et +1 pour le caractère suivant.
    Pour « mEnfant » il faut rajouter 7 caractères.
    @+
    :bonjour:

    en réponse à : Transformer un script "absolu" en script "relatif" #65367
    bebarth
    Maître des clés

    bonjour,
    Il faut que tu  récupères « l’indice » de ton champ avec :

    Code:
    var str = this.event.target.name;
    var n = str.indexOf(« _ »);
    indice = parseInt(str.substring(n+1));

    Ici, « indice » représente la valeur numérique de tous les caractères situés après « _ » dans le nom du champ.
    Si ton champ se nome « reditTypeAutreCredit_0 » indice vaut 0, et tu pourras écrire :

    Code:
    this.getField(« nature_credit_ »+(indice+1)).value = this.getField(« CreditTypeAutreCredit_ »+indice).value;
    au lieu de
    this.getField(« nature_credit_1 »).value = this.getField(« CreditTypeAutreCredit_0 »).value;

    etc.
    …si j’ai bien compris ce que tu veux faire.
    Et quand on commence à avoir x fois le même script pour le même calcul il est préférable de le mettre en fonction dans un script de document. On ne l’écrit qu’une seule fois et s’il y a une modification, on ne la fait qu’une fois.
    Il existe plusieurs exemples sur le forum, dont celui-ci :
    https://abracadabrapdf.net/forum/index.php/topic,3594.0.html
    @+
    :bonjour:

    en réponse à : Retour sur le formulaire après un contrôle de champ #65366
    bebarth
    Maître des clés

    bonjour,

    …lorsque je clique sur le bouton valider, le contrôle se fait correctement. Lorsque le champ en question est vide j’ai bien un message d’erreur mais lorsque je clique sur OK j’ai la fenêtre pour envoyer le document par mail qui apparaît.

    Vu ce que tu nous dis, il semble que tu as bien utilisé l’instruction « if » pour indiquer ta condition, et bien il faut rajouter « else » pour indiquer une instruction si cette condition n’est pas respectée…
    Il faut séparer les instructions si la condition est respectée et celles si elle ne l’est pas.

    Code:
    if (tous les champs ne sont pas remplis) {
    message d’erreur;
    } else {
    envoi du formulaire;
    }

    @+
    :bonjour:

    en réponse à : Formulaire – Masquer les informations selon la réponse #65267
    bebarth
    Maître des clés

    bonjour,
    Il y a plusieurs erreurs dans ton script.
    Lorsque tu écris this.event.target.isBoxChecked(3), 3 n’est pas pas le non du champ mais le numéro du widget (qui est un numéro d’indice pour les champs de même nom).
    Ensuite, tu vas regarder l’état du template « page4 » qui n’existe pas ! tu n’as qu’un template « page9 ».
    Il faudrait donc écrire (avec les mêmes syntaxes utilisées) :

    Code:
    if(this.event.target.isBoxChecked(0)) {
    this.getTemplate(« page9 »).hidden = false;
    } else {
    this.getTemplate(« page9 »).hidden = true;
    }

    Mais je pense que tu vas vite t’apercevoir que ça ne te convient pas !
    Lorsque tu affiche ta page, elle se place à la fin. Pour la placer au bon endroit c’est un peu plus compliqué, d’où mon renvoi précédent à ce post :
    https://abracadabrapdf.net/forum/index.php/topic,3173.msg18509.html#msg18509
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65247
    bebarth
    Maître des clés

    OK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !

    parce qu’il y a des règles en anglais ???  :geek:

    …pareil pour endsWith, ça simplifie la vie certaines fois !
    Il y avait également « includes », mais cette méthode ne fonctionne apparemment plus (du moins je n’ai jamais réussi).
    https://www.w3schools.com/jsref/jsref_includes.asp
    @+
    :bonjour:

    en réponse à : Formulaire – Masquer les informations selon la réponse #65264
    bebarth
    Maître des clés
    en réponse à : Bloquer la navigation via touche clavier et molette souris #65275
    bebarth
    Maître des clés

    bonjour,
    On peut créer un script d’ouverture de page qui interdit l’accès si les champs de la page précédente ne sont pas tous remplis (voir exemple).
    Pour les champs, on pourrait écrire également un script pour faire un retour si le champ précédent n’ai pas rempli, mais est-ce vraiment « user-friendly » ?
    En tout cas, c’est faisable. La complexité se fera en fonction de la dénomination des champs.
    @+
    :bonjour:

    P.S. : Je parle pour Adobe Acrobat Pro, je ne sais pas si on peut faire ça à partir d’InDesign…

    en réponse à : Formulaire – Masquer les informations selon la réponse #65262
    bebarth
    Maître des clés

    bonjour,
    Dans ton cas, il faut que tu crées 2 champs texte avec un fond blanc qui viendront masquer tes tableaux. Dans mon exemple ils ne sont pas blancs, mais c’est pour mieux te montrer…
    Ensuite tu vas dans les propriétés du bouton OUI et tu suis la copie d’écran (ici tu coches « masquer »).
    Enfin tu vas dans les propriétés du bouton NON et tu fais la même chose, sauf que tu coches « afficher ».
    Est-ce clair pour toi ?
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65245
    bebarth
    Maître des clés

    Parce-que certaines règles atteignent quand même des sommets d’absurdité :
    – Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
    – un est invariable en nombre mais pas en genre : cinquante et une pages

    Ces règles sont peut-être un peu compliquées mais personnellement ne me paraissent pas absurdes (peut-être y en a-t-il d’autres qui le sont…).
    Si l’on parle des tomes un, ou des numéros un des rues, je ne vois pas pourquoi on mettrait un « s » à un !
    Idem pour cinquante et une pages qui signifie cinquante plus une… pages !
    Bien qu’adjectif numéral cardinal, « un » qualifie l’unité de base.
    Voici un fichier avec la nouvelle orthographe. j’ai juste rajouté des traits d’union où il en fallait pour garder un script commun.
    Il aurait fallu revoir un peu le script pour en faire un spécifique…
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65243
    bebarth
    Maître des clés

    bojour,

    Où as-tu vu ça ?

    A plusieurs endroits :
    https://leconjugueur.lefigaro.fr/frlesnombres.php
    https://www.lalanguefrancaise.com/orthographe/guide-complet-nouvelle-orthographe/
    https://www.cyberentraide.com/nouvelle-orthographe-nombres-lettres/
    …

    La recommandation de 1990 n’était pas obligatoire, je ne sais pas ce qu’il en est de la nouvelle orthographe !
    @+
    :bonjour:

    en réponse à : Liste déroulante mère/fille vide #65191
    bebarth
    Maître des clés

    bonjour,
    Il faut retirer ou ne pas exécuter les 2 lignes clearItem() du script de document :

    Code:
    …
    //this.getField(« ListeNiveau1 »).clearItems();
    …
    //ffille.clearItems();
    …

    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65240
    bebarth
    Maître des clés

    bonjour,

    … mais je vais essayer de reprendre le script total à ma sauce…

    J’ai commencé et je suis arrivé à peu près à la même logique qu’Alex, j’ai donc conservé pratiquement toute la partie « fonction » !
    Du coup, il y a deux versions : avec et sans monnaie.
    Je n’ai pas testé tous les nombres, mais normalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes…. (999 x 1018).
    Si tu regardes le script, il est prévu pour beaucoup plus (1064) mais je n’avais pas pensé qu’Acrobat était si limité…  :geek:
    Merci de me dire s’il y a encore des erreurs.
    J’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout, mais tant pis. Quelqu’un d’autre s’en chargera s’il le désire !
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65236
    bebarth
    Maître des clés

    bonjour,
    Ça ne devrait pas être très compliqué à résoudre, mais je vais essayer de reprendre le script total à ma sauce, car j’ai vu d’autres petits soucis comme par exemple on ne dit pas un million euros, mais un million d’euros. Idem pour milliard (même si on ne les a pas  :geek: ).
    Ça va sûrement être compliqué ce week-end… ce sera certainement en début de semaine prochaine !
    @+
    :bonjour:

    bebarth
    Maître des clés

    c’est vrai qu’a 67 ans j’ai déjà perdu pas mal de neurones  :Smiley08:

    j’espère pas trop !!! j’y arrive à grands pas !
    @+
    un autre Bernard
    :bonjour:

    en réponse à : Conversion nombre en lettres #65233
    bebarth
    Maître des clés

    Merci de me dire si je suis passé à côté de certaines règles !
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65231
    bebarth
    Maître des clés

    On peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter…  :mur:

    Je pense traiter la chaîne de caractères finale plutôt que chercher à modifier le script d’Alex, sinon il va y avoir un paquet de conditions avec plein d’exceptions !
    Alors que dans le résultat final on ne traite que le résultat !!!
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,
    Il va falloir être sûr de ton sript et le transformer en unicode pour pouvoir l’insérer dans le script de l’action.
    https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
    L’utilitaire :
    https://abracadabrapdf.net/utilitaires/utilitaires-pdf/abra-txt2unicode-texte-vers-unicode/
    Ensuite, voici le script de l’action :

    Code:
    var g=this.getField(« nomduchampAmodifier »);
    // Tu colles le texte unicode entre les guillemets
    var leScript= »u0076u0061u0072u0020u0066u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu006Du005Fu0073u0061u0075u0076u0065u0022u0029u003Bu000Du0076u0061u0072u0020u0061u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0066u0069u0073u0063u0061u006Cu0065u0022u0029u003Bu000Du0076u0061u0072u0020u0064u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0044u0061u0074u0065u005Fu0072u0065u0063u0065u0070u0074u0022u0029u003Bu000Du0076u0061u0072u0020u0065u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0032u0035u0061u006Eu0073u0022u0029u003Bu000Du0066u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0028u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu005Fu0063u006Fu006Eu0074u0072u0022u0029u002Eu0076u0061u006Cu0075u0065u000Du002Bu0020u0022u002Du0022u0020u002Bu0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0063u006Fu006Eu0074u0072u005Fu006Eu006Fu006Du0022u0029u002Eu0076u0061u006Cu0075u0065u0029u002Bu0022u002Du0022u002Bu0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0061u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0031u000Du0064u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0064u0064u002Du006Du006Du002Du0079u0079u0079u0079u002Du0048u0048u003Au004Du004Du0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0065u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0032u0036″;
    g.setAction(« Calculate », leScript); // pour un script de calcul
    this.saveAs({
        cPath: this.path,
        bPromptToOverwrite: false,
    });

    …puis tu lances l’action après avoir ajouté tous les fichiers dans la liste. Si tu en as 1000, fait déjà un essai avec quelques uns…
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65230
    bebarth
    Maître des clés

    bonjour,
    Je suis parti sur le principe que le script d’Alex est correct, donc je découpe le nombre en 2 parties : avant et après la virgule et je les envois à la fonction d’Alex séparément puis je les rassemble pour les afficher dans le champ.
    Il y a peut-être des lignes inutiles dans le script d’Alex qui pourraient être retirée pour cette application, mais je n’ai pas regardé.
    Dans les scripts de document, « init » n’est pas une fonction, mais un script lu à l’ouverture du document pour initialiser les différentes variables. Une fonction est lue lorsqu’elle est appelée.
    @+
    :bonjour:

    bebarth
    Maître des clés

    bonjour,

    Je dois modifier le script d’un champ de formulaire pdf sur plus de 1000 fichiers.

    C’est selon ce que tu entends par le mot « modifier » que cela dépend !
    On ne peut pas récupérer le script d’un champ, mais on peut lui en attribuer un :
    https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_setAction2bc-17&rhtocid=_6_1_8_31_2_16
    @+
    :bonjour:

    en réponse à : Ajouter toujours la même page à plusieurs fichers #65204
    bebarth
    Maître des clés

    ???? comme ça je ne vois pas d’où vient le problème.
    pour la console, tu tapes ctr J. Une fenêtre va s’ouvrir avec (ou pas) des infos.
    @+
    :bonjour:

    en réponse à : Un seul choix doit apparaître. #65145
    bebarth
    Maître des clés

    voilà !
    https://we.tl/t-9tEVvjvb1P
    @+
    :bonjour:

    en réponse à : Conversion nombre en lettres #65228
    bebarth
    Maître des clés

    …effectivement, je n’ai pas du tout regardé ça ! J’ai pris le script d’Alex tel quel.
    J’ai bien pensé à mettre euro et centime au singulier pour un, mais pas le reste.
    J’essaie de regarder ça demain.
    @+
    :bonjour:

Affichage de 99 réponses de 2,080 à 2,178 (sur un total de 3,392)