Toutes mes réponses sur les forums
-
AuteurRéponses
-
Merlin
Maître des clés1 Oui, il suffit de supprimer la condition dans le script qui remplit le champ date automatiquement, ainsi la nouvelle date écrasera l’ancienne à chaque ouverture du document.
this.getField("validite").value=util.printd("dd/mm/yyyy", new Date(new Date().getTime()+(365*24*3600*1000)));
2 Il faut utiliser ce script en évènement “Document a été imprimé” :
this.getField("numero").value += 1;
Merlin
Maître des clés“on ne trouve pas forcément beaucoup de tutoriels sur internet concernant le javascript pour les formulaires interactif PDF.”
Il y a beaucoup de tutos disponibles mais il faut lire l’Anglais ou savoir bien utiliser Googol Traduction.
Commence ici : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/
Merlin
Maître des clés“si vous avez le bon script merci.”
Tu à l’air têtu, mais moi aussi : c’est donc la 2e fois que je te dis que tu trouveras les réponses que tu cherches dans mon fichier joint.
😎
Merlin
Maître des clésDésolé, je suis trop nul en math et je n’ai pas le temps de chercher.
Mais si quelqu’un peut m’indiquer la formule de base pour calculer une telle moyenne je me ferai un plaisir de la convertir en JavaScript.
Merlin
Maître des clésLe fichier que j’ai joint est fonctionnel, examine bien les scripts de validation et les scripts de calculs. Tu y trouveras toutes les réponses.
Qu’il y ait 2 champs à additionner pour le total ou qu’il en ait 50 le principe reste le même.
Tu devrais aussi lire cet article car quand on utilise tes fichiers la Console JavaScript affiche des informations très instructives sur les erreurs rencontrées :
Merlin
Maître des clésJe ne suis pas certain d’avoir compris la question (un peu touffue…) mais en tout cas j’ai une réponse. 😉
Fichier fonctionnel ci-joint.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésQuand j’ouvre ton fichier n°2 la console m’affiche cette erreur au moins 10 fois :
TypeError: this.geField is not a function
2:Field:CalculateDonc il faut commencer par remplacer geField par getField.
Je n’aurai pas le temps aujourd’hui mais j’examinerai ça de plus près ce soir ou demain.
Merlin
Maître des clésBonjour
Où doivent apparaitre ces lettres ?
Dans le libellé du bouton cliqué ou dans autre champ ?
Merlin
Maître des clésDu coup c’est encore plus simple.
temps = distance / vitesse
Donc dans le champ qui doit afficher le temps il faut placer ce calcul en notation simplifiée :
distance / vitesse
Si on part du principe que les champs se nomment “distance” et “vitesse”.
Attention, le résultat est donné en heures décimales, il faudra ensuite éventuellement convertir en H:MM
Voir : https://open.crea-learning.com/mod_turbolead/mod/crealearning/reader.php?n=OTA4MyYyOTEzMw%3D%3D
Merlin
Maître des clésBonjour
Sur le principe la réponse est oui, mais dans ton exemple il manque un opérateur : la vitesse.
D’ailleurs il n’y a pas besoin de JavaScript, un calcul en notation simplifiée suffit :
((Texte1 * Texte2) / Texte3) / Texte4
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésBonjour
Place ce script en action Souris relâchée dans le champ texte :
if (!/^\s*$/.test(event.target.value)) {app.launchURL(event.target.value);}
Merlin
Maître des clésBonjour
Il faut cocher l’option qui va bien dans les Options de la liste déroulante et utiliser ce script dans le champ texte :
event.target.value = this.getField("NOMDUCHAMP").value;
Attachments:
You must be logged in to view attached files.Merlin
Maître des clés👍
Merlin
Maître des clésUn tel script peut aussi être exécuté par une Action (Assistant Action).
Merlin
Maître des clésthis.saveAs("/c/myDocs/myDoc.pdf", "com.callas.preflight.pdfa");
Erratum : comme cette fonction utilise le Contrôle en amont je suppose qu’elle ne fonctionne pas avec Acrobat Standard
Tout est là, attention il y a des restrictions :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html#saveas
Merlin
Maître des clésBonjour
La réponse est oui mais Acrobat Reader (logiciel gratuit) ne peut pas enregistrer en PDF normé (PDF/A ou autre), ça requiert Acrobat Pro
ou Acrobat Standard.Même principe et même limitation chez Foxit, le principal concurrent.
Merlin
Maître des clésPS : s’il s’agit de la valeur par défaut du menu déroulant on peut aussi utiliser :
this.getField("Dropdown2").value = this.getField("Dropdown2").defaultValue;
Merlin
Maître des clésBonjour
getItemAt ça sert à connaitre la valeur d’un menu, pas à lui assigner une valeur.
Pour assigner une valeur à un menu déroulant il faut utiliser :
this.getField("Dropdown").value = "Blablabla";
Où “Blablabla” est la valeur d’exportation s’il y en a une, sinon c’est la valeur de l’item de menu qu’il faut utiliser.
Merlin
Maître des clés👍
Pas mieux.
Merlin
Maître des clésBonjour
Il faut pour chaque rangée mettre toutes les valeurs dans un tableau (array), et ensuite utiliser par exemple sort() pour classer les éléments.
Je n’ai pas plus de temps ce soir.
Je reviendrai pour les détails. 😉
Merlin
Maître des clésBonjour
Oui c’est bien ce qu’il faut faire. La preuve c’est que ça fonctionne !
Mais normalement l’espace après l’apostrophe est signalée par le correcteur orthographique, c’est pour ça que ce cas n’est pas prévu par le script.
Merlin
Maître des clésBonjour
Tout dépend de ce que recouvre “données web” mais dans le temps on pouvait importer/exporter des données depuis un PDF vers un serveur en ligne.
Avec beaucoup de restrictions bien entendu, sécurité oblige.
Merlin
Maître des clésDans ce cas le mieux est de transférer les données entre les deux formulaires comme indiqué ci-dessus, et ensuite utiliser un script qui affecte la valeur “RAS” aux champs vides.
Merlin
Maître des clésBonjour
Je ne connais pas PDF XChange mais je suppose que comme avec Acrobat on peut exporter/importer les données d’un formulaire.
Soit directement de PDF à PDF, soit indirectement en exportant les données au format FDF (ou XFDF).
Merlin
Maître des clésBonjour
Je commencerais par : Préférences : Général : où je décocherais l’option “Afficher les messages d’Adobe…” (la 3e coche en partant du bas).
Sans oublier de croiser les doigts…
Merlin
Maître des clés👍
Merlin
Maître des clés👍
Merlin
Maître des clésBonjour
Réponse en image, la boite de dialogue qui suit permet de sélectionner un ou plusieurs formulaires à exporter.
Bien entendu, s’il y a plusieurs formulaires à exporter dans un même fichier CSV il faut qu’au départ ils soient identiques, avec les mêmes noms de champs.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clés“Réinitialiser” signifie “revenir à la valeur par défaut” (reset to default value).
Ça ne concerne que la valeur du champ et donc aucun autre de ses attributs.
Merlin
Maître des clésA priori c’est faisable (en récupérant le numéro suffixe ?) mais il faudrait que tu en dises plus car je ne comprend pas bien le but, sinon en supposant qu’il y aura plusieurs champs.
Merlin
Maître des clés“Oui je ne suis pas fan des accents ..”
Contrairement à d’autres langues comme l’Espagnol (je ne connais pas le Portugais) en Français les accents ne servent pas qu’à la prononciation, ils ont pleine valeur orthographique et peuvent complètement changer le sens des mots.
Voir : https://www.abracadabrapdf.net/?p=870
Merlin
Maître des clés“en bas au champ formulaire pourcentage, le champ ne prend pas en charge les chiffres à virgule”
C’est parce-que le champ Pourcentage utilise un format “JavaScript” qui ne fonctionne pas, c’est la première chose que dit la Console quand on ouvre le document :
TypeError: event.target.value.toFixed is not a function
1:Field:FormatIl faudrait que ce champ utilise un format Nombre “normal”.
Merlin
Maître des clés“A-t-il déjà fonctionné correctement avec des version précédentes ?”
Oui.
Ça faisait bien ramer l’ordinateur (iBook G4) mais ça fonctionnait.
Merlin
Maître des clésBonjour
À la place de plusieurs boutons de couleur, j’aurais plutôt utilisé une case à cocher avec un style de case “rond” et je lui aurait fait changer de couleur en même temps que la gommette.
Merlin
Maître des clésC’est la pièce jointe envoyée ci-dessus : https://www.abracadabrapdf.net/wp-content/uploads/2023/04/horloge-Sowedoo.pdf
Merlin
Maître des clésBonjour
Chaque item de la liste déroulante doit être associé à une “valeur d’exportation”.
Le script est placé en “script de calcul” dans le champ “Texte1”.
Exemple ci-joint.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésMerci pour le partage.
Ci-joint le document corrigé de toutes ses fautes de français (je n’ai pas touché aux scripts).
😎
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésJ’ai retrouvé l’usine à gaz, c’est Michael et Alex qui avaient fait ça.
Mais aujourd’hui ça ne semble plus très bien fonctionner, il y a 6 aiguilles !
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésMerlin
Maître des clés“nettoyage des case remplie sauf le numéro de facture”
En fait c’est très simple.
Réinitialiser un champ ne signifie pas “supprimer la valeur qu’il contient”, ça signifie “revenir à la valeur par défaut”.
Donc au lieu d’attribuer au champ “numéro” une simple valeur il faut lui attribuer une nouvelle valeur par défaut. Ainsi on peut réinitialiser tous les champs sans craindre qu’il perde sa valeur :
this.getField("numero").defaultValue += 1;
app.execMenuItem("SaveAs");
Merlin
Maître des clésDans la logique d’utilisation d’une matrice celle-ci doit être enregistrée-sous un autre nom dès son ouverture pour être utilisée directement en tant que nouveau document. Ce qui évite aussi d’avoir à se poser la question de comment réinitialiser tous les champs sauf un.
Remplir la matrice, travailler dessus, et ensuite enregistrer-sous est source d’erreurs humaines et de corruption de fichier.
Il n’est pas possible d’utiliser la commande “Enregistrer” depuis un script de document, sécurité oblige. Voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
Donc après avoir enregistré le nouveau document sous un autre nom, tu as juste à enregistrer la matrice pour qu’elle conserve son nouveau numéro.
Merlin
Maître des clés19 ans après je n’ai pas retrouvé ce fichier mais pas de regrets : c’était soit une usine à gaz qui fonctionnait en détournant les outils de commentaires et donc pas très efficace, soit c’était en fait un fichier SWF incorporé dans le PDF mais ça ne fonctionne plus depuis l’arrêt de Flash Player.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésJ’ai ajouté ces deux lignes de script en script de document :
this.getField("numero").value += 1;
app.execMenuItem("SaveAs");
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésJe crois qu’il serait plus logique/pratique d’utiliser une matrice.
À l’ouverture de la matrice le numéro s’incrémente, la matrice s’enregistre pour conserver le nouveau numéro et déclenche un enregistrer-sous pour générer la nouvelle facture.
Et bien entendu, juste avant l’enregistrer-sous de la nouvelle facture on supprime le script qui incrémente son numéro à l’ouverture.
Qu’en penses tu ?
Merlin
Maître des clés👍
Merlin
Maître des clés“Oui j´aimerais aussi incrémenté un numéro de facture a chaque fois que j´établie une nouvelle facture”
Même réponse que ci-dessus : Quel évènement devrait déclencher le nouveau numéro ?
Merlin
Maître des clés“désolé mais je n’ai pas mis en place cette solution n’ayant pas trouvé d’aide ….”
On attend toujours le document.
Merlin
Maître des clésDans ce cas on remplace la case à cocher par un champ de texte au format nombre (chiffre) et on modifie un peu le calcul final en utilisant la notation simplifiée.
Ci-joint.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésBonjour.
Pour être exclusives (un seul choix possible) les cases à cocher d’un groupe doivent avoir le même nom et une valeur d’exportation différente.
Donc il faut ajouter un groupe de 3 cases à cocher et un groupe de 1 seule, le total étant fait par un simple calcul dans un champ texte.
Ci-joint.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clés👍
Merlin
Maître des clésJe ne connais pas non plus de fonction JavaScript qui permettrait de cliquer OK dans la fenêtre d’alerte.
Si les champs avec Format ont toujours le même nom (Date, CodePostal, etc.) tu peux utiliser l’exportation/importation de données fictives entre plusieurs formulaires. C’est ce que je fais le plus souvent.
Ensuite tu peux demander au script de ne remplir que les champs vides.
Merlin
Maître des clésBonjour
Avec JavaScript on ne peut pas détecter si un champ à un format ni lequel. Tout ce qu’on faire c’est ajouter un format en écrasant le précédent.
Pour ignorer les erreurs il faut utiliser “continue” mais le truc c’est qu’il faut dire quel type d’erreur on veut ignorer et pour le coup je ne sais pas.
Que dit la Console quand il y a ces erreurs ?
En attendant, si tu veux tout savoir sur “continue” :
https://www.w3schools.com/js/js_break.aspMerlin
Maître des clésOups, dans mon script il manque effectivement la définition de “f”.
1000 excuses.
Merlin
Maître des clésBonjour Jean-Claude
Essaie ça dans la console :
for (var i=0; i < f.numItems; i++) console.println(f.getItemAt(i,true) + ": " + f.getItemAt(i,false));
Merlin
Maître des clésBonjour
C’est un petit bug d’Acrobat, si ça vous intéresse la solution se trouve sur le site d’Adobe :
https://community.adobe.com/t5/acrobat-discussions/acrobat-keeps-asking-to-sign-in/td-p/11525698
(Il y a un bouton “Traduire” sous chaque message)
Merlin
Maître des clés👍
Merlin
Maître des clés“Après une autre question, avec du jS peut-être on peut forcer la lecture auto ou en boucle etc…”
A priori oui mais je n’ai pas vérifié, tout est là :
Merlin
Maître des clésMerlin
Maître des clésBonjour
Tout est là : https://helpx.adobe.com/fr/acrobat/using/rich-media.html
Sinon il est également possible de placer la vidéo en pièce jointe dans le PDF pour qu’elle soit lue par le lecteur multimédia par défaut (au lieu d’Acrobat). Mais dans ce cas il ne peut pas y avoir de lancement automatique.
Merlin
Maître des clés“En reprenant ce poste je voulais dans la case TexteSomme que le nombre en lettres soit remplie de étoile avant et après. comment faire ?”
Ajoute ceci en script de Format dans le champ concerné :
event.value = "************ " + event.value + " ************";
Merlin
Maître des clésJe crois que tu as raison mais je n’ai pas tort : tu parles de ton script qui intègre l’enregistrement du nouveau fichier, alors que je parle d’une Action qui utilise la fonction Enregistrer d’Acrobat juste avant cette ligne de script.
Du coup ça fait une différence car le document actif n’est pas le même.
Merlin
Maître des clés“« this » représente le fichier dont on veut extraire la première page donc this.closeDoc(true); ne fermera pas le fichier temporaire.”
Dans mon idée “this” représente le document qui vient d’être enregistré, qui est actif et donc au premier-plan à l’instant T.
Mais je n’ai pas testé.
😉
Merlin
Maître des clésPS : dans l’Assistant Action il n’est pas possible de préciser si on veut que le nouveau fichier soit fermé après son enregistrement.
Je suppose que c’est automatique, mais si ce n’est pas le cas il faudra ajouter (après l’étape Enregistrement) une nouvelle étape “Exécuter un JavaScript” en utilisant ce script :
this.closeDoc(true);
J’aurais pu enregistrer une Action et te la transmettre mais comme tu utilises une version d’Acrobat Pro antérieure à la mienne ça ne fonctionnera pas.
Merlin
Maître des clésOTAN pour moi (comme dirait V. Zelensky), j’ai oublié de préciser la dernière étape d’enregistrement (ci-joint).
L’option “Optimisation PDF” est facultative, avec le paramètre “Standard” ça donne de bons résultats.
Avantage : les fichiers générés sont de poids plus réduit.
Inconvénient : le temps de traitement de chaque fichier est allongé. Sur plusieurs centaines de fichiers ça peut être très pénalisant.
Connaissant les limites d’Acrobat je te conseille en tout cas de traiter les fichiers par lots de 500 fichiers maximum. Avec plus de fichiers d’un seul coup ça m’étonnerait qu’il arrive au bout, en général il mouline des heures et finit par planter.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clésIl est possible que la documentation d’Adobe ait changé d’adresses, voici les nouvelles :
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/doc.html
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/JS_API_AcroJS.html
Merlin
Maître des clés” où peut-on trouver de la documentation…”
Tout est là : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/ressources-pdf-javascript/
Merlin
Maître des clésUn dessin (ci-joint) vaut mieux qu’un long discours, une fois enregistrée et nommée la nouvelle Action est disponible dans la Liste d’Actions en haut du panneau de l’Assistant Actions.
Attachments:
You must be logged in to view attached files.Merlin
Maître des clés“Il y a une petite coquille dans le code”
1000 excuses, je ne l’avais pas testé.
🙃
Merlin
Maître des clésIl faut utiliser ce script dans la Console pour connaître le nom exact des imprimantes :
var nImp = app.printerNames.length
for ( var i = 0; i < nImp; i++)
console.println("(" + (i+1) + ") " + app.printerNames);
Merlin
Maître des clésCe script fonctionne, il faut remplacer “Adobe PDF” par le nom exact de l’imprimante :
for (var z=0; z<this.numPages; z++) {
var pp = this.getPrintParams();
pp.interactive = pp.constants.interactionLevel.automatic;
pp.pageHandling = pp.constants.handling.fit;
pp.printerName = "Adobe PDF";
pp.printRange = [[z,z]];
this.print(pp);
}
Merlin
Maître des clésAttention à ne pas confondre la couleur de surbrillance (bleu pale par défaut) et la couleur de champs (attributs de fond et de contour).
La couleur de surbrillance se règle dans : Préférences : Formulaires
Merlin
Maître des clésBonjour
Il faudrait utiliser ce script (non testé) dans une Action :
// EXTRACTION DE PAGES ET CRÉATION D'UN NOUVEAU DOCUMENT AVEC LES PAGES EXTRAITES
// ENREGISTREMENT DU CHEMIN D'ACCÈS DU DOCUMENT ACTIF
var cheminDacces = this.path;
var cheminDacces = cheminDacces.substring(0,cheminDacces.length-4);
console.println(cheminDacces);
var docSource = this;
// Création d'un nouveau document à partir de la page extraite
var docCible = this.extractPages({nStart: 0, nEnd: 0}); // extraire page 1
// ATTENTION : cPath NE FONCTIONNE QUE DEPUIS UN SCRIPT D'APPLICATION, UNE ACTION OU LA CONSOLE
// ENREGISTREMENT DU NOUVEAU DOCUMENT en JPEG
docCible.saveAs({cPath: cheminDacces + "_extrait.jpg", cConvID: com.adobe.acrobat.jpeg, bPromptToOverwrite: true});
Merlin
Maître des clésQuelle est sa couleur “normale” ?
Merlin
Maître des clésBonjour
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);}
Merlin
Maître des clésJe 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;
}
Merlin
Maître des clés👍
8 mars 2023 à 09:41 en réponse à : aT-Commentaires-rapport.js bien installé mais fonction introuvable #72634Merlin
Maître des clésBonjour
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
Merlin
Maître des clésBonjour
La réponse est non.
Merlin
Maître des clés👍
Merlin
Maître des clésBonjour
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 ?
Merlin
Maître des clésLe 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.Merlin
Maître des clésPeux tu partager ce fichier (ou un autre) ?
Merlin
Maître des clés👍
Merlin
Maître des clésSinon 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/
Merlin
Maître des clésDans 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;
}
}
Merlin
Maître des clésBonjour
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();");
}
}
Merlin
Maître des clésBonjour
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
Merlin
Maître des clésBonjour
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)
}
}
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.Merlin
Maître des clésBonjour
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).
Merlin
Maître des clésIl 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é.
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
Merlin
Maître des clésMenu Fichier : Imprimer (en PDF)
Mais ça ne fonctionne pas sur MacOS (sauf si on utilise Aperçu).
Merlin
Maître des clésPlus 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…
🤔
Merlin
Maître des clésBonjour
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.
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)
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.
-
AuteurRéponses