Donnez vie à vos documents numériques !
 

Merlin

Toutes mes réponses sur les forums

Affichage de 99 réponses de 793 à 891 (sur un total de 10,390)
  • Auteur
    Réponses
  • en réponse à : Liste de choix 2 niveaux #70229
    Merlin
    Maître des clés

    1 Il y a une erreur dans cette ligne :

    if ((event.target.type == "combobox" && event.name == "Format") || (event.target.type == "listbox" && event.name == "Keystroke")) {

     

    À remplacer par :

    if ((event.target.type == "combobox" && event.name == "Keystroke") || (event.target.type == "listbox" && event.name == "Keystroke")) {

     

    2 Le script devrait être placé en script de « Touche personnalisé » et non pas en script de Format (un script de Format ne modifie que l’affichage, pas la valeur elle-même. Ce qui explique que la valeur du 2e menu revienne toujours à sa valeur par défaut).

     

    Ci-joint.

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Champs obligatoires (boutons radio) multipage et valeurs #70212
    Merlin
    Maître des clés

    Une autre solution simple : dans le champ « résultat » afficher un message (en rouge*) expliquant qu’il faut que tout soit coché pour déclencher l’affichage du résultat.

    Et y afficher le résultat à la place du message quand tout est OK.

     

     

    • On peut aussi le faire clignoter si besoin 😉
    Merlin
    Maître des clés

    Bonjour

     

    Si par « document joints » tu entends « pièces jointes du document PDF » il y a moyen de faire autrement, on peut facilement afficher une pièce jointe, surtout si elle est en PDF.

    en réponse à : Champs obligatoires (boutons radio) multipage et valeurs #70207
    Merlin
    Maître des clés

    On ne peut (heureusement) pas empêcher un utilisateur d’enregistrer un document, par contre au moment où il enregistre rien n’empêche de lui afficher un message explicatif si tout n’est pas rempli.

     

    en réponse à : Champs obligatoires (boutons radio) multipage et valeurs #70194
    Merlin
    Maître des clés

    Bonjour

     

    Je ne suis pas certain de bien comprendre la question.

    Vu comme ça pour moi il y aurait deux solutions, soit rendre tous les boutons-radios obligatoires, soit ne déclencher le calcul final que quand tous les groupes de boutons-radio sont cochés.

    Cette dernière solution étant à mon avis la plus fiable et la plus logique car elle n’afficherait pas un résultat faux ou partiel lors de la saisie utilisateur.

    en réponse à : Problème pour poster #70193
    Merlin
    Maître des clés

    Bonjour

     

    Si tu as réussi à poster ici il n’y a pas de raison que ça ne fonctionne pas ailleurs…

    En tous cas tu peux toujours poster ta question ici, il y sera répondu même si je n’arrive pas à la déplacer.

    😎

    en réponse à : PDF interactif sur site web #70188
    Merlin
    Maître des clés

    C’est possible si et seulement si l’utilisateur utilise Firefox et le plugin Acrobat.

    Autant dire qu’on perd la plus grande partie des utilisateurs avant même d’avoir commencé.

     

    Il existe une autre méthode : forcer le téléchargement du PDF et forcer son ouverture avec Acrobat ou Foxit Reader.

    Voir :

    en réponse à : Export de la valeur d’un champ texte #70177
    Merlin
    Maître des clés

    👍

    en réponse à : Export de la valeur d’un champ texte #70173
    Merlin
    Maître des clés

    Bonjour

     

    Il y a deux problèmes :

     

    1- Dans la première ligne du script

    str = event.target.value;

    signifie « la valeur du champ du champ actif », c’est à dire la valeur déjà affichée par ce champ.

    Alors que

    str = event.value;

    signifie « la valeur qui vient d’être saisie », ce qui n’est généralement pas la même chose.

    Donc il faut remplacer la 1re ligne ci-dessus par la 2e.

     

    2- L’emplacement du script n’est pas bon.

    Un script de Format ne change jamais la « vraie » valeur d’un champ, il ne change que l’affichage de cette valeur (il faut penser aux formats de Date : la date ne change pas, c’est seulement sa présentation qui change).

    Donc dans ce cas il faut utiliser un script de Validation, qui modifie vraiment la valeur saisie.

     

    Ce tuto devrait t’aider à y voir plus clair dans l’ordre d’enchainement des évènements :

    L’ordre d’exécution des événements dans les champs de formulaire PDF

     

    • Cette réponse a été modifiée le il y a 3 années et 10 mois par Merlin.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Script qui a l’air de marcher mais… #70169
    Merlin
    Maître des clés

    Ceci pourrait peut être aider à répondre à ta dernière question (dont je ne connais pas la réponse) :

    Calcul date automatique j+1, j+2, j+3….

    en réponse à : Script qui a l’air de marcher mais… #70165
    Merlin
    Maître des clés

    Le problème c’est la boucle :

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

     

    this.numFields ça veut dire : nombre de champs contenus dans le document (199 dans ce document).

    Les champs à calculer sont nommés avec des suffixes qui vont de  xxxxx.0  à  xxxxx.52

    Comme il y a plus que 52 champs dans le document quand « i » arrive à la valeur 53 ça provoque une erreur puisque ces champs n’existent pas (en JavaScript « null » ça veut dire : n’existe pas).

     

    Donc il faut remplacer la ligne ci-dessus par celle-ci, qui indique zéro comme valeur de départ et 52 comme valeur à ne pas dépasser :

    for (var i = 0; i < 53; i++) {

     

     

    • Cette réponse a été modifiée le il y a 3 années et 10 mois par Merlin.
    en réponse à : Script qui a l’air de marcher mais… #70159
    Merlin
    Maître des clés

    Bonjour

     

    « Le champ n’existe pas » parce-que tu fais faire une boucle au script alors qu’il n’y a que des champs « .0« , donc pas besoin de boucle ni de « +i« .

     

    if (this.getField("CheckBox.0").value == "A" & this.getField("TheckBox.0").value != "D") {
    app.alert({cMsg:"Attention, les apprentis ne peuvent pas être au lycée quand les élèves sont en PFMP ou en vacances", nIcon:2});
    this.getField("CheckBox.0").value = "Off"
    }

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

    Si jamais tu avais peur de t’ennuyer pendant les fêtes il y a d’autres ressources listées ici :

    Ressources PDF-JavaScript

     

    🤓

    en réponse à : Couleurs #70151
    Merlin
    Maître des clés

    Tu as raison de préciser qu’il est inutile d’exécuter les 53 scripts; J’avais remarqué que lorsque j’ai un pdf dans lesquels trop de champs contiennent des scripts

    C’est pour ça que mon exemple n’utilise qu’un seul script de calcul dans un seul champ.

    😎

     

     

    Ce que tu appelle script de touche personnalisée

    Voir capture jointe et voir aussi ce tuto, mais je ne connais pas les équivalences avec PDF XChange Editor Plus  :

    L’ordre d’exécution des événements dans les champs de formulaire PDF

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

    Bonjour

     

    1. C’est parce-que les couleurs ne sont pas référencées correctement il manque /255, voir le script ci-dessous. Si la 1re fonctionnait c’est parce qu’elle n’utilisait que 255 et 0, si la dernière fonctionne c’est parce-que c’est une couleur nommée.

    2. Il faut placer le script à la suite du calcul existant dans le bouton CALCUL, voir le ci-joint.

     

    for (var j = 0; j < 53; j++) {

    if (this.getField("diff."+j).value === 0) {
    this.getField("diff."+j).fillColor = color.transparent;}

    else if (this.getField("diff." +j).value === 1) {
    this.getField("diff."+j ).fillColor = ["RGB", 0/255, 255/255, 0/255];}

    else if (this.getField("diff." +j).value === 2) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 205/255, 0/255];}

    else if (this.getField("diff." +j).value === 3) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 180/255, 0/255];}

    else if (this.getField("diff." +j).value === 4) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 149/255, 0/255];}

    else if (this.getField("diff." +j).value === 5) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 122/255, 0/255];}

    else if (this.getField("diff." +j).value === 6) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 102/255, 0/255];}

    else if (this.getField("diff." +j).value === 7) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 77/255, 0/255];}

    else if (this.getField("diff." +j).value === 8) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 54/255, 0/255];}

    else if (this.getField("diff." +j).value === 9) {
    this.getField("diff."+j ).fillColor = ["RGB", 255/255, 37/255, 0/255];}

    else if (this.getField("diff." +j).value === 10) {
    this.getField("diff."+j ).fillColor = color.red;}

    else {this.getField("diff."+j ).fillColor = color.transparent;}

    }

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

    Je crois que le script est plus logique et plus compréhensible ainsi, j’ai changé le nom des variables :

     

    var comptA = 0;
    var comptB = 0;
    var comptC = 0;

    // Itération de tous les champs du document
    for (var i = 0; i < this.numFields; i++) {

    var oFld = this.getField(this.getNthFieldName(i));
    // si le champ est de type "checkbox" et si son nom contient "CheckBox" et si sa valeur n'est pas nulle
    if ((oFld.type == "checkbox") && (/CheckBox/.test(oFld.name)) && (oFld.value != "Off")) {

    if (oFld.value == "A") {comptA += 1;}
    if (oFld.value == "B") {comptB += 1;}
    if (oFld.value == "C") {comptC += 1;}
    }
    }

    this.getField("LT").value = comptA;
    this.getField("ET").value = comptB;
    this.getField("VT").value = comptC;

    en réponse à : Checkbox #70133
    Merlin
    Maître des clés

    var compt0 = 0;
    var compt1 = 0;
    var compt2 = 0;

    // Itération de tous les champs du document
    for (var i = 0; i < this.numFields; i++) {

    var oFld = this.getField(this.getNthFieldName(i));
    // si le champ est de type "checkbox" et si son nom contient "CheckBox" et si sa valeur n'est pas nulle
    if ((oFld.type == "checkbox") && (/CheckBox/.test(oFld.name)) && (oFld.value != "Off")) {

    if (oFld.value == "A") {compt0 += 1;}
    if (oFld.value == "B") {compt1 += 1;}
    if (oFld.value == "C") {compt2 += 1;}
    }
    }

    this.getField("LT").value = compt0;
    this.getField("ET").value = compt1;
    this.getField("VT").value = compt2;

    en réponse à : Checkbox #70131
    Merlin
    Maître des clés

    Ci-joint, le script se trouve dans le champ masqué « CALCUL ».

     

    Pour que des cases à cocher fonctionnent comme des boutons-radios il faut que chaque rangée (par exemple) de cases ait le même nom et une valeur d’exportation différente, comme dans le ci-joint.

    Le script fait les totaux en fonction de la valeur d’exportation de chaque coche, s’il y en a une (valeur).

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

    Dans mon premier message, le fichier est attaché, je suis le seul à le voir ?

    OTAN pour moi, je m’étais concentré sur le 2e message. 😵

    Ton document à l’air bien inutilement compliqué, je répondrai plus longuement demain.

    en réponse à : Dupliquer actions d’un bouton #70128
    Merlin
    Maître des clés

    Sinon tu peux utiliser JavaScript, en modifiant un tout petit peu cet exemple ça devrait le faire :

    Script pour ajouter un bouton avec action Page suivante sur fichiers pdf

    en réponse à : Dupliquer actions d’un bouton #70127
    Merlin
    Maître des clés

    Bonjour

     

    En fait il faut prendre le problème à l’envers, c’est très rapide.

    Pour commencer il faut supprimer tous les boutons déjà créés, sauf un. Ça se fait en tournemain dans la liste des champs du panneau « Préparer le formulaire » d’Acrobat Pro.

    Ensuite il faut soigneusement paramétrer le bouton restant en lui attribuant tous les paramètres (position, aspect, action, etc) nécessaires.

    Et pour finir, clic-droit sur le bouton : Dupliquer sur toutes les pages.

    C’est terminé.

     

    Pour les autres documents il suffit de copier-coller un bouton et de le dupliquer de la même manière sur toutes pages.

    en réponse à : Nom de fichier et titre de fichier #70126
    Merlin
    Maître des clés

    🤗

    en réponse à : Nom de fichier et titre de fichier #70115
    Merlin
    Maître des clés

    Bonjour

     

    C’est une propriété du document, pas un réglage du logiciel.

    Tu étais à deux doigts de la solution : menu Fichier : Propriétés : Vue initiale

    La suite en image :

     

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

    Bonjour

     

    Est-ce que ce sont des cases à cocher indépendantes ou bien est-ce qu’elles fonctionnent avec un choix unique pour chaque ligne (comme des boutons-radio) ?

    Peux tu partager ton document ou un exemple ?

    en réponse à : Générer un numéro unique non aléatoire dans un champ texte #70106
    Merlin
    Maître des clés

    👍

    J’ajoute juste qu’avec le script de bebarth le champ COMPTEUR ne doit surtout pas être au format « nombre », ce qui supprimerait les zéros directeurs de toute façon.

    Par principe, un champ dont le contenu est issu d’un calcul ou d’un script, donc non modifiable par l’utilisateur, n’a pas besoin d’avoir un « format », puisque la valeur obtenue a déjà ce format.

    Merlin
    Maître des clés

    😎

    Merlin
    Maître des clés

    Pour avoir un bouton avec « texte sur icône » (à ajouter avant la dernière ligne) :

    f.buttonPosition = position.overlay; // texte sur icône

     

     

    Pour ne pas avoir le texte (les flèches) il faut supprimer ou désactiver cette ligne :

    f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite

    Merlin
    Maître des clés

    Ajoute cette ligne juste avant la dernière accolade , il faut indiquer le chemin d’accès au fichier icône (qui peut aussi être en PNG ou JPG) :

    f.buttonImportIcon("/F/pdfs/monIcone.pdf");

    Merlin
    Maître des clés

    Cette fois j’ai testé avec un Acrobat tout juste ouvert et donc débarrassé de toute variable fantôme, il y en avait deux autres 😱

     

    // POSITION BOUTON "PAGE SUIVANTE"
    var nPosBt6 = 1.5; // multiplicateur
    var inch = 28.3; // unité de base, ce qui fait 1 inch = 1 centimètre

    // CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
    for (var p = 0; p < this.numPages; p++) {
    // Position du rectangle
    var aRect = this.getPageBox( {nPage: p} );
    aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
    aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
    aRect[1] -= .5*inch; // 0,5 cm from the top of page
    aRect[3] = aRect[1] - 15; // and 15 points high
    var f = this.addField("btPageSuiv", "button", p, aRect)
    f.setAction("MouseUp", "this.pageNum++");
    f.userName = "Page suivante"; // infobulle
    f.display = display.noPrint;
    f.borderStyle = border.s;
    f.highlight = "none";
    f.textSize = 0; // 0 = corps automatique
    f.textColor = color.black;
    f.fillColor = color.white;
    f.strokeColor = color.black;
    f.textFont = font.Helv; // Helvetica
    f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite
    }

    en réponse à : Générer un numéro unique non aléatoire dans un champ texte #70095
    Merlin
    Maître des clés

    Il faut créer un champ texte qu’on va nommer COMPTEUR dans le document, initialisé à zéro.

    Et ajouter cette ligne juste avant le script de réinitialisation :

    this.getField("COMPTEUR").defaultValue = Number(this.getField("COMPTEUR").value) +1;

     

     

    en réponse à : Champ calculé – difference #70090
    Merlin
    Maître des clés

    Oublie tout ce qui a été écrit précédemment et ce vieux script inutilement compliqué.

    Je viens justement de croiser un script beaucoup plus simple sur un autre forum.

    Ci-dessous et dans le document ci-joint en script de calcul du champ qui indique le nombre de jours :

     

    if (this.getField("DateDeb").value != "" && this.getField("DateFin").value != "") {
    var dd = this.getField("DateDeb").value;
    var rd = this.getField("DateFin").value;
    var d1 = util.scand("dd/mm/yyyy", dd);
    var d2 = util.scand("dd/mm/yyyy", rd);
    var diff = (d2.valueOf() - d1.valueOf()) / 1000;
    event.value = (Math.round((diff / 60 / 60) / 24)+1) + " jour(s)";
    }
    else {event.value = "";}

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Générer un numéro unique non aléatoire dans un champ texte #70086
    Merlin
    Maître des clés

    Bonjour

     

    Qu’appelles tu un « numéro unique » ? Est-ce qu’il doit être vraiment unique universellement parmi tous les documents du monde ou bien est-ce qu’il doit n’être unique que pour toi ?

    À quoi devrait ressembler cette numérotation ?

    en réponse à : Champ calculé – difference #70082
    Merlin
    Maître des clés

    C’est parce-que tu n’as pas intégré la fonction qui se trouve en script de document dans l’exemple fourni :

     

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Champ texte nul si champ liste déroulante nul #70079
    Merlin
    Maître des clés

    Bonjour

     

    Met ce code en script de Format Personnalisé dans le champ « texte2 » :

    if (event.value == 1) {event.value = ""};

    Merlin
    Maître des clés

    En fait il manquait la première ligne, qui défini la variable « nPosBt6 ».

    Du coup j’ai testé et j’ai remplacé les « >>> » par leur équivalent Unicode car ça buggait (en dernière ligne).

     

    // POSITION BOUTON "PAGE SUIVANTE"
    var nPosBt6 = 1.5; // cm à partir du bord DROIT de la page, ce bt fait 1 cm de large

    // CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
    for (var p = 0; p < this.numPages; p++) {
    // Position du rectangle
    var aRect = this.getPageBox( {nPage: p} );
    // aRect[0] = zéro car on est dans la CROP box
    aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
    aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
    aRect[1] -= .5*inch; // 0,5 cm from the top of page
    // aRect[3] = zéro car on est dans la CROP box
    aRect[3] = aRect[1] - 15; // and 15 points high
    var f = this.addField("btPageSuiv", "button", p, aRect)
    f.setAction("MouseUp", "pageSuiv()");
    f.userName = "Page suivante"; // infobulle
    f.display = display.noPrint;
    f.borderStyle = border.s;
    f.highlight = "none";
    f.textSize = 0; // 0 = corps automatique
    f.textColor = color.black;
    f.fillColor = color.white;
    f.strokeColor = color.black;
    f.textFont = font.Helv; // Helvetica
    f.buttonSetCaption("\u003E\u003E\u003E"); // flèche vers la droite
    }

    en réponse à : Bouton pour insérer une page #70074
    Merlin
    Maître des clés

    Par-contre il est possible d’insérer un document en pièce jointe, y compris avec Acrobat Reader.

    Merlin
    Maître des clés

    👍

    Merlin
    Maître des clés

    Si je comprend bien tu voudrais qu’une case à cocher active ou désactive un autre groupe de cases ?

    en réponse à : Modifier un script de champ vers un script de document. #70057
    Merlin
    Maître des clés

    Il faut mettre les instructions à exécuter à la suite entre les accolades, on peut ajouter des lignes à loisir :

     

    if (event.value == "")
    {
    this.getField("o.box." + nSuffix).value= "Off";
    this.getField("o.date." + nSuffix).value= "";
    }

    else
    {
    this.getField("o.box." + nSuffix).value= "Oui";
    this.getField("o.date." + nSuffix).value= "Exemple";
    }

    en réponse à : Bouton pour insérer une page #70055
    Merlin
    Maître des clés

    Bonjour

     

    Pour moi c’est NON aussi.

    Acrobat Reader ne peut pas importer ni ajouter des pages dans un document PDF.

    en réponse à : Modifier un script de champ vers un script de document. #70053
    Merlin
    Maître des clés

    Je mettrais ça en script de Validation :

    gereLeMachin();

     

     

    Après avoir mis ça en script de document :

    function gereLeMachin() {
    // mise en variable du nom du champ actif
    var cName = event.target.name;
    // récupération du suffixe
    var nSuffix = cName.substring(cName.lastIndexOf('.')+1);
    if (event.value==""){this.getField("o.box." + nSuffix).value="Off"}
    else {this.getField("o.box." + nSuffix).value="Yes"}
    }

     

    En fait j’ai remplacé le numéro de suffixe de ton script par une variable contenant le numéro de suffixe du champ actif/cliqué.

    (Non testé)

    en réponse à : Script de calcul personnalisé avec choix multiple #70041
    Merlin
    Maître des clés

    Le script modifié ci-dessus n’est pas au format « Code » pour qu’on puisse voir ce qui est en orange, mais du coup les guillemets droits qu’on utilise en JavaScript ont été transformé en guillemets à chevron avec une espace à l’intérieur.

     

    en réponse à : Script de calcul personnalisé avec choix multiple #70037
    Merlin
    Maître des clés

    Je m’en doutais car ça me paraissait plus logique mais je m’en suis tenu aux instructions.

    Script modifié (en orange) :

     

    oSaisie1 = this.getField(« texte3 »);
    oSaisie2 = this.getField(« Classe de précision »);
    oResult1 = this.getField(« texte4 »);
    oResult2 = this.getField(« texte5 »);

    // si les deux champs sont remplis
    if (oSaisie2.value != « Off » && oSaisie1.value != oSaisie1.defaultValue) {
    // soustraction des valeurs
    var nResult1 = oSaisie1.value – oSaisie2.value;
    // si résultat = zéro
    if (nResult1 == 0) {nResult1 = «  »;}
    // affectation du résultat
    oResult1.value = nResult1;

    // calcul des valeurs
    var nResult2 = oSaisie1 + (oSaisie1.value /2) + oSaisie2.value;
    // si résultat = zéro
    if (nResult2 == 0) {nResult2 = «  »;}
    // affectation du résultat
    oResult2.value = nResult2;

    }
    // sinon
    else {
    oResult1.value = oResult1.defaultValue;
    oResult2.value = oResult2.defaultValue;
    }

    en réponse à : Script de calcul personnalisé avec choix multiple #70028
    Merlin
    Maître des clés

    Ce script de calcul est dans « texte3 » mais il pourrait être dans n’importe quel autre champ, le document est là :

    https://documentcloud.adobe.com/link/track?uri=urn:aaid:scds:US:e47d558a-eb52-449a-ab0f-893cb7b7dee4

     

    oSaisie1 = this.getField("texte3");
    oSaisie2 = this.getField("Classe de précision");
    oResult1 = this.getField("texte4");
    oResult2 = this.getField("texte5");

    // si les deux champs sont remplis
    if (oSaisie2.value != "Off" && oSaisie1.value != oSaisie1.defaultValue) {
    // soustraction des valeurs
    var nResult1 = oSaisie1.value - oSaisie2.value;
    // si résultat = zéro
    if (nResult1 == 0) {nResult1 = "";}
    // affectation du résultat
    oResult1.value = nResult1;

    // calcul des valeurs
    var nResult2 = (oSaisie1.value /2) + oSaisie2.value;
    // si résultat = zéro
    if (nResult2 == 0) {nResult2 = "";}
    // affectation du résultat
    oResult2.value = nResult2;

    }
    // sinon
    else {
    oResult1.value = oResult1.defaultValue;
    oResult2.value = oResult2.defaultValue;
    }

    en réponse à : Question GREP : peut-on faire des calculs simples ? #70026
    Merlin
    Maître des clés

    La réponse est OUI si on utilise ce script gratuit dont j’ignorais l’existence :

    https://creativepro.com/files/kahrel/indesign/price_adjuster.html

     

    en réponse à : Script de calcul personnalisé avec choix multiple #70024
    Merlin
    Maître des clés

    « CRMP1-.pdf: File exceeds allowed file size. »

    Fais un « Enregistrer sous » de ton fichier.

    S’il est encore trop gros pour passer en pièce jointe de ce forum tu peux utiliser une des nombreuses méthodes indiquées ici :

    Envoyer/partager/poster une pièce jointe volumineuse

    en réponse à : Script de calcul personnalisé avec choix multiple #70022
    Merlin
    Maître des clés

    Peux tu partager ton document ou un exemple en PDF ?

    Je veux bien te montrer comment faire les calculs dans un document existant mais je n’ai pas le temps de créer un formulaire et des champs juste pour ça.

     

    en réponse à : Script de calcul personnalisé avec choix multiple #70019
    Merlin
    Maître des clés

    Bonjour

     

    Peux tu partager ton document ou un exemple ?

    Ce sera plus facile que d’expliquer et tu comprendras aussi bien.

    en réponse à : LionelMacBruSoft a posté son dernier message #70016
    Merlin
    Maître des clés

    🙏

    en réponse à : Champ calculé – difference #70014
    Merlin
    Maître des clés

    Oui, supprime ces deux actions.

    C’est l’action Champ Activé qui déclenche le remplissage du champ, si et seulement s’il est vide.

    en réponse à : Plan de table #70009
    Merlin
    Maître des clés
    en réponse à : Modifier 2 champs basé sur le résultat d’un 3e. #69998
    Merlin
    Maître des clés

    Je t’invite également à lire ou relire cet article : https://www.abracadabrapdf.net/?p=4736

    😉

    en réponse à : Question GREP : peut-on faire des calculs simples ? #69995
    Merlin
    Maître des clés

    Bonjour

     

    La réponse est non.

    Dans InDesign il y a deux façons d’utiliser le GREP :

    • en « style GREP », qui ne permet pas de remplacer car ça n’applique que des formatages.
    • en « Rechercher-remplacer GREP », mais il faut saisir le texte de remplacement. Il n’y a ni calcul ni automatisme possible.
    • Cette réponse a été modifiée le il y a 3 années et 11 mois par Merlin.
    en réponse à : Modifier 2 champs basé sur le résultat d’un 3e. #69994
    Merlin
    Maître des clés

    Bonjour

     

    Je le verrais mieux ainsi :

     

    if (event.value >= 10) {
    this.getField("AG").checkThisBox(0, true);
    this.getField("AG TEXT").value ="Écart d'âge est plus de 10 ans";
    }
    else {
    this.getField("AG").checkThisBox(0, false);
    this.getField("AG TEXT").value ="";
    }

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #69990
    Merlin
    Maître des clés

    🙌🙌🙌

    👏👏

    👍

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #69987
    Merlin
    Maître des clés

    Je viens de re-regarder le document : je trouve que dissocier les noms de jour (en dur, dans le fond de page) et les dates (dans des champs de formulaire) est source d’erreur car rien ne vérifie la concordance entre date et jour.

    À mon avis il vaudrait mieux n’utiliser que des dates longues (avec le nom du jour) dans les champs.

    😎

    en réponse à : Champ calculé – difference #69986
    Merlin
    Maître des clés

    Comme c’est un script de calcul on peut le placer dans n’importe quel champ, mais je reconnais que c’est étrange, comme le nom des champs qui est à l’envers.

    Je ne sais plus pourquoi ce document avait été fait ainsi, ça fait trop longtemps.

    😇

    en réponse à : Calcul date automatique j+1, j+2, j+3…. #69984
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    J’ai placé ce script en script de validation dans le champ de départ (en orange dans le ci-joint).

    (Le format de date du champ de départ doit correspondre à celui de la 3e ligne du script)

     

    var daDate = event.value;
    if(daDate !== "") {
    var aDate = util.scand("dd/mm/yyyy", daDate);
    if(aDate) {
    for (var i=1; i<42; i++) {
    var Dday = i * 24 * 60 * 60 * 1000;
    oNewDate = new Date(Dday + aDate.getTime());
    this.getField("date." + i).value = util.printd("dd/mm/yyyy", oNewDate);
    }

    }
    }

    else {
    for (var i=1; i<42; i++) {
    this.getField("date." + i).value = "";
    }
    }

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

    Tu n’as pas assez cherché !

    😉

     

     

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

    Tu peux copier-coller les champs de l’exemple ci-joint.

    Attention, il y a une fonction en script de document.

     

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

    Ça ne peut pas fonctionner, ce sont des champs Date.

    On ne peut pas soustraire des dates simplement, il faut préalablement convertir chaque date en millisecondes à partir de la date EPOCH, faire la soustraction, et re-convertir le résultat en date intelligible pour un humain.

     

    On en a déjà parlé sur le forum, tu devrais faire une recherche (date, epoch, …).

    Beaucoup de pièces jointes ont disparu lors du changement de forum alors n’hésites pas à revenir si tu as des questions ou besoin d’exemples.

    en réponse à : Champ calculé – difference #69960
    Merlin
    Maître des clés

    Bonjour

     

    A priori le script est bon, ce qui coince ce sont les guillemets à chevron (et les espaces qui vont avec), en JavaScript on n’utilise que les guillemets droits  " (et donc sans espace entre le nom du champ et le guillemet).

    C’est notamment pour éviter ce genre de problèmes qu’en programmation on n’utilise pas de logiciels de traitement de texte (Word, TextEdit, Bloc-Notes…) mais des logiciels « Editeur de texte », comme les logiciels gratuits Notepad++ (Windows) ou BBedit (Mac).

    • Cette réponse a été modifiée le il y a 3 années et 11 mois par Merlin.
    en réponse à : Calcul #69951
    Merlin
    Maître des clés

    👍

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

    1000 mercis.

    Si tout le monde faisait comme vous…

    🙏

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

    En fait il n’y a pas besoin de JavaScript ni de calculs compliqués, il faut juste bien nommer les champs et éventuellement utiliser un champ masqué. J’ai aussi modifié la valeur d’exportation des coches Parution.

     

    Ce tuto explique pourquoi j’ai renommé les champs avec des points et pourquoi ça simplifie les calculs : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/

    😎

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

    Ce que je voulais dire, et bebarth aussi je suppose, c’est qu’avec un menu déroulant on ne peut commander qu’un seul article, ou alors il faut remplir un bon de commande pour chaque article, ce qui n’est pas ergonomique ni très logique.

    S’il y avait une case à cocher devant chaque article on pourrait en commander plusieurs avec un seul bon de commande.

     

    Quel que soit ton choix on peut facilement remplir le champ tarif automatiquement.

    Si tu choisis les cases à cocher il faut mettre le prix de l’article en « valeur d’exportation » dans chaque case.

    Si tu choisis de conserver le menu déroulant il faut que tu le refasses en ajoutant pour chaque article le tarif en « valeur d’exportation », mais comme Acrobat ne permet de modifier les articles existants il faut tous les supprimer et recommencer.

    Attention : en « valeur d’exportation » il ne faut mettre que le chiffre, pas d’espace ni de symbole monétaire.

     

    Une fois que tu auras fait ça, poste ton document et bebarth ou moi pourra t’ajouter le bout de script qui va bien.

     

     

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

    Bonjour

     

    Exemple ci-joint, qui n’utilise pas de JavaScript, seulement les fonctions de calculs intégrées à Acrobat.

     

    Pour moi le défaut de ce bon de commande c’est qu’on ne peut commander qu’un seul article (à moins que ce soit exprès ?).

    Un jeu de coches à gauche ou à droite de la liste des articles permettrait d’en sélectionner plusieurs.

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

    Bonjour

     

    A priori ça ressemble plutôt à un problème d’ordre de calcul mais avec juste le script hors contexte il n’est pas facile de répondre. 🤔

    Ce serait plus simple si tu pouvais partager tout ou partie de ton document.

     

    en réponse à : Porte document pdf #69919
    Merlin
    Maître des clés

    Bonjour

     

    Mauvaise nouvelle, Flash Player n’existe plus et Acrobat XI ne sera jamais mis à jour.

    Il faut utiliser Acrobat Pro DC ou Acrobat Pro 2020 (sans abonnement) pour créer des porte-documents sans Flash Player.

     

    Bonne nouvelle quand même, les porte-documents créés avec Acrobat XI (ou autre) avec Flash Player sont lisibles avec les versions actuelles (en mode « classeur », sans l’interface Flash).

    • Cette réponse a été modifiée le il y a 3 années et 12 mois par Merlin.
    en réponse à : Signature numérique / électronique #69912
    Merlin
    Maître des clés

    👍

    en réponse à : Signature numérique / électronique #69909
    Merlin
    Maître des clés

    Principe de base de tout éditeur de logiciel : laisser l’utilisateur croire que c’est de sa faute…

    😉

    en réponse à : Signature numérique / électronique #69907
    Merlin
    Maître des clés

    Ça fonctionne bien mais effectivement il faut valider 2 fois.

    Bravo.

    en réponse à : Signature numérique / électronique #69904
    Merlin
    Maître des clés

    Merci !

    en réponse à : Signature numérique / électronique #69896
    Merlin
    Maître des clés

    S’il y a « export en PDF » ça concerne le format PDF et ça peut nous intéresser.

    😎

    en réponse à : Signature numérique / électronique #69889
    Merlin
    Maître des clés

    Je n’ai jamais essayé ça.

    en réponse à : Signature numérique / électronique #69824
    Merlin
    Maître des clés

    Je trouve ça très inquiétant, on livre nos administrations aux multinationales américaines qui planquent la plupart de leurs bénéfices dans les paradis fiscaux…

    😮

    en réponse à : Android vs iOS : avantages et inconvénients #69822
    Merlin
    Maître des clés

    .

    en réponse à : Signature numérique / électronique #69820
    Merlin
    Maître des clés

    À moins que l’Éducation Nationale ait déjà son propre système de signature numérique pour s’éviter de payer des abonnements à des multinationales américaines et protéger la confidentialité des échanges.

    Mais je suis certainement en plein rêve. 😀

    en réponse à : Signature numérique / électronique #69819
    Merlin
    Maître des clés
    • Le gestionnaire raisonne à l’ancienne, il devrait refaire les comptes parce-que les abonnements sont généralement calculés pour être (un peu) moins chers que l’achat.

     

    • De toute façon il n’y a pas besoin de logiciel payant, Acrobat Reader suffit. On peut aussi utiliser les signatures depuis Word ou d’autres logiciels.
      Ce qu’il faut payer dans ce cas c’est juste un abonnement à Adobe Sign, pour un ou plusieurs utilisateurs. Il y a plusieurs formules avec plusieurs options. L’essai est gratuit : https://www.adobe.com/fr/sign/free-trial-global.html

      Il y a aussi des concurrents qui proposent des offres et des prix différents, DocuSign étant le principal. Là aussi l’essai est gratuit : https://go.docusign.com/trial/productshot-france/

    en réponse à : Signature numérique / électronique #69815
    Merlin
    Maître des clés

    OTAN pour moi, c’est aussi directement disponible dans Acrobat Reader et on peut tester gratuitement, voir :

     

    • Cette réponse a été modifiée le il y a 4 années par Merlin.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Signature numérique / électronique #69814
    Merlin
    Maître des clés

    Bonjour

     

    Le mieux c’est d’oublier tout de suite les signatures avec certificat et tous les trucs compliqués qui demandent à l’utilisateur d’avoir un logiciel spécifique et de faire des manipulations complexes.

     

    L’ultra simple c’est de les « Envoyer pour signature », c’est une fonction disponible dans Acrobat Pro et Standard (avec Acrobat Reader il faut payer un abonnement AdobeSign).

    Les destinataires reçoivent un email avec un lien qui les invite à se connecter, ils remplissent le formulaire en ligne directement dans le navigateur web et ils signent, le tout en étant guidés par de grosses flèches.

    Ensuite, expéditeur et destinataire(s) reçoivent un lien pour télécharger le PDF signé numériquement avec une vraie signature certifiée.

    Avec en prime un gestionnaire qui permet de savoir qui a/n’a pas répondu, quand, etc.

    Le seul inconvénient c’est qu’on ne peut pas utiliser de formulaires avec des calculs, des actions JavaScript ou des formats compliqués, mais dans ton cas ça devrait le faire.

    Voir ce tuto : https://helpx.adobe.com/fr/acrobat/using/send-for-signature.html

    en réponse à : concaténation des valeurs de plusieurs champs #69806
    Merlin
    Maître des clés

    😀

    en réponse à : concaténation des valeurs de plusieurs champs #69802
    Merlin
    Maître des clés

    Pour le champ de code postal, j’ai implémenté la contrainte d’un nombre de caractères requis (5) en action de validation et j’ai également implémenté le format nombre avec zéro directeur (à gauche) en action de frappe. Ces 2 scripts sont dans les scripts fournis et fonctionnent très bien

    Pourquoi ne pas utiliser directement le format « Code Postal » ?

     

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

    👍

    en réponse à : Mauvais affichage 3D dans Acrobat Reader #69767
    Merlin
    Maître des clés

    Essaie de faire comme indiqué dans la réponse correcte de ce sujet (il y a un bouton « Traduire » sous chaque message) :

    https://community.adobe.com/t5/acrobat-reader-discussions/poor-display-quality-of-3d-model-in-pdf/m-p/9930048/thread-id/42586#M42587

    en réponse à : Vous allez aimer le GHRA ! #69757
    Merlin
    Maître des clés

    Mise à jour 4 ans et demi après : l’application mobile n’existe plus.

    Maintenant il y a un site web normal et accessible avec n’importe quel appareil :

    https://avignonguidehistorique.fr/

     

    en réponse à : Questions réponses sur animations dans un pdf #69751
    Merlin
    Maître des clés

    Bonjour et bienvenue

     

    Dans le format PDF on peut :

    • animer/faire défiler des images ou des champs de formulaires avec JavaScript, mais ce n’est pas simple.
    • intégrer une vidéo au format MP4.
    • importer un fichier 3D (simple) et lui ajouter des actions via JavaScript (pas simple).

     

    Voir ces PDF de démo :

     

    Le résultat dépend du logiciel utilisé, les logiciels lecteurs de PDF « par défaut » (Aperçu et Edge principalement) sont catastrophiques car ils ne supportent que peu des fonctionnalités du format PDF 1.7, alias norme ISO 32000.
    Contrairement à des logiciels comme Acrobat ou Foxit (dont les versions Reader sont gratuites).
    Voir comment pallier à ce problème : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/forcer-utilisation-pdf-avec-acrobat-reader/

     

    en réponse à : Lien vers URL dans PDF #69749
    Merlin
    Maître des clés
    en réponse à : Lien vers URL dans PDF #69746
    Merlin
    Maître des clés

    Décidément tu n’as pas de chance avec les pièces jointes dans ce nouveau forum ! 😉

    Ça ne fonctionne pas :

     

    • Cette réponse a été modifiée le il y a 4 années par Merlin.
    Attachments:
    You must be logged in to view attached files.
    en réponse à : Masquer un champ #69714
    Merlin
    Maître des clés

    Merci ca marche bien pour afficher le champ mais, lorsque j’enlève la donnée du champ1, le champ2 ne disparait pas

    Dans l’exemple ci-joint ça fonctionne.

    PS ou est ce que vous avez appris tout ca?

    Tout est là :

    Ressources PDF-JavaScript


    :-)

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

    Bonjour

    Il faut placer ce script en script de validation dans le champ 1, après avoir ajusté le nom du champ n°2 :

    if (event.value.toString().length > 0) {this.getField(« CHAMP2 »).display = display.visible;}
    else {this.getField(« CHAMP2 »).display = display.hidden;}

    en réponse à : Envoi de formulaire par Mail ne fonctionne plus ! #69707
    Merlin
    Maître des clés

    S'il est KO, je le mettrai en ligne ici mais le souci est qu'il utilise pas mal de la charte graphique de l'entreprise et donc cela m'ennuie un peu de le publier tel que……!!!!

    Tu traces des grands rectangles sur les zones à supprimer et tu nous laisse juste l'essentiel :
    https://helpx.adobe.com/fr/acrobat/using/removing-sensitive-content-pdfs.html

    en réponse à : Majuscules accentuées sur une ou plusieurs lignes #69708
    Merlin
    Maître des clés

    Bonjour et bienvenue

    On peut forcer l'affichage de certains caractères en capitale après la saisie, qu'ils soient accentués ou non.
    On peut aussi le faire à la volée lors de la saisie pour tous les caractères avec une simple ligne de JavaScript.

    Si j'ai bien compris ta demande, il faudrait développer un script qui détecte les sauts de ligne, les poins et autres ponctuations de fin de phrase, mais ça c'est a priori une autre paire de manches.
    J'ai pensé à activer le correcteur orthographique dans le champ de saisie en question mais ça ne fonctionne que pour les noms propres, il ne détecte pas les débuts de phrase (merci Adobe !).
    Quelqu'un aura peut être une autre idée ?

    Se as pas vis l'Ordecho, as d'jamal ràn vis!

    en réponse à : Envoi de formulaire par Mail ne fonctionne plus ! #69705
    Merlin
    Maître des clés

    Bonjour
    Le script à l'air OK… Peux tu partager ce document (après avoir biffé son contenu si besoin) ?

    en réponse à : Lien vers URL dans PDF #69702
    Merlin
    Maître des clés

    Bonjour et bienvenue

    Ça requiert un bon niveau en JavaScript.
    Ready ?

    Merlin
    Maître des clés

    Dans ce cas le plus simple est d’utiliser ce script dans une Action, après l’avoir personnalisé, ensuite on peut appliquer l’Action sur un lot de fichiers.

    // CRÉER BOUTON PAGE SUIVANTE SUR TOUTES LES PAGES
    for (var p = 0; p < this.numPages; p++) {
        // Position du rectangle
        var aRect = this.getPageBox( {nPage: p} );
        // aRect[0] = zéro car on est dans la CROP box
        aRect[0] = aRect[2] - nPosBt6*inch; // from right of page
        aRect[2] = aRect[0]+1*inch; // Make it 1 cm wide
        aRect[1] -= .5*inch;  // 0,5 cm from the top of page
        // aRect[3] = zéro car on est dans la CROP box
        aRect[3] = aRect[1] - 15; // and 15 points high
        var f = this.addField("btPageSuiv", "button", p, aRect )
        f.setAction("MouseUp", "pageSuiv()");
        f.userName = "Page suivante"; // infobulle
        f.display = display.noPrint;
        f.borderStyle = border.s;
        f.highlight = "none";
        f.textSize = 0; // 0 = corps automatique
        f.textColor = color.black;
        f.fillColor = color.white;
        f.strokeColor = color.transparent;
        f.textFont = font.Helv; // Helvetica
        f.buttonSetCaption(">>>"); // flèche vers la droite
    }
    • Cette réponse a été modifiée le il y a 4 années par JR Boulay.
    Merlin
    Maître des clés

    Bonjour
    Je crois que c'est typiquement un bouton qui ne sert pas à grand-chose car il existe déjà par défaut au-dessus de tous les documents.
    Il y a aussi un raccourci-clavier.

    en réponse à : Mauvais affichage 3D dans Acrobat Reader #69696
    Merlin
    Maître des clés

    As-tu essayé de jouer avec les réglages d'éclairage ?
    Sinon partage ton fichier qu'on puisse voir ce que ça donne sur d'autres écrans.

    en réponse à : Impression PDF #69695
    Merlin
    Maître des clés

    Si un formulaire est destiné à être imprimé ça n'a pas de sens d'interdire l'impression.  :tutut:
    L'utilisateur peut avoir plein de bonnes raisons pour vouloir imprimer un formulaire partiellement rempli et finir de le compléter à la main.

    Je suis donc à fond avec la proposition de bebarth.

Affichage de 99 réponses de 793 à 891 (sur un total de 10,390)