abracadabraPDF › Forums › PDF – Général › Ajout de line de code avec JavaScript
- Ce sujet contient 15 réponses, 4 participants et a été mis à jour pour la dernière fois par
michel c., le il y a 1 mois.
-
CréateurSujet
-
17 février 2025 à 19:08 #75438
jctremblay
ParticipantBonjour,
J’essai d’inclure les codes (Script de document) pour l’ajout à l’aide d’un javascript.
Est-ce que la seule façon est de mettre des ” … \n”+ au début et la fin de chaque lignes?
C’est laborieux.Merci!
-
Ce sujet a été modifié le il y a 1 mois et 1 semaine par
jctremblay.
-
Ce sujet a été modifié le il y a 1 mois et 1 semaine par
-
CréateurSujet
-
AuteurRéponses
-
17 février 2025 à 21:44 #75440
bebarth
Maître des clésbonjour,
Je ne suis pas certain d’avoir tout compris, mais au cas où voici un fichier que j’avais fait à partir du fichier “Texte2Unicode” de Merlin.
Ce fichier ajoute un caractère d’échappement pour différents cas. Tu me dis…@+
😎Attachments:
You must be logged in to view attached files.17 février 2025 à 22:12 #75442jctremblay
ParticipantJ’ai ce javascript qui ajoute un script de document.
var scriptName = “ScriptPersonnalise”;
var scriptContent = “app.alert(‘Bonjour, ceci est un script de document personnalisé !’);”;
this.addScript(scriptName, scriptContent);C’est quand le scriptContent est plusieurs dizaine de ligne que ça se complique.
Le but étant de pouvoir écrire du script à l’aide d’un javascript.
17 février 2025 à 22:37 #75443Merlin
Maître des clésBonjour
Il faut que tu utilises un utilitaire pour convertir le script JavaScript en texte (une seule chaine de caractères), par exemple :
- https://jsstringconverter.bbody.io/
ou - https://algodaily.com/convert/javascript/text (inscription requise)
ou - https://www.pdfscripting.com/public/JavaScript-to-Text-Converter-Description.cfm (payant)
17 février 2025 à 22:49 #75444jctremblay
ParticipantMerci Merlin!
Exactement ce qu’il me fallait. Je me voyais mal faire ça manuellement sur plus de 600 lignes.18 février 2025 à 14:11 #75445bebarth
Maître des clésbonjour,
C’est ce qu’est censé faire le fichier que j’ai partagé !@+
😎18 février 2025 à 14:18 #75446jctremblay
ParticipantOui, j’ai vu. Je dois tester. Merci!
J’aime bien la lisibilité qu’offre le résultat de https://jsstringconverter.bbody.io/18 février 2025 à 14:28 #75447michel c.
ParticipantBonjour, j’ai testé en apportant une petite modif, et je ne comprend pas quel problème vous soulevez…
Attachments:
You must be logged in to view attached files.18 février 2025 à 14:34 #75449Merlin
Maître des clésbabarth, dans ton document je crois que c’est “Texte converti avec caractères d’échappement pour les guillemets,” qui est le mieux.
Avec le même script de départ voilà ce que ça donne avec l’utilitaire de Thom Parker, qui ajoute aussi les tabulations et les sauts de lignes mais en fait ça ne sert à rien car les machines n’en tiennent pas compte de toute façon. Au mieux ça ne sert qu’aux humains qui veulent ensuite faire l’opération inverse.
"if (event.target.buttonGetCaption()==\"Montrer\") {\r\n\tthis.viewState={overViewMode:7};\r\n\tevent.target.buttonSetCaption(\"Cacher\");\r\n} else {\r\n\tthis.viewState={overViewMode:0};\r\n\tevent.target.buttonSetCaption(\"Montrer\");\r\n}"
18 février 2025 à 14:41 #75450Merlin
Maître des clés“je ne comprend pas quel problème vous soulevez”
Le truc c’est que quand on utilise un script pour ajouter un script (de document ou d’objet) il faut que le script ajouté soit sous forme d’une chaîne de caractères (string), sans contenir de guillemets ni de caractères spéciaux qui pourrait la segmenter. Et donc rendre le script ajouté inutilisable.
Quand c’est un simple script d’une ou deux lignes, pas de souci. Mais quand c’est plus complexe il faut y faire attention.
26 février 2025 à 10:57 #75490michel c.
ParticipantOk, merci
Par contre, je rebondit sur ce sujet mais il n’est pas possible d’ajouter un script affectée à une action à plusieurs champs en même temps?
J’aimerais affecter le code : fillDropdown(); à 80 listes déroulantes et je suis obligé de le faire manuellement…
Merci
26 février 2025 à 11:23 #75493Merlin
Maître des clésOui, mais comment sont nommées ces listes déroulantes ?
26 février 2025 à 14:20 #75495jctremblay
ParticipantMichel, si c’est pour mettre en action dans tout les listes déroulantes, tu peux executer ça dans la Console.
for (var i = 0; i < this.numFields; i++) {
var f = this.getField(this.getNthFieldName(i));
if (f.type === "combobox") f.setAction("MouseUp", "fillDropdown();");
}26 février 2025 à 15:23 #75496bebarth
Maître des clésbonjour,
Attention aux scripts “Souris relâchée” pour les menus déroulants qui s’exécutent avant de relâcher réellement.
Je pense qu’il vaut mieux utiliser un script de touches personnalisé tel que :
if (!event.willCommit) fillDropdown();
Donc pour placer cette ligne en Script de touches personnalisé de tous les menus déroulants il faut exécuter :
for (var i=0; i<this.numFields; i++) {
var f=this.getField(this.getNthFieldName(i));
if (f.type=="combobox") f.setAction("Keystroke", "if (!event.willCommit) fillDropdown();");
}
Pour ajouter une petite précision, on peut utiliser
if (event.willCommit)...
si on est certain que la case “Valider la valeur sélectionnée immédiatement” est cochée, mais pour être certain que celà fonctionne j’ai l’habitude d’utiliserif (!event.willCommit)...
@+
😎Attachments:
You must be logged in to view attached files.26 février 2025 à 15:34 #75498jctremblay
ParticipantMerci Bebarth, un détail important.
27 février 2025 à 09:42 #75504michel c.
ParticipantEn fait je me suis embarqué dans un truc qui me dépasse un peu.
J’essaye d’adapter 2 scripts que BB m’avait concocté pour un autre document mais j’avoue que je m’y perd un peu.
En gros, j’aimerais que lorsque je clique sur générer les questions sur la page2 du document :
- chaque ligne du champ entreeListe soit propulsée comme élément des listes Q.a.b (la valeur a sera prise dans le champ NQuest)
- que chaque champ Q.a.b ait comme action en “souris entre” : fillDropdown();
- que chaque champ Q.a.b ait comme “action de frappe” : if (!event.willCommit) {selection();}
- l’entrée 2 des champs Q.a.b soit propulsée comme valeur du champs R.a.1 (car l’entrée 1 est le symbole -)
- l’entrée 3 des champs Q.a.b soit propulsée comme valeur du champs R.a.2 et ainsi de suite
- Que soient retirées des entrées des listes Q.a.b les éléments déjà sélectionnés
- Le script qu’avait fait BB et que j’essaye d’adapter propulse dans les listes des valeurs différentes des éléments affichés mais je n’ai plus besoin de ça ici.
- Je n’ai plus besoin non plus d’avoir le tri des éléments ni le comptage des éléments dans les champs groupe.a.b
- Je n’ai plus besoin non plus des champs Group.a
En fait dans ce document, les élèves s’y perdent car ils ne savent plus quelles pièces ils ont déjà saisie…
J’essaye donc tant bien que mal à adapter ces scripts mais j’avoue que ça me donne du fil à retordre car je suis loin de maitriser chaque ligne de code…
Ce document comporte beaucoup de scripts, mais il n’y a que 2 scripts concernés : celui affecté au bouton generateur et le script de document Init
J’ai déjà apporté des modifications aux script initiaux avec plus ou moins de succès…
-
Cette réponse a été modifiée le il y a 1 mois par
michel c..
-
Cette réponse a été modifiée le il y a 1 mois par
michel c..
Attachments:
You must be logged in to view attached files. - https://jsstringconverter.bbody.io/
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.