Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 298 à 396 (sur un total de 10,150)
  • Auteur
    Réponses
  • 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 ?

     

    en réponse à : Récupérer numéro de page dans champs de texte #72044
    Merlin
    Maître des clés

    Avant de la supprimer on s’assure que la page supplémentaire a bien été générée, sinon ça supprimerait une page statique du document (dans Pro et Standard) ou ça ne fonctionnerait pas (dans Reader, qui ne peut supprimer que des pages “spawnées”, pas les pages statiques) :

     

    if (this.numPages > 4) { // s'il y a plus que 4 pages
    this.deletePages({nStart: 3, nEnd: 3}); // suppresion de la page 4
    }

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

    Bonjour

     

    Je ne connais VBA que de nom, j’espère que quelqu’un d’autre saura t’aider.

    en réponse à : Récupérer numéro de page dans champs de texte #72032
    Merlin
    Maître des clés

    spawnPageFromTemplate” est obsolète et n’est pas supporté par la plupart des logiciels non Adobe (Foxit, PDF Studio, etc.).

    Il faut lui préférer “getTemplate” + “spawn” :

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

     

    Le template doit se placer en page 4, dans ce cas précis c’est aussi l’avant-dernière page donc il suffit d’ajouter “-1”.

     

    this.getField("page_3").value = this.numPages + 1;
    this.getTemplate("JALONS").spawn(this.numPages-1, true, false);
    this.pageNum = 3;
    event.target.display = display.hidden;

    en réponse à : Variable persistante #72026
    Merlin
    Maître des clés

    “Effectivement, c’est mieux car j’avais un bouton qui permettait d’effacer tous les champs de mon document mais je voulais que l’utilisateur puisse rétablir ce champ avec la valeur qu’il avait lui même défini par défaut. Du coup, ma solution précédente ne fonctionnait pas car le champ masqué s’effaçait aussi.”

    Protéger un champ contre le reset est très simple quand on sait qu’en fait le reset ne supprime pas le contenu des champs : le reset (comme son nom l’indique en anglais) fait revenir les champs à leur valeur par défaut.

    En général la valeur par défaut c’est “rien”, mais c’est une coïncidence.

     

    Donc au lieu d’attribuer au champ les données à sauvegarder en tant que valeur (value) il faut faire la même chose mais en lui attribuant les données comme valeur par défaut (defaultValue).

    Ainsi les données sont conservées lors d’un éventuel reset.

     

    this.getField("CHAMP").defaultValue = "Blablabla";

     

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

    Pas de souci.

     

    Mais je ne vois pas de menu en cascade ni aucune indication dans le document.

    Qu’est-ce qui devrait être traduit ?

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

    C’est parce-que tu as oublié que comparer l’égalité c’est avec ==  (et non pas avec =)

    😉

     

    Si en plus on utilise une boucle ça nous donne :

    var pp = this.getPrintParams();
    var printRange = [];
    for (var i = 1; i < 33; i++) {
    if (this.getField("CB." + i).value == 1) {printRange.push([i,i]);}
    }
    // console.println("printRange: " + printRange);
    this.print(pp);

     

     

    en réponse à : Calcul à deux chiffres max après la virgule #71992
    Merlin
    Maître des clés

    Bonjour

     

    Ce ne serait pas plus simple d’utiliser les options de format proposées par Acrobat ?

    (ci-joint)

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

    Bonjour

     

    Je ne suis pas certain de bien comprendre, si tu penses à de la traduction automatique c’est non.

    Si tu penses à changer la langue des libellés et des items c’est oui, en utilisant un peu de script et en les ayant préalablement stocké.

    “Champ à choix multiple” : c’est une zone de liste ?

     

     

    en réponse à : Calcul ne fonctionnent pas #71970
    Merlin
    Maître des clés

    Et === signifie égal en valeur et en propriété.

    Par exemple :

    01 === 1

    est faux (false), car à gauche on a une chaine de caractère (string) et à droite on a un chiffre (number).

     

    Alors que

    01 == 1

    est vrai.

    en réponse à : Caractère spécial #71962
    Merlin
    Maître des clés

    « Entre temps j’ai fait ceci en superposant 2 images. On peut faire comme cela ou c’est plutôt à éviter ? »

    La vraie réponse :

    🙂

     

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

    mais normalement lorsqu’on n’indique pas nEnd, seule la page nStart est imprimée !

    Il faut se méfier de ces raccourcis (propres à Adobe ?) qui ne fonctionnent pas dans tous les logiciels, j’en ai aussi fait l’amère expérience avec Foxit.

     

    en réponse à : Valeur d’exportation des cases à cocher dans les infos-bulles #71941
    Merlin
    Maître des clés

    Bonjour

     

    La réponse est non, et Adobe ne reviendra certainement pas en arrière car c’est une fonctionnalité requise pour l’accessibilité.

    en réponse à : Caractère spécial #71917
    Merlin
    Maître des clés

    “Entre temps j’ai fait ceci en superposant 2 images. On peut faire comme cela ou c’est plutôt à éviter ?”

    Tant que ça fonctionne c’est bon, mais s’il y a beaucoup de champs ou de pages je t’invite à utiliser la mise en pratique du principe simple ci-joint car il simplifie le nombre de champs et le script.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Caractère spécial #71903
    Merlin
    Maître des clés

    Le principe est simple : deux boutons masqués contenant chacun une icône (activé et désactivé), et le troisième bouton visible va chercher l’icône dont il a besoin dans le bouton masqué correspondant.

    Il faut utiliser buttonImportIcon :

    https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html?#buttonimporticon

    en réponse à : Caractère spécial #71892
    Merlin
    Maître des clés

    Chez moi ça affiche un point quand le champ a été cliqué, le symbole ne s’affiche qu’au survol du curseur.

    Je suppose que c’est un problème de police de caractère manquante…

     

    Mais souvent la bonne réponse vient de l’abandon de la “mauvaise” question : tu essaies de réinventer la roue en faisant se comporter des champs de texte comme des boutons.

    Alors pourquoi ne pas utiliser des champ de formulaire de type “boutons” ?

    L’énorme avantage c’est que dans un bouton on peut utiliser une image comme label, on n’est pas limité à du texte.

    Et ça t’éviterait d’avoir à gérer deux champs de texte l’un par-dessus l’autre.

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Caractère spécial #71886
    Merlin
    Maître des clés

    S’agissant du label d’un bouton on ne peut pas le faire au clavier (pas avec Acrobat Pro, je ne sais avec PDF Expert).

    Il faut remplir le label avec JavaScript (depuis la Console) :

     

    this.getField("bouton1").buttonSetCaption("\uD83D\uDC41");

    en réponse à : Caractère spécial #71885
    Merlin
    Maître des clés

    Tu devrais lire ce tuto qui a été écrit pour toi :

    PDF, JavaScript et Unicode

    😎

    en réponse à : Piece jointe et icône #71884
    Merlin
    Maître des clés

    “Une idée sur ma question(liste déroulante et image) ?”

    Je crois que ce sera possible dans le PDF 2.0, autant dire que ce n’est pas pour demain vu la vitesse à laquelle Adobe et les autres intègrent cette norme (ISO 32000-2).

    en réponse à : Piece jointe et icône #71875
    Merlin
    Maître des clés

    Oui, l’icône s’adapte à l’échelle mais pas fidèlement, quand on dézoome elle ne diminue pas autant que le reste, et inversement.

    en réponse à : Ajout page supplémentaire fiche PDF #71868
    Merlin
    Maître des clés

    Acrobat Pro et Acrobat Standard permettent à l’utilisateur d’afficher/masquer une page modèle, mais ce n’est pas possible avec Acrobat Reader.

    Ce dernier ne supporte que le spawn (génération d’un duplicata).

     

    On retrouve la même logique chez les concurrents (Foxit, Qoppa…).

    en réponse à : Ajout page supplémentaire fiche PDF #71867
    Merlin
    Maître des clés

    Ce qu’il faut bien comprendre avec les pages modèles/templates masquées c’est que le “spawn” génère un duplicata de la page masquée.

    Donc quand on supprime la page qui a été “spawnée” on supprime tout ce qu’il y dessus, mais la page modèle reste toujours telle quelle, intacte.

     

    La seule chose qui peut “rester” ce sont les données saisies dans les champs de formulaire puisque les noms de champs sont exactement les mêmes sur la page modèle et sur le duplicata.

    Donc si on supprime une page duplicata après avoir saisi des données on peut retrouver ces données en re-“spawnant” la page modèle.

    Avec une réserve : ça ne peut fonctionner que si le paramètre bRename est sur false, c’est à dire sans renommage des champs lors du spawn.

     

    en réponse à : Piece jointe et icône #71866
    Merlin
    Maître des clés

    Je vais encore te répondre avec le mot “impossible”.

    En attendant que bebarth me démente peut-être.

    😉

    en réponse à : Cacher/montrer avec un bouton unique #71855
    Merlin
    Maître des clés

    “Les accolades sont facultatives ?”

    Oui quand il y a une seule ligne d’instruction après la condition, comme dans ton exemple.

    Non s’il y a plusieurs lignes d’instructions après la condition. On peut le faire quand même dans les versions récentes d’ECMAScript mais c’est prendre un risque inutile.

    en réponse à : Lien bouton radio et liste #71839
    Merlin
    Maître des clés

    😍

    en réponse à : Piece jointe et icône #71828
    Merlin
    Maître des clés

    👍

    en réponse à : Remplissage automatique. #71771
    Merlin
    Maître des clés

    👍

    en réponse à : Piece jointe et icône #71741
    Merlin
    Maître des clés

    👍

    en réponse à : Lien bouton radio et liste #71740
    Merlin
    Maître des clés

    C’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.

    Il faut soit placer l’initialisation des listes sous condition, soit utiliser un bouton ou autre action pour les initialiser.

    en réponse à : Piece jointe et icône #71723
    Merlin
    Maître des clés

    Oui, il faut enregistrer le document pour connaitre son poids après modification. Malheureusement c’est incontournable, on ne peut pas faire autrement.

    en réponse à : Piece jointe et icône #71707
    Merlin
    Maître des clés

    Oui, il faut enregistrer le document pour connaitre son poids après modification.

    Malheureusement c’est incontournable, on ne peut pas faire autrement.

    en réponse à : Piece jointe et icône #71705
    Merlin
    Maître des clés

    “là je cherche une solution pour indiquer sur mon formulaire PDF dans une case le poids total du fichier pour que les personnes puissent voir s’ils peuvent l’envoyer par mail.”

    À placer en script de calcul dans le champ concerné :

    event.target.value = this.filesize;

    en réponse à : Piece jointe et icône #71699
    Merlin
    Maître des clés

    À mon avis les fonctions redondantes ne simplifient pas, au contraire elle embrouillent l’utilisateur.

     

    en réponse à : Piece jointe et icône #71689
    Merlin
    Maître des clés

    “et enfin j’aurais besoin d’un bouton pour effacer les pièces jointes”

    Je crois que ce serait inutile car redondant, il y a déjà au moins 3 moyens de supprimer les pièces jointes :

    • Clic-droit sur l’icône : Supprimer,
    • Sélection de l’icône + touche effacement,
    • Utiliser les outils du panneau pièces jointes.
    en réponse à : Charger une image dans pdf remplissable #71683
    Merlin
    Maître des clés

    Charger programmatiquement une image depuis le web dans un document PDF ?

    Ce n’est pas possible. Sécurité oblige.

     

    C’était faisable quand Flash Player était supporté par Acrobat, mais la sécurité est justement une des raisons qui ont contribué à sa disparition.

    en réponse à : Charger une image dans pdf remplissable #71679
    Merlin
    Maître des clés

    Bonjour

     

    C’est très facile, il faut utiliser un champ de type “image” (qui est en fait un champ de type Bouton contenant déjà le script nécessaire).

    Voir capture.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Définir une taille maximale pour tous les fichiers ajoutés #71678
    Merlin
    Maître des clés

    Si c’est un formulaire XFA-PDF généré avec Designer les scripts sont de toute façon inaccessibles avec Acrobat, que le formulaire soit protégé on non.

    Par contre si c’est un “vrai” formulaire PDF le déverrouillage est un jeu d’enfant : https://smallpdf.com/fr/unlock-pdf

    en réponse à : Remplissage automatique. #71677
    Merlin
    Maître des clés

    Je n’ai pas suivi le développement de ce projet mais une faute m’a sauté aux yeux (attention aux moqueries des élèves) il s’agit du bouton :

    RETOUR ACCUEIL (et non pas Retour Acceuil)

    😉

    en réponse à : Piece jointe et icône #71663
    Merlin
    Maître des clés

    “Exemple: bouton 1 cinq pièces jointes dans la case/bouton 2 cinq pièces jointes dans la case ainsi de suite pour tout les boutons du tableau.”

    Je ne sais pas ce qu’en pense bebarth mais dans ce cas je ne vois pas comment faire autrement qu’en mettant un compteur pour chaque bouton.

Affichage de 99 réponses de 298 à 396 (sur un total de 10,150)