Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 199 à 297 (sur un total de 10,090)
  • Auteur
    Réponses
  • en réponse à : Atteindre un champ dans un formulaire #72678
    Merlin
    Maître des clés

    Quelle est sa couleur “normale” ?

    en réponse à : Lancer l’impression page après page #72677
    Merlin
    Maître des clés

    Bonjour

     

    Essayez ça dans la Console JS d’Acrobat Pro, ou en Action :

    for (var z=0; z<this.numPages; z++) {this.print(bUI: false, nStart: z, nEnd: z);}

     

    en réponse à : Supprimer une annotation spécifique #72639
    Merlin
    Maître des clés

    Je suppose qu’il y a une collision avec la balise “italique” du BBcode utilisé par le forum.

    J’ai remplacé par un “k” et ça fonctionne :

     

    if (event.target.buttonGetCaption()=="AJOUTER") {
    var coordonnees=event.target.rect;
    var annotation=this.addAnnot({
    page: 0,
    type: "Text",
    point: [coordonnees[2]+20,coordonnees[1]+20],
    name: "annotationNo1",
    });
    event.target.buttonSetCaption("SUPPRIMER");
    event.target.fillColor=color.red;
    event.target.textColor=color.white;
    } else {
    var lesAnnotations=this.getAnnots({nPage:0});
    for (var k=0; k<lesAnnotations.length; k++)
    if (lesAnnotations[k].name=="annotationNo1") lesAnnotations[k].destroy();
    event.target.buttonSetCaption("AJOUTER");
    event.target.fillColor=color.green;
    event.target.textColor=color.black;
    }

    en réponse à : Supprimer une annotation spécifique #72635
    Merlin
    Maître des clés

    👍

    Merlin
    Maître des clés

    Bonjour

     

    Il y a un bug non identifié avec les dernières versions d’Acrobat, remplacez le plugin que vous avez par celui-ci qui devrait fonctionner :

    https://shared-assets.adobe.com/link/d3541685-30a5-4b28-4307-8a66bfa368dc

    en réponse à : Voir le mot de passe d’un fichier PDF #72633
    Merlin
    Maître des clés

    Bonjour

     

    La réponse est non.

    en réponse à : Findchangelist.txt #72630
    Merlin
    Maître des clés

    👍

    en réponse à : Supprimer une annotation spécifique #72624
    Merlin
    Maître des clés

    Bonjour

     

    Si je comprend bien un clic sur un bouton fait apparaitre l’annotation correspondante.

    Et il faudrait qu’un deuxième clic la fasse disparaitre, et ainsi de suite ?

     

    Peux tu partager (tout ou partie de) ce fichier ?

    en réponse à : Pdf Interactif Protégé #72621
    Merlin
    Maître des clés

    Le mot de passe à l’ouverture (en haut sur la capture) est une “vraie” protection qui chiffre le document en entier. C’est ce que tu as utilisé pour ce fichier.

    Pour cracker le mot de passe il faut les moyens de la CIA ou de la NSA.

     

    Les restrictions d’utilisation (au milieu sur la capture) c’est un gadget, ce sont des instructions supplémentaires intégrées au fichier. Il suffit pour un logiciel de les ignorer pour déverrouiller le fichier.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Pdf Interactif Protégé #72618
    Merlin
    Maître des clés

    Peux tu partager ce fichier (ou un autre) ?

    en réponse à : Usage de la console #72613
    Merlin
    Maître des clés

    👍

    en réponse à : Formulaire récalcitrant ! #72608
    Merlin
    Maître des clés

    Sinon la requête GREP la plus simple est celle-ci :

    \S+@\S+\.\S{2,}

    Pour connaitre tous les détails sur cette requête GREP voir : https://www.abracadabrapdf.net/ressources-et-tutos/abracadabragrep/grep-pour-indesign-detecter-email/

    en réponse à : Formulaire récalcitrant ! #72607
    Merlin
    Maître des clés

    Dans ECMAScript il existe une fonction spéciale pour vérifier les adresses email : CBIsValidEmail()

     

    Exemple :

    // script de validation
    if (event.value) {
    event.rc = CBIsValidEmail(event.value);
    if (!event.rc) {
    app.alert("Cette adresse email semble invalide.\nMerci de recommencer.");
    event.rc = false;
    }
    }

    en réponse à : Usage de la console #72591
    Merlin
    Maître des clés

    Bonjour

     

    Non testé mais ça devrait ressembler à ça :

     

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if ((oFld.type == "text") && ((/\Question\.\d\.\d/.test(oFld.name))) || (/\R\.\d\.\d/.test(oFld.name))) || (/\Q\.\d\.\d/.test(oFld.name)))) {
    oFld.setAction("Calculate", "EditReps();");
    }
    }

    et

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if ((oFld.type == "text") && ((/\Question\.\d\.\d/.test(oFld.name))) || (/\R\.\d\.\d/.test(oFld.name))) || (/\Q\.\d\.\d/.test(oFld.name)))) {
    oFld.setAction("Keystroke", "Default();");
    }
    }

    en réponse à : Enregistrer sous #72590
    Merlin
    Maître des clés

    Bonjour

     

    Ce n’est pas possible avec Acrobat, sécurité oblige.

    Si jamais ça fonctionnait avec ton logiciel (mais ça m’étonnerait) il faudrait utiliser “saveAs” :

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#saveas

    en réponse à : Formulaire récalcitrant ! #72581
    Merlin
    Maître des clés

    Bonjour

     

    Je crois que le problème vient de “this.event.value”, c’est en fait une valeur/expression globale, qui n’a pas vraiment sa place dans ce calcul.

    Il faut utiliser “event.target.value” (= la valeur du champ cible de l’évènement en cours).

    Dans le script d’exemple ci-dessous, celui du champ ST1JS, j’ai aussi modifié les conditions car on peut simplifier juste en testant “defaultValue”.

     

    Ton script :

    if (this.getField("SUPPL").value !=0 && this.getField("SUPPL").value !="" && this.getField("SUPPL").value !=null) {
    this.event.value = (this.getField("ST1JS").value)*0.30
    }else{
    if (this.getField("CARTE").value >0) {
    this.event.value = (this.getField("PU1JS").value*this.getField("1JS").value)
    } else {
    this.event.value = (this.getField("PU1JSE").value*this.getField("1JS").value)
    }
    }

     

    Le script que je te propose de tester et d’adapter aux autres champs :

    if (this.getField("SUPPL").value != this.getField("SUPPL").defaulValue) {
    event.target.value = (this.getField("ST1JS").value)*0.30
    }else{
    if (this.getField("CARTE").value > 0) {
    event.target.value = (this.getField("PU1JS").value*this.getField("1JS").value)
    } else {
    event.target.value = (this.getField("PU1JSE").value*this.getField("1JS").value)
    }
    }

    en réponse à : Pdf Interactif Protégé #72574
    Merlin
    Maître des clés

    “Pour conclure donc : La seule solution qu’il me reste serait le »imprimer en pdf » et d’aplatir avec Reader par ce moyen.”

    Non, comme je l’ai dit ci-dessus c’est typiquement un cas d’utilisation de la signature numérique :

    • tout le document est verrouillé et pour de vrai, car toute tentative de modification ou d’altération se traduit par une invalidation de la signature, et donc du document.
    • envoyer ou recevoir un document signé et certifié numériquement est et fait beaucoup plus pro que d’envoyer un document lambda.
    • de mémoire le logiciel gratuit Acrobat Reader limite le nombre mensuel de signatures à une quinzaine mais on peut s’abonner à AdobeSign (ou autre) indépendamment de l’abonnement à Acrobat si on a besoin de plus.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Remplacer valeur numérique en lettres #72567
    Merlin
    Maître des clés

    Bonjour

     

    Je vais laisser bebarth te répondre, il a des scripts en stock.

    (Je les ai aussi mais faute de les avoir classés je ne sais plus lequel est le bon).

    en réponse à : Pdf Interactif Protégé #72559
    Merlin
    Maître des clés

    Il faut toujours avoir aussi Acrobat Reader pour tester, on a souvent des surprises (parfois bonnes) même si on respecte la documentation.

    Depuis qu’on ne peut avoir Acrobat Reader et Pro sur le même poste j’utilise Foxit Reader. Ce qui me contraint à encore plus de rigueur car il ne supporte pas certaines fonctions JavaScript obsolètes, que Acrobat continue de supporter pour raisons de rétrocompatibilité.

     

    en réponse à : Pdf Interactif Protégé #72555
    Merlin
    Maître des clés

    “Comment fait-on pour « aplatir » le pdf depuis Acrobat Reader ?”

    “Voici un petit exemple simple avec un bouton qui aplatit ton formulaire”

    Ça ne fonctionne pas avec Acrobat Reader (ni avec Foxit Reader), il faut utiliser Acrobat Pro ou Acrobat Standard

    en réponse à : Pdf Interactif Protégé #72552
    Merlin
    Maître des clés

    Menu Fichier : Imprimer (en PDF)

    Mais ça ne fonctionne pas sur MacOS (sauf si on utilise Aperçu).

    en réponse à : Formulaire PDF #72542
    Merlin
    Maître des clés

    Plus généralement je ne peux pas m’empêcher de penser que si ce formulaire à besoin d’un tuto pour être rempli c’est probablement qu’il y a un problème de présentation ou d’ergonomie…

    🤔

    en réponse à : Formulaire PDF #72541
    Merlin
    Maître des clés

    Bonjour

     

    Oui il suffit d’afficher une alerte à l’ouverture du document, par exemple :

    app.alert("<span style="color: #339966;">Blablabla</span>");

    Cette ligne de script doit être placée en “Script de document”, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/

     

    “Et donc dans mes rêves les plus fous, le pop-up n’apparait plus une fois qu’on a ‘enregistré-sous’.”

    On devrait peut être pouvoir bidouiller quelque chose…

    Je vais réfléchir.

    en réponse à : Pdf Interactif Protégé #72537
    Merlin
    Maître des clés
    • Je ne comprend pas l’étape 2, pourquoi protéger un document vierge avec un mot de passe ?
    • Il faudrait que tu partages (tout ou partie) de ton document deux fois : une version  protégée et une non protégée pour qu’on puisse répondre efficacement.
    • Concernant l’étape 3 il faut bien avoir conscience que ledit mot de passe ne couvre que des “restrictions d’utilisation”. Ce n’est pas une protection ni un chiffrage, même ma grand-mère sait comment l’outrepasser en moins d’une minute. (https://smallpdf.com/fr/unlock-pdf)

     

    en réponse à : Case texte grisée grâce à liste déroulante #72526
    Merlin
    Maître des clés

    “Pour donner l’exemple lorsque je mais « chantier non déclarer » dans infraction il faut que les 4 cases texte qui suit soit blanche ou grise et qu’on puisse rien écrire dessus.”

    Pour qu’on puisse t’aider il faut les règles complètes, pas juste un exemple.

    en réponse à : Case texte grisée grâce à liste déroulante #72518
    Merlin
    Maître des clés

    Si tu veux une aide efficace il faudrait dire lesquelles.

    en réponse à : Ouverture d’un fichier Excel avec un bouton #72509
    Merlin
    Maître des clés

    “Je veux juste que le fichier xlsm s’ouvre dans excel en appuyant sur un bouton incorporer dans mon formulaire PDF”

    Il va falloir choisir entre incorporer le fichier XLSX dans le PDF ou bien l’ouverture du fichier avec Excel (qui n’est pas possible depuis Acrobat).

    en réponse à : Pdf Interactif Protégé #72508
    Merlin
    Maître des clés

    C’est typiquement un cas d’utilisation de la signature numérique, une fois le document signé (avec Reader) il n’est plus modifiable.

    Tous les champs sont aplatis, et tout est verrouillé.

     

    en réponse à : Pdf Interactif Protégé #72494
    Merlin
    Maître des clés

    Bonjour

     

    Ce sont les seuls restrictions possibles (capture), sachant qu’il est très facile de les outrepasser.

    Sinon on peut toujours bricoler des restrictions en JavaScript mais il encore plus facile de les outrepasser (il suffit de désactiver JavaScript).

    Tout dépend à quels utilisateurs tu t’adresses.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ouverture d’un fichier Excel avec un bouton #72493
    Merlin
    Maître des clés

    Bonjour

     

    Oui mais :

    en réponse à : Cacher ou supprimer des images par lot sur pdf #72492
    Merlin
    Maître des clés

    Le hasard fait bien les choses, un nouveau remerciement à fait remonter ce sujet qui pose la même question et à laquelle j’avais répondu de façon complètement différente.

    Il y a donc au moins deux façons de faire : https://community.adobe.com/t5/acrobat-discussions/how-to-delete-image-in-the-background-from-all-pages-at-once/td-p/11984847

    (Il y a un bouton Traduire sous chaque message)

     

     

     

    en réponse à : Mélanger des lettres #72485
    Merlin
    Maître des clés

    👍

    en réponse à : Cacher ou supprimer des images par lot sur pdf #72480
    Merlin
    Maître des clés

    Les informations sélectionnées sont définitivement supprimées du document, c’est pour ça que par défaut Acrobat force ensuite l’enregistrement d’une copie.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Cacher ou supprimer des images par lot sur pdf #72476
    Merlin
    Maître des clés

    Bonjour

     

    Pas besoin de script ni de solution compliquée, il faut utiliser la fonction Biffer > Assainir le document. Voir capture.

    Bien entendu il faudra enregistrer une copie du document sans image.

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

    Oui, no problemo.

    en réponse à : PDF Formulaire – écrire sur 2 colonnes #72465
    Merlin
    Maître des clés

    Bonjour

     

    Un champ de formulaire PDF de type texte est forcément mono-colonne.

    Avec JavaScript on peut faire passer d’un champ à l’autre au cours de la saisie, mais à chaque fois on perd le dernier caractère saisi.

    Ce qui est plutôt déconcertant pour l’utilisateur final.

    en réponse à : Incrémental #72464
    Merlin
    Maître des clés

    Bonjour

     

    Techniquement la mise en œuvre est simple, c’est le contexte qui l’est moins. Et ça ne peut fonctionner que sur un seul ordinateur et pour un seul utilisateur.

    Quel évènement devrait déclencher le nouveau numéro ?

    Pour répondre il serait plus simple que tu partages (tout ou partie de) ce document.

    en réponse à : Envoyer un Email #72461
    Merlin
    Maître des clés

    C’est très curieux, j’ai encore refait des tests et j’en perd mon latin.

    😖

    en réponse à : Envoyer un Email #72459
    Merlin
    Maître des clés

    Je pensais un bug dans le document PDF.

    Il faudrait en refaire un autre en partant de zéro pour savoir.

    en réponse à : Nombre à virgule flottante #72458
    Merlin
    Maître des clés

    Bonjour

     

    Joker ! 🙃

    C’est le genre de question que je poserais plutôt sur ce forum, même si ça ne concerne pas vraiment le SDK, car il est fréquenté par des experts qui pourront certainement te répondre :

    https://community.adobe.com/t5/acrobat-sdk/ct-p/ct-acrobat-sdk?page=1&sort=latest_replies&lang=all&tabid=all

     

    en réponse à : Renommer les noms de champs #72457
    Merlin
    Maître des clés

    Tu peux soit utiliser la version d’essai d’Acrobat Pro (7 jours) soit me faire passer ton document et me dire combien tu veux de duplicata.

     

    Merlin
    Maître des clés

    Je ne comprend pas.

    en réponse à : Renommer les noms de champs #72450
    Merlin
    Maître des clés

    Bonjour

     

    Avec Acrobat Pro c’est très simple, tu copie-colles tes champs dans un autre document vierge, dans le panneau des champs tu cliques sur le menu “AZ” pour les classer par ordre alphabétique, tu renommes la racine “.1” en “.2” (capture), et tu copie-colles en retour dans ton document d’origine.

     

    Pourquoi faut il le faire dans un autre document ?

    Parce-que sinon ça renomme tous les champs enfants de Q.1 dans le document, et je suppose que ce n’est pas ce que tu veux faire.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Contenu de Texte qui diminue par rapport à son champ #72442
    Merlin
    Maître des clés

    Bonjour

     

    C’est effectivement la bonne réponse.

    La question qui vient immédiatement après c’est, par exemple : comment avoir du texte en corps 12 au départ et qui se réduit ensuite ?

    Un jour j’ai passé du temps à faire des équivalences entre la hauteur du champ et le corps du texte tant qu’il ne déborde pas et j’ai obtenu ça (capture d’écran ci-dessous).

    Ce sont des équivalences faites en utilisant la police de caractère Helvetica, donc qui peuvent varier selon la police utilisée.

    Si ça peut aider.

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

    Si la boite de dialogue le dit c’est que c’est vrai.

    Dans le menu “AZ” du panneau d’outils “Préparer le formulaire” on peut afficher les champs par ordre alphabétique, c’est plus pratique pour en retrouver un.

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

    Bonjour

     

    Il faut afficher le PDF rempli et “Exporter les donnés”, ce qui génère un fichier .FDF qu’il faut enregistrer. Ça se passe dans le panneau d’outil “Préparer le formulaire” : menu Autres.

    Ensuite depuis les PDF non remplis il faut “Importer les données” de ce fichier .FDF

    Pour que ça fonctionne il faut que les champs aient exactement le même nom dans tous les formulaires.

    Les données des champs dont les noms ne sont pas commun entre deux PDF sont ignorées.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Bouton pour une action multiple #72431
    Merlin
    Maître des clés

    Bonjour

     

    Un PDF envoyé par email avec la fonction intégrée n’a pas besoin d’être enregistré, c’est automatique (sinon beaucoup ne recevraient que des formulaires vides !).

    Voir captures.

     

    Aplatir recouvre plusieurs choses :

    • aplatir les calques (n’en conserver qu’un seul),
    • aplatir les commentaires (les fusionner dans le fond de page),
    • aplatir les champs de formulaire (les fusionner dans le fond de page) et je crois que c’est à ça que tu penses.

    Dans les trois cas ce n’est pas possible avec Acrobat Reader, il faut avoir la version Pro ou la version Standard.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Grouper – Dissocier #72426
    Merlin
    Maître des clés

    Bonjour

     

    Je ne sais pas, je t’invite à chercher sur ce site qui est un des grands fournisseurs de plugins pour Acrobat, l’offre est très riche :

    https://evermap.com/

     

    De mémoire, j’ai entendu parler d’un plugin qui permet à Acrobat Pro de gérer les calques et les objets qui y sont attachés comme dans un logiciel normal (Photoshop, InDesign, Illustrator…), c’est souvent plus pratique que le groupage.

    en réponse à : Raz et remplissage automatique #72424
    Merlin
    Maître des clés

    for (var i = 1 ; i<50 ; i++) {
    for (var f = 0 ; f<50 ; f++) {
    if
    (this.getField("Q."+i +"."+f) != null && this.getField("Q."+i
    +"."+f).type != "combobox") {this.getField("Q."+i +"."+f).value = "";}
    if
    (this.getField("Q."+i +"."+f) != null && this.getField("Q."+i
    +"."+f).type == "combobox") {this.resetForm([("Q."+i +"."+f)]);}

     

    Je ne comprend pas ce script inutilement compliqué qui pourrait être remplacé plus simplement par :

    this.resetForm(["Q"]);

     

    en réponse à : Raz et remplissage automatique #72423
    Merlin
    Maître des clés

    Autre question, est il possible de faire « remonter » plus d’une variable lors d’un clic sur un bouton pour appeler une fonction qui utilisera ces variables.

    Oui.

    en réponse à : Raz et remplissage automatique #72422
    Merlin
    Maître des clés

    Pour les autres, j’ai essayé mais il y avait des erreurs et comme j’ai de fortes lacunes dans ce que tu proposes, je n’ai pas pu corriger.

    1000 excuses, une parenthèse a disparu entre le test et la copie dans le sujet. C’est corrigé (ci-dessus, c’est la parenthèse en bleu).

    Mais là c’est plus une question d’outil que de niveau, la console JS d’Acrobat m’a tout de suite signalé la parenthèse manquante. 😉

    en réponse à : Envoyer un Email #72415
    Merlin
    Maître des clés

    Ça sent le bon gros bug, peut être que ça ira mieux dans la version prochaine…

    🙏

    en réponse à : Raz et remplissage automatique #72413
    Merlin
    Maître des clés

    Cependant pour le reset je me baserais seulement sur les noms de champs, ce script devrait aller encore plus vite car il ne cherche pas de champs inexistants :

    function Raz() {

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

    if (/\bQ.+/.test(oFld.name)) {
    oFld.display = display.hidden;
    oFld.fillColor = color.white;
    oFld.value = oFld.defaultValue;
    }

    else if (/\bQ\.1.+/.test(oFld.name)) {
    oFld.display = display.visible;
    oFld.readonly = false;
    }

    else if (/\bTQ.+/.test(oFld.name) || /\bQuestion.+/.test(oFld.name) || /\bVerifier.+/.test(oFld.name) || /\bRecommencer.+/.test(oFld.name) || /\bAide.+/.test(oFld.name)) {
    oFld.display = display.hidden;
    oFld.readonly = false;
    }

    }

    this.getField("Verifier.1.0").display = display.visible
    this.getField("Verifier.1.0").display = display.noPrint;
    this.getField("Recommencer.1.0").display = display.visible;
    this.getField("Recommencer.1.0").display = display.noPrint;
    this.getField("TQ.1.0").display = display.visible;
    this.getField("Aide.1.0").display = display.visible;
    this.getField("Erreurs").value = 0;
    this.getField("Menu.5").value = 0; // !!!

    }

    en réponse à : Raz et remplissage automatique #72411
    Merlin
    Maître des clés

    Autre chose, j’ai lu ton code de reset qui mouline beaucoup et inutilement :

    • il faut oublier le “f” !
    • “100” c’était un exemple, dans un premier temps tu pourrais utiliser un chiffre plus modeste.

     

    S’agissant d’une propriété partagée (display, color, etc) quand on s’adresse à un champ parent on s’adresse à tous ses enfants.

    Par exemple :

    this.getField("Q.1).display = display.hidden;

    suffit à masquer tous les champs dont le nom commence par “Q.1.”

     

    Donc la première partie de la fonction Raz() :

    function Raz() {
    this.getField("Erreurs").value = 0;
    this.getField("Menu.5").value = 0;

    for (var i = 1 ; i<101 ; i++) {
    for (var f = 0 ; f<101 ; f++) {
    if (this.getField("Q."+i +"."+f) != null) {this.getField("Q."+i +"."+f).display = display.hidden;
    this.getField("Q."+i +"."+f).fillColor=color.white;
    }
    if (this.getField("TQ."+i +"."+f) != null) {this.getField("TQ."+i +"."+f).display = display.hidden;}
    if (this.getField("Question."+i +"."+f) != null) {this.getField("Question."+i +"."+f).display = display.hidden;}
    if (this.getField("Verifier."+i +"."+f) != null) {this.getField("Verifier."+i +"."+f).display = display.hidden;}
    if (this.getField("Recommencer."+i +"."+f) != null) {this.getField("Recommencer."+i +"."+f).display = display.hidden;}
    if (this.getField("Aide."+i +"."+f) != null) {this.getField("Aide."+i +"."+f).display = display.hidden;}
    }
    }

    ...

     

    Pourrait être simplifiée ainsi (sans les 100 x 100 boucles “f”) :

    function Raz() {
    this.getField("Erreurs").value = 0;
    this.getField("Menu.5").value = 0;

    for (var i = 1 ; i<101 ; i++) {
    if (this.getField("Q."+i) != null) {
    this.getField("Q."+i).display = display.hidden;
    this.getField("Q."+i).fillColor=color.white;
    }
    if (this.getField("TQ."+i) != null) {this.getField("TQ."+i).display = display.hidden;}
    if (this.getField("Question."+i) != null) {this.getField("Question."+i).display = display.hidden;}
    if (this.getField("Verifier."+i) != null) {this.getField("Verifier."+i).display = display.hidden;}
    if (this.getField("Recommencer."+i) != null) {this.getField("Recommencer."+i).display = display.hidden;}
    if (this.getField("Aide."+i) != null) {this.getField("Aide."+i).display = display.hidden;}
    }

    en réponse à : Raz et remplissage automatique #72409
    Merlin
    Maître des clés

    Je crois que ça vient de la fonction “EditReps()” qui est utilisée en script de calcul par le champ “Aide.1.1” parce-que la valeur du champ “Menu5” (qui est une case à cocher…) n’est pas égale à “1”, voir capture.

    Quand on fait un reset (resetForms ou defaulValue) ça déclenche les actions de calcul de tous les champs, actions qui s’effectuent donc après le reset.

    En clair le champ “Aide.1.1” s’auto-réaffiche après chaque reset.

    Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/

     

     

    Note que dans cette fonction tu pourrais avantageusement remplacer la ligne (encadrée) :

    if (this.getField("Menu.5").value != 1) {

    par

    else {

     

    😉

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

    Je viens de m’apercevoir qu’en fait ça fonctionne aussi avec Acrobat… mais seulement si le champ “email” est vide.

    ==>  Je donne ma langue au chat !

    en réponse à : Envoyer un Email #72386
    Merlin
    Maître des clés

    Bonjour

     

    J’ai l’impression qu’il s’agit d’un bug dans la dernière version car chez moi ça ne fonctionne pas avec Acrobat mais par-contre ça fonctionne très bien avec Foxit Reader et PDF Studio.

    Le script me parait correct, je ne vois aucune raison pour que ça ne fonctionne pas.

    La console JS affiche cette erreur à chaque fois :

    GeneralError: Operation failed.
    Doc.mailDoc:9:Field Botão-Email:Focus

     

    Cependant :

    • le script serait mieux placé s’il était en action “souris relevée” (mouse up) plutôt qu’en action “champ activé” (on focus).
    • Le première ligne (qui verrouille tous les champs) et la dernière ligne (qui déverrouille tous les champs) ne servent à rien.

    Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/

    en réponse à : Raz et remplissage automatique #72353
    Merlin
    Maître des clés

    ” (2) Je ne vois pas trop comment faire pour qu’en cliquant sur Raz seule la question 1 soit visible”

    Ça c’est le plus facile, il faut masquer tous les champs Question, par exemple en se basant sur leurs noms, et ensuite ré-afficher la question 1.

    Exemple :

    for (var i = 1 ; i<101 ; i++) {
    if (this.getField("Q" +i) != null) {this.getField("Q" +i).display = display.hidden;}
    }

    this.getField("Q1").display = display.visible;

     

    Pour le reste je répondrai plus tard.

    La dernière version de ton document est inutilisable avec Acrobat, au début on voit des éléments s’afficher séquentiellement et ensuite il n’en fini plus de mouliner jusqu’à ce que je le force à quitter/Fin de tâche.

     

    J’ai un faible pour les usines à gaz et les problématiques inhabituelles, et j’ai aussi un faible pour les gens qui se décarcassent pour créer un outil à leur main plutôt que d’attendre en pleurnichant que ça tombe du ciel.

     

    en réponse à : Utilisation des objets DATE en javascript #72349
    Merlin
    Maître des clés

    La position officielle d’Adobe, pour qui sait lire entre les lignes ça veut dire que Acrobat Pro X, XI et 2017 ne seront pas mis à jour :

     

    Adobe Acrobat uses a certificate issued by ‘Adobe Root CA’ to sign Reader Extended PDFs. This certificate can no longer be used to create new Reader Extended PDFs post its expiry on January 7, 2023. The November 2022 update of Adobe Acrobat (Continuous and Classic track) creates Reader Extended PDFs using a new certificate issued by ‘Adobe Root CA 2’. Adobe recommends users update to the latest version of Acrobat (November 2022 update or later) to continue using this functionality post-January 7, 2023.

     

    Please update the application to the latest version, 22.3.20281 (Mac) or 22.3.202082 (Win) and reboot the computer once. Go to Help > Check for updates.

    You may also download the patch manually from the link https://www.adobe.com/devnet-docs/acrobatetk/tools/ReleaseNotesDC/index.html

     

    en réponse à : Utilisation des objets DATE en javascript #72348
    Merlin
    Maître des clés

    Je viens de constater que depuis quelques jours le forum d’Adobe est envahi par la même question que la tienne.

    Il en ressort que c’est la date d’expiration du certificat d’Acrobat DC qui pose problème, une mise à jour est disponible :

    https://helpx.adobe.com/acrobat/kb/reader-extended-pdfs-and-adobe-root-ca-expiry.html

    en réponse à : Raz et remplissage automatique #72347
    Merlin
    Maître des clés

    “« Remettre à 0 les liste déroulantes avec le bouton Raz…

    Pour celui-ci ça marche mais la console me renvoie une erreur :”

     

    Je suppose que c’est le même problème que ci-dessus, j’ai testé ça fonctionne correctement avec “resetForm” :

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if (oFld.type == "combobox") {this.resetForm(oFld.name);}
    }

    en réponse à : Raz et remplissage automatique #72346
    Merlin
    Maître des clés

    “J’ai essayé de m’en inspirer pour définir par defaut les Checkbox cochées avec ceci Dans le script Default :

    for (var i = 1 ; i<101 ; i++) {this.getField(“R” +i).defaultValue = this.getField(“R” +i).value;}Mais j’ai une erreur : Doc:Open:7: TypeError: this.getField(…) is nullLorsque je coche ou décoche une checkbox R…”

     

    Oui pardon, pour le coup comme on s’adresse à un champ parent on ne peut pas utiliser “value = defaultValue”, il faut utiliser “resetForm”. J’ai testé ça fonctionne :

    for (var i = 1 ; i<100 ; i++) {
    if (this.getField("R" +i) != null) {this.resetForm("R" +i);}
    }

    en réponse à : Utilisation des objets DATE en javascript #72345
    Merlin
    Maître des clés

    👍

    en réponse à : Raz et remplissage automatique #72330
    Merlin
    Maître des clés

    “Remettre à 0 les liste déroulantes avec le bouton Raz”

     

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if (oFld.type == "combobox") {oFld.value = oFld.defaultValue;}
    }

    en réponse à : Raz et remplissage automatique #72329
    Merlin
    Maître des clés

    « Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps »
    “Oui, mai je cherche un script qui fonctionne quelque soit le numéro de champ R…”

    Dans ce cas, si on suppose par exemple que le nombre maximal est de 100 :

    for (var i = 1 ; i<101 ; i++) {
    if (this.getField("R" +i) != null) {this.getField("R" +i).display = display.hidden;}
    }

    en réponse à : Raz et remplissage automatique #72327
    Merlin
    Maître des clés

    “Définir la valeur par defaut des mêmes checkboxes avec le script Default”

     

    for (var i = 1 ; i<6 ; i++) {this.getField("R7." +i).defaultValue = this.getField("R7." +i).value;}

    en réponse à : Raz et remplissage automatique #72326
    Merlin
    Maître des clés

    “Cacher ou masquer les checkBox (R7.1 à R7.5) avec le script EditReps”

     

    this.getField("R7").display = display.hidden;

    en réponse à : Raz et remplissage automatique #72320
    Merlin
    Maître des clés

    Attention quand même : cette requête GREP détecte le “R” en début de mot, mais pas forcément en début de nom.

    Donc si un nom de champ contient des espaces et un mot commençant par “R” il sera détecté même le mot n’est pas en début de nom.

    Par exemple le champ “Loulou Fifi Riri” sera détecté comme positif.

    en réponse à : Raz et remplissage automatique #72319
    Merlin
    Maître des clés

    “Je voudrais que celui-ci cache tous les champs qui commencent par « R. »”

     

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if (/\bR.+/.test(oFld.name)) {
    oFld.display = display.hidden;
    }
    }

     

    en réponse à : Raz et remplissage automatique #72318
    Merlin
    Maître des clés

    “Pour le script de validation à placer, je me demandais comment utiliser la console pour propulser le même script dans tous les champs qui commencent par « R. »”

    Ce serait une mauvaise idée car si jamais tu voulais un jour pouvoir modifier ou supprimer ce script ce serait un enfer.

    Place le script en fonction (dans les scripts de document) et appelle la fonction depuis les champs.

     

    Ce script détecte tous les champs texte dont le nom commence par un R en capitale et leur ajoute “MaFonction” en script de validation :

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if ((oFld.type == "text") && (/\bR.+/.test(oFld.name))) {
    oFld.setAction("Validate", "MaFonction();");
    }
    }

    en réponse à : Raz et remplissage automatique #72317
    Merlin
    Maître des clés

    Comment envoyer/partager/poster une pièce jointe volumineuse :

    Envoyer/partager/poster une pièce jointe volumineuse

    😎

    en réponse à : Raz et remplissage automatique #72314
    Merlin
    Maître des clés

    Pour la suite il faudrait voir la pièce jointe…

    😉

    (Upload Errors: 03-ex.4_eleve-test.pdf: File exceeds allowed file size.)

    en réponse à : Raz et remplissage automatique #72313
    Merlin
    Maître des clés

    Pour que la valeur par défaut soit celle saisie, j’ai pensé à mettre en script de calcul ce code :

    var a = event.target.name;
    this.getField(a).defaultValue = this.getField(a).value;

    Qu’en pensez vous ?

     

    event.target.defaultValue = event.target.value;

    Typiquement à placer en script de validation.

    en réponse à : Utilisation des objets DATE en javascript #72309
    Merlin
    Maître des clés

    “Ce que je trouves bizarre, c’est qu’il y le mode de compatibilité qui est positionné sur « Adobe 8 et + ».”

    Ça n’a rien à voir avec les “Reader Extended Rights”, en fait ça c’est la version du format PDF.

    Voir : https://www.abracadabrapdf.net/?p=341

    en réponse à : Utilisation des objets DATE en javascript #72306
    Merlin
    Maître des clés

    Ci-joint.

    Activé avec Acrobat 9 et avec Acrobat 11.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Utiliser le même script sans le modifier #72303
    Merlin
    Maître des clés

    👍

    en réponse à : Utiliser le même script sans le modifier #72293
    Merlin
    Maître des clés

    Bonjour et bonne année

     

    Tu n’as pas besoin de compter ces champs, il suffit de les prendre en compte seulement s’ils existent.

     

    if (this.getField("Q"+n+"."+1) != null && //etc

    en réponse à : Utilisation des objets DATE en javascript #72285
    Merlin
    Maître des clés

    Bonjour et bonne année

     

    A priori les scripts ne sont pas en cause.

    Le problème viendrait plutôt de la version d’Acrobat Pro utilisée pour activer les fonctions étendues dans ce document.

    Activer les fonctions étendues c’est en fait comme apposer une sorte de signature numérique qui déverrouille certaines fonctions habituellement masquées dans Acrobat Reader, mais Acrobat Reader X est une version ancienne qui n’est plus mis à jour depuis longtemps et qui ne reconnait pas forcément les signatures des versions plus récentes d’Acrobat Pro.

     

    Donc il faudrait tester l’activation avec une version plus ancienne d’Acrobat Pro, si tu n’en a pas à disposition je peux le faire avec Acrobat Pro XI et/ou 9.

    en réponse à : Zoom #72278
    Merlin
    Maître des clés

    Bonjour et bonne année

     

    Je ne sais pas quel est ton but mais tu te lances dans un truc compliqué, même si je sais que ça ne te fait pas peur.

    Parce-que pour connaitre la largeur du plein écran et la surface affichée il faut commencer par connaitre les dimensions de l’écran utilisé.

    C’est faisable mais ça implique beaucoup de calculs et de conditions.

    en réponse à : Importation d’image dans un formulaire PDF #72264
    Merlin
    Maître des clés

    Ceci dit, légalement l’ajout d’une signature scannée dans un champ image ça ne vaut rien.

    Pourquoi ne pas utiliser la vraie fonction de “Signature” ?

    en réponse à : Importation d’image dans un formulaire PDF #72262
    Merlin
    Maître des clés

    Je ne sais plus avec quelle version d’Acrobat est arrivée l’option qui permet d’effacer l’image mais elle est assez ancienne, ici elle est en anglais mais elle se trouve toujours au même endroit :

     

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

    Bonjour

     

    Il faut utiliser un champ-image (en fait un bouton).

    en réponse à : Extraction de pièces jointes #72231
    Merlin
    Maître des clés

    Oui, effectivement du coup ce sont des “annotations” et non pas des pièces jointes.

    Je viens de chercher dans la doc et je n’ai rien trouvé qui permette d’exporter les annotations de type “attachment”.

    Ce qu’on peut faire avec JavaScript c’est exporter les annotations dans un fichier FDF ou XFDF, éventuellement après les avoir triées, mais apparemment rien de permet d’accéder à leur contenu.

     

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

    👍

    Je ne m’en serai jamais rappelé.

    en réponse à : Champs calculés #72222
    Merlin
    Maître des clés

    Bonjour

     

    Ce bug me rappelle vaguement quelque chose, mais c’est un “bug PC” et à l’époque j’utilisais un Mac. Donc je n’ai pas mémorisé le truc.

     

    Par contre il est toujours possible d’utiliser la Notation Simplifiée, sachant que si il y a un point ou une espace dans le nom d’un champ il faut “l’échapper”.

    C’est à dire qu’il faut placer un slash devant, par exemple pour multiplier les champs “030 €Carburant” et “champ.1” :

    030\ €Carburant  *  champ\.1

     

    en réponse à : Extraction de pièces jointes #72216
    Merlin
    Maître des clés

    Je crois que la méthode exportdataobject a été faite pour toi :

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#exportdataobject

     

    Ce qui devrait donner quelque chose comme ça :

    for (var i=0; i<this.dataObjects.length; i++) {this.exportdataobject(this.dataObjects.name);}

    en réponse à : Incorporer des icones #72212
    Merlin
    Maître des clés

    Il faut toujours avoir un vieil ordi avec Acrobat 9, car les messages de la Console ont changé avec Acrobat X.

    Depuis Acrobat X la Console dit à quelle ligne ça ne fonctionne pas sans donner le nom du champ qui pose problème.

    Avant c’était l’inverse.

     

    Donc c’est un script de calcul qui ne trouve pas le champ “Ligne1” :

    TypeError: this.getField("Ligne1") is null
    1:Field:Calculate

     

    J’ai ajouté un champ “Ligne1” pour voir : il n’y a plus d’erreur et ce champ affiche un numéro qui s’incrémente +1 à chaque fois.

    Le script de calcul fautif se trouve dans le champ “liste.22”.

    en réponse à : Incorporer des icones #72189
    Merlin
    Maître des clés

    Sinon dans ton code tu peux préciser (à chaque fois) :

     

    if (this.getField("NOM") != null) // si le champ NOM existe

    {this.getField("NOM").value = "blablabla";}

     

    Ainsi si le champ n’existe pas il ne se passe rien et il n’y a pas d’erreur.

    en réponse à : sauvegarder et recupérer données dans un fichier texte #72186
    Merlin
    Maître des clés

    Ces fichiers textes sont ils incorporés en pièce jointe dans le PDF ou sont ils externes ?

    en réponse à : sauvegarder et recupérer données dans un fichier texte #72183
    Merlin
    Maître des clés

    Bonjour

     

    Il faudrait enregistrer ce fichier texte en tant que pièce jointe dans le document PDF ou bien en fichier séparé ?

    Dans quel(s) logiciel(s) et conditions faudrait il que ça fonctionne ?

    en réponse à : Mettre en position 1 plusieurs listes déroulantes #72153
    Merlin
    Maître des clés

    Bonjour

     

    Avec mon Acrobat Pro ce document fonctionne très bien et la Console reste silencieuse.

    en réponse à : Choix de langue #72126
    Merlin
    Maître des clés

    “Mais je pense que pour changer a volonté, il ne faut pas que cela change a fonction de la langue du logiciel de l’utilisateur.”

    Rien n’empêche de faire les deux.

    On peut ajuster la langue en fonction du réglage du logiciel utilisé et proposer à l’utilisateur une option pour changer de langue.

     

    en réponse à : Ajout de page dans un formulaires #72107
    Merlin
    Maître des clés

    👍

    en réponse à : resetForm #72100
    Merlin
    Maître des clés

    Pourquoi lister tous les champs les uns après les autres alors qu’ils ont un élément commun et connu dans leurs noms ?

    JavaScript peut s’en débrouiller tout seul si on lui indique le tronc commun du “nom” :

    😉

     

    for (var i = 0; i < this.numFields; i++) {
    var oFld = this.getField(this.getNthFieldName(i));
    if ((oFld.type != "button") && (/nom/.test(oFld.name))) {
    oFld.value = oFld.defaultValue;
    // ou
    // this.resetForm(oFld.name);
    }
    }

     

    Voir : https://www.w3schools.com/jsref/jsref_regexp_test.asp

    en réponse à : Ajout de page dans un formulaires #72076
    Merlin
    Maître des clés

    Après utilisation du bouton “email” la console dit qu’un champ n’existe pas :

    TypeError: this.getField(...) is null

     

    Le script dit, à la dernière ligne :

    this.getField("Nom_Fichier_1").setFocus();

    Alors qu’aucun champ ne porte ce nom dans le document.

     

    Donc je suggère de remplacer la dernière ligne du script par :

    this.getField("Nom_Fichier").setFocus();

    en réponse à : Configurer le format de plusieurs champs en même temps #72072
    Merlin
    Maître des clés

    “Je voudrais configurer le format des champs => nombre avec deux décimales et avec un point comme séparateur.

    (…)

    Je suis obligé de configurer les champs un par un.

    (…)

    (Je précise que je renomme automatiquement mes champs de 0 à x par un autre script).”

     

    Il n’y a pas besoin de script, ça peut se faire en quelques clics.

    Il faut créer un premier champ et le paramétrer comme il faut (format, aspect, etc.).

    Ensuite clic-droit sur le champ : Créer plusieurs copies.

    Ce qui numérote automatiquement tous les nouveaux champs.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Ajout de page dans un formulaires #72071
    Merlin
    Maître des clés

    Ce script ne peux pas fonctionner, la syntaxe n’est pas correcte :

     

    this.getField("Nom_Fichier_1").setFocus();

     

    Par ailleurs, si la page modèle est dupliquée (spawn) il faut indiquer le numéro de widget du champ puisqu’il existe plusieurs fois dans le document.

    en réponse à : Choix de langue #72047
    Merlin
    Maître des clés

    “le but serait de pouvoir basculer d’une langue a l’autre à volonté.”

    Oui mais comment ? Tout le reste dépend de cette réponse.

    Il faut t’arracher les informations une par une et tu ne réponds pas vraiment aux questions posées.

    Met toi à la place de quelqu’un qui ne sait rien de ce document ni de la façon dont il devrait être utilisé.

    en réponse à : Choix de langue #72045
    Merlin
    Maître des clés

    OK, mais qu’est-ce qui devrait déclencher la traduction ?

    Faut il deux documents en deux langues ?

    Faut il que les champs du document s’adaptent automatiquement à la langue utilisée par le logiciel de l’utilisateur ?

    Est-ce l’utilisateur qui devrait commander le changement de langue ?

     

Affichage de 99 réponses de 199 à 297 (sur un total de 10,090)