Toutes mes réponses sur les forums
-
AuteurRéponses
-
2 avril 2019 à 21:08 en réponse à : Format monétaire avec espace, décimales SANS signe de $ et sans afficher 0.00 #64349
bebarthMaître des clésbonsoir,
Pour le français :Code:…
this.event.target.value=nombre+ » $ »;
} else {
this.event.target.value= » »;
}Pour l’anglais :
Code:…
var chaine=this.event.target.valueAsString;
if (chaine.startsWith(« $ »)) var chaine=chaine.substring(1);
…
…
this.event.target.value= »$ »+nombre;
} else {
this.event.target.value= » »;
}@+
:bonjour:
bebarthMaître des clésbonjour,
Tu me donnes tes modifications et/ou ton nouveau tampon avec les infos à indiquer, je regarde, je fais et je t’explique… pour une éventuelle prochaine fois.
Il y a quand même un minimum à connaitre en JavaScript, mais avec un peu de cogitation et de copier/coller on peut y arriver même sans tout comprendre…
@+
:bonjour:
bebarthMaître des clésbonjour,
Voilà !
Si j’ai bien compris ce que tu voulais faire, il faut créer une table avec le texte récupéré de ton champ et coupé à chaque saut de ligne puis alimenter la liste en définissant chaque élément par un élément de la table divisé à chaque ||…
Je ne sais pas si je suis très clair !!! Tu regarderas le script…
@+
:bonjour:
bebarthMaître des clésbonsoir,
Pour rendre le champ obligatoire :
this.getField(« lacheckbox »).required=true;
@+
:bonjour:
bebarthMaître des cléstu peux faire apparaitre le résultat dans un champ auparavant invisible (s’il possède un fond) ou en lecture seule si le fond est blanc !!!
@+
:bonjour:28 mars 2019 à 08:59 en réponse à : Message d’alerte apparaissant différemment selon MAC ou PC #65536
bebarthMaître des clésbonjour,
Je ne pense pas qu’il soit possible de modifier via JavaScript les préférences d’Adobe Reader !
Moi, je n’ai pas de PC, et sur Mac l’activation JavaScript est peut-être activée d’office, mais si on la désactive, le résultat est identique.
Par contre on a une alerte avec possibilité d’activer le JavaScript pour ce document. N’est-ce pas la même chose sur PC ???Pour info, ton script de document n’a pas besoin d’être mis en tant que fonction. Tu peux juste indiquer une ligne de script.
@+
:bonjour:
bebarthMaître des clésEn fait, je regarde tous les champs entre la page 3 et la page 11
Code:if (f.page>=(3-1) && f.page<=(11-1))et selon si c’est une case à cocher (case « checkbox »
, un menu déroulant (case « combobox »
ou un champ texte (case « text »
, je vais chercher le nombre indiqué (f.value) et la désignation dans l’info bulle (f.userName) que j’ajoute à la chaine « laListe ».
Une fois que tous les champs ont été vérifiés, on affiche la fenêtre avec le résultat (app.alert(laListe,3)
.
@+
:bonjour:28 mars 2019 à 08:20 en réponse à : Couleur de fond transparente de mon champ pour l’impression #65512
bebarthMaître des clésbonjour,
Voici les 2 scripts d’actions à indiquer :Code:// Le document sera imprimé
lesFonds=new Array();
for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
lesFonds=f.fillColor;
f.fillColor=color.transparent;
}// Le document a été imprimé
for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
f.fillColor=lesFonds;
}@+
:bonjour:
bebarthMaître des clésbonsoir,
Voici ce que je t’ai fait.
J’ai supposé que les champs « texte » des sacs, stylos et crayons devaient contenir des nombres.
@+
:bonjour:
bebarthMaître des clésbonsoir,
Tampons personnalisés -> Gérer… -> Modifier
@+
:bonjour:
bebarthMaître des clésSinon, à la place du nom du champ on peut faire correspondre son « userName » (le contenu de l’info-bulle) avec le nom de l’article correspondant.
Ça c’est une excellente idée… plus besoin de fichier excel !
@+
:bonjour:
bebarthMaître des clésbonjour,
Tu penses qu’il serait possible de simplifier le processus si la structure du formulaire était différente ?
Il faudrait que tous les champs sélectionnables aient le même nom avec un indice (leChamp1, leChamp2, etc.).
Si tu fournis un fichier excel avec 2 colonnes Nom du champ & Désignation pour tous les champs sélectionnables, ça permettrait de créer une table et ça faciliterait le script.Je souhaiterais ajouter une fonctionnalité qui permettrait de faire un récapitulatif de ce qui a été sélectionné (donc de n’afficher que les éléments qui ont été préalablement sélectionnés) avant l’envoi par mail ou l’impression. Cela dans l’optique de simplifier la lecture des gens chargés de traiter les données de l’inventaire.
Je ne comprend pas bien ce que tu veux faire exactement !
Comment veux-tu afficher le résultat ? Une Fenêtre d’alerte ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Désolé, mais je n’ai pas eu le temps hier !
Tu places donc le fichier .pdf dans ton répertoire « Stamps » et tu auras ton tampon après avoir redémarré Acrobat.
J’ai indiqué la date du jour par défaut.
Si tu as besoin d’autres valeurs par défaut tu me demandes (sauf si tu sais faire !!!).
ATTENTION : La date doit être indiquée YY/MM/DD comme tu l’as demandé mais je n’ai pas géré les erreurs de syntaxes.
@+
:bonjour:26 mars 2019 à 18:57 en réponse à : Couleur de fond transparente de mon champ pour l’impression #65509
bebarthMaître des clésbonsoir,
Il faudrait créer un script d’action qui rend le fond des champs transparents lorsque le fichier est imprimé, puis un autre qui remet les fonds lorsque le fichier a été imprimé.
@+
:bonjour:
bebarthMaître des clésbonjour,
Je vais essayer de travailler sur le tampon aujourd’hui, mais pas sûr…
La date celle du jour où on applique le tampon (automatique) ou doit elle être renseignée ?
@+
:bonjour:
bebarthMaître des clésbonjour,
1. Je m’aperçois que je n’ai pas été assez précise : j’aurais voulu que la correction reste affichée une fois le bouton de la souris relâché.
Voici une nouvelle proposition.
2. Bizarrement, cela fonctionne très bien sur mon PC, mais pas du tout sur mon smartphone (la plupart de mes élèves n’ont pas de PC, mais ont un smartphone).
Je sais qu’il y a des soucis avec les tablettes, mais je ne sais pas te dire quoi ou quand ça marche ou ne marche pas !
@+
:bonjour:
bebarthMaître des clésbonjour,
quels sont les champs à renseigner via la boite de dialogue ?
Le champ pour « APPROVED BY » ne semble pas assez grand pour indiquer un nom… à moins que ce ne soit des initiales ou un chiffre !!!
La date doit être indiquée en 3 morceaux ??? DD/MM/YY -> dans ce format ?
Faut-il renseigner 2 champs pour « …CLIENT.MATTER »
Je suppose que pour SIGNATURE c’est une signature manuelle !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Sans JavaScript et un seul bouton (par question), je vois cette solution : une action qui masque ou affiche un champ de la couleur du fond.
@+
:bonjour:
bebarthMaître des clésbonjour,
Pas de souci si tu as Acrobat Pro !
Partage un fichier exemple et on te montre ce qui est possible de faire !
@+
:bonjour:
bebarthMaître des clésbonsoir,
J’avais espoir que tu utilisais Acrobat Pro !
Je ne connais pas les possibilité de pdf creator. Peux-tu créer des champs et leur attribuer des actions ou des scripts ?
@+
:bonjour:
bebarthMaître des clésJe me doutais bien qu’il n’y avait sûrement que toi qui pouvait répondre à ce genre de question !
@+
:bonjour:
bebarthMaître des clésSi tu peux, tu me fais passer ton fichier Tampons utilisateur qui porte un nom genre « iOjT0b3PCLbVGbKhQ3OQfA.pdf » et qui se trouve dans le répertoire que tu auras trouvé en tapant app.getPath(‘user’,’stamps’); dans la console !
Je pourrais récupérer le script de l’alerte avec 2 champs.
@+
:bonjour:
bebarthMaître des clés…le script est là !
J’essaye de regarder rapidement, mais n’attends pas avant le début de semaine prochaine.
bon weekend.
@+
:bonjour:PS : pour trouver les fichiers des tampons, il faut taper dans la console app.getPath(‘user’,’stamps’); pour les tampons personnalisés ou app.getPath(‘app’,’stamps’); pour les tampons d’Acrobat, suivi de ENTER.
bebarthMaître des clés…OK !
En fait je n’avais jamais travaillé sur les tampons et je vois que ce n’est pas si simple que ça ! Beaucoup de possibilité, mais pas simple…
La fenêtre apparait donc lorsqu’on appose le tampon !
Je vais essayer de regarder mais je ne suis pas certain de pouvoir rapidement.
Merlin a-t-il peut être plus de connaissance que moi pour ce sujet.
Voici les quelques pages que j’ai consulté pour l’instant :
https://acrobatusers.com/tutorials/custom_dynamic_stamp
https://acrobatusers.com/tutorials/dynamic_stamp_secrets
http://blogs.adobe.com/acrolaw/2009/09/try-these-two-line-dynamic-exhibit-stamps/#more-108
@+
:bonjour:
bebarthMaître des clés…et la boite de dialogue est déclenchée quand ou par quoi ? un bouton ?
As tu le script pour la boite de dialogue ?
Tu veux renseigner le fichier Tampon, ou le tampon une fois apposé (je ne sais pas si c’est possible…).
@+
:bonjour:
bebarthMaître des clésbonjour,
Que disposes-tu comme outils ? Acrobat Pro ?
As-tu un fichier exemple ? Ou veux-tu faire apparaitre la correction ? une fenêtre, une autre page ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Le plus simple serait de partager un fichier !
@+
:bonjour:
bebarthMaître des clés…genre le fichier joint.
Si je peux, je te conseillerais de lire le tuto « Duplication rapide de champs » qui pourrait te faciliter la tâche !
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
@+
:bonjour:
bebarthMaître des clésbonjour,
Pourquoi ton champ « Nombre de courts » ne calcule-t-il pas directement la somme des 3 autres champs au lieu de l’indiquer avec risque d’erreur ???
@+
:bonjour:
bebarthMaître des clésbonjour,
Je veux bien essayer de t’aider dès que je comprends ce que tu veux faire…
Promis !
@+
:bonjour:
bebarthMaître des clésbonsoir,
Il suffit de redéfinir l’ordre de calcul (et l’ordre de tabulation, c’est pas mal aussi) !
@+
:bonjour:18 mars 2019 à 10:15 en réponse à : Modification du nom des champs en cas de fusion des mêmes documents #65442
bebarthMaître des clésbonjour,
…en sachant qu’avec Acrobat Pro il n’est pas possible de renommer des champs via JavaSricpt, mais qu’on peut les supprimer et en re-créer de nouveaux identiques, mais sans les scripts associés !
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici ma proposition :Code:var j=0;
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
try {
if (f.required && (f.value== » » || f.value== »Off »)) j++;
} catch(e) {};
}
if (j!=0) {
app.alert(« Tous les champs entourés d’un filet rouge doivent être remplis et toutes les évaluations doivent être renseignées »,3);
} else {
for (var i=0; ivar fname = this.getNthFieldName(i);
var f = this.getField(fname);
f.readonly = true;
}
this.mailDoc({
bUI: false,
cTo: « robin@pdjconnect.com »,
cSubject: « Sujet deu message »,
cMsg: « Texte du message. »
});
this.resetForm();
this.dirty=false;
}On vérifie que tous les champs obligatoires ne sont pas vide et que les boutons radio sont renseignés.
Si c’est bon, on met tous les champs en lecture seule et on envoie le pdf avec mailDoc (c’est une copie qui est envoyée par la messagerie).
Ensuite on réinitialise le formulaire avec « this.resetForm(); » et on indique qu’il n’y a pas besoin d’enregistrer avec « this.dirty=false; »
J’ai également ajouter des script pour vérifier la syntaxe des adresses e-mail et les premières lettres en capitales pour Nom et Prénom.
Je te laisse étudier ça !
@+
:bonjour:15 mars 2019 à 16:27 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65361
bebarthMaître des clésOups ! J’avais publié une mauvaise ligne de script (
var lesLignes=lesLignes.replace(/ »/gi, » »);au lieu de var lesDonnees=lesDonnees.replace(/ »/gi, » »);).
Par contre, l’action postée et que je t’ai envoyé par mail est correcte.
J’ai modifié la ligne dans les 2 post précédents.
Tu me dis si tu as encore un message dans la console.
@+
:bonjour:15 mars 2019 à 14:02 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65359
bebarthMaître des clésConcernant le fichier avec l’autre norme, cela n’est pas possible ?
C’est possible, mais on ne récupère plus les caractères accentués !
Essaie ce script et donne-moi les résultats de la console.Code:console.show();
console.clear();
var Chemin=this.path;
var donneesCSV=this.getDataObjectContents(« UTF-8.csv »);
var lesDonnees=util.stringFromStream(donneesCSV);
console.println(« lesDonnees : « +lesDonnees);
for (var i=1; iif (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
}
console.println(« lesDonnees 1 : « +lesDonnees);
var lesDonnees = lesDonnees.replace(/ »/gi, » »);
console.println(« lesDonnees 2 : « +lesDonnees);
var lesLignes=lesDonnees.split(separateur);
console.println(« lesLignes : « +lesLignes);
var laLigne1=lesLignes[0].split(« ; »);
console.println(« laLigne1 : « +laLigne1);
var laLigne2=lesLignes[1].split(« ; »);
console.println(« laLigne2 : « +laLigne2);
for (var i=0; iconsole.println(« i : « +i);
console.println(« laLigne1 : « +laLigne1);
console.println(« laLigne2 : « +laLigne2);
try {
this.getField(laLigne1).value=laLigne2;
} catch(e) {}
}
this.removeDataObject(« UTF-8.csv »);
this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);@+
:bonjour:15 mars 2019 à 10:54 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65357
bebarthMaître des clésbonjour,
Voici une version adaptée spécialement pour les fichiers que tu m’as fait parvenir. Je ne suis pas diplômé es .csv, et je ne pourrais donc pas t’expliquer le pourquoi mais avec tes fichiers UTF-8 on récupères également des guillemets et le retour ligne récupéré n’est pas r. Par contre on récupère bien les caractères accentués, j’ai donc retiré les lignes pour renommer.
Il faut donc dans un premier temps trouver ce séparateur. Avec : if (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
On vérifie donc le caractère situé entre 2 guillemets (34) et si ce n’est pas un point-virgule (59), c’est le retour ligne !
Ensuite on retire tous les guillements dans la chaine avec : lesDonnees.replace(/ »/gi, » »); -> ici le « i » n’est pas obligatoire car il est pour « insensitive case », on pourrait se contenter de : lesDonnees.replace(/ »/g, » »);
Ce qui donne au final :Code:var Chemin=this.path;
var donneesCSV=this.getDataObjectContents(« fichierData.csv »);
var lesDonnees=util.stringFromStream(donneesCSV);
for (var i=1; iif (lesDonnees.charCodeAt(i-1)==34 && lesDonnees.charCodeAt(i+1)==34 && lesDonnees.charCodeAt(i)!=59) var separateur=String.fromCharCode(lesDonnees.charCodeAt(i));
}
var lesDonnees=lesDonnees.replace(/ »/gi, » »);
var lesLignes=lesDonnees.split(separateur);
var laLigne1=lesLignes[0].split(« ; »);
var laLigne2=lesLignes[1].split(« ; »);
for (var i=0; itry {
this.getField(laLigne1).value=laLigne2;
} catch(e) {}
}
this.removeDataObject(« fichierData.csv »);
this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);@+
:bonjour:
bebarthMaître des clés…et si tu les nommes PVPDF.0 à PVPDF.6 (au lieu de PVPDF1 à PVPDF7) tu peux faire la somme juste en indiquant PVPDF comme dans la copie d’écran !
@+
:bonjour:13 mars 2019 à 17:55 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65353
bebarthMaître des clésIl faut plutôt utiliser « try & catch » :
Code:…
try {
this.getField(laLigne1).value=laLigne2;
} catch(e) {}
…@+
:bonjour:
bebarthMaître des clésbonjour,
Normalement, si ton fichier pdf et ton fichier data.txt sont dans le même répertoire, tu as juste à modifier le nom « data » pour indiquer le nom exact.
this.path lit le chemin du fichier pdf et this.documentFileName lit son nom donc il ne faut pas toucher.
Si le document data.txt n’est pas dans le même répertoire il faut remplacer « var fileName = repertoire+ »data.txt »; » par « var fileName = « le chemin exact du fichier data.txt »; ».
IL faut s’assurer d’avoir les droits dans ce répertoire !
@+
:bonjour:13 mars 2019 à 14:46 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65350
bebarthMaître des clésVoici un script spécialement adapté pour ton fichier.
Code:var Chemin=this.path;
var donneesCSV=this.getDataObjectContents(« test.csv »);
var lesDonnees=util.stringFromStream(donneesCSV);
var lesLignes=lesDonnees.split(« r »);
var laLigne1=lesLignes[0].split(« ; »);
var laLigne2=lesLignes[1].split(« ; »);
for (var i=0; ivar n=laLigne2.charCodeAt(0);
if (n==10) laLigne2=laLigne2.substring(1); // Spécialement pour fichier csv fourni ???
if (laLigne1== »Rfrence ») laLigne1= »Référence »;
if (laLigne1== »Site de lincident ->Nom complet ») laLigne1= »Site de l’incident ->Nom complet »;
this.getField(laLigne1).value=laLigne2;
}
this.removeDataObject(« test.csv »);
this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client->Nom organisation »).value+ »).pdf »);Les caracères non reconnus sont « é » dans Référence et l’apostrophe dans « Site de l’incident… »
@+
:bonjour:13 mars 2019 à 14:19 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65348
bebarthMaître des clésCependant, j’ai réalisé le test et pour le champ « Référence » cela fonctionne (même avec les accents)…
Cela m’étonne un peu car lorsque je récupère « Référence » du fichier csv j’obtiens « Rfrence » !
@+
:bonjour:13 mars 2019 à 13:05 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65347
bebarthMaître des clésJ’ai peut-être une solution mais pour savoir, pourquoi les champs « Site… » et « Client… » sont-ils des listes déroulantes s’il sont remplis via l’application web ?
@+
:bonjour:13 mars 2019 à 11:13 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65345
bebarthMaître des clésJe comprends que tu ne puisses pas renommer les noms de champs de l’application web, mais pourquoi ne pas renommer les champs du formulaire ???
Ensuite si le nom du champ récupéré commence par « Site de l’incident » tu renvoies vers le nom de champ « Site » par exemple !
@+
:bonjour:
bebarthMaître des clésbonjour,
Il faut redéfinir l’ordre de calcul des champs.
Dans ton cas PT1…PT20, puis les PV FDP1 à 7 et enfin ST et PV TOTAL.
Si je peux, je te conseillerais de lire le tuto « Duplication rapide de champs » qui pourrait te faciliter la tâche !
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/duplication-rapide-de-champs-de-formulaire/
@+
:bonjour:13 mars 2019 à 08:24 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65343
bebarthMaître des clésbonjour,
Voici un script pour une action adaptée spécialement pour ton fichier avec les champs renommés (je ne savais pas si je pouvais poster ton fichier).Code:var Chemin=this.path;
var donneesCSV=this.getDataObjectContents(« test.csv »);
var lesDonnees=util.stringFromStream(donneesCSV);
var lesLignes=lesDonnees.split(« r »);
var laLigne1=[« Client », »Description », »Reference », »Titre », »Site »];
var laLigne2=lesLignes[1].split(« ; »);
for (var i=0; ivar n=laLigne2.charCodeAt(0);
if (n==10) laLigne2=laLigne2.substring(1); // Spécialement pour fichier csv fourni ???
this.getField(laLigne1).value=laLigne2;
}
this.removeDataObject(« test.csv »);
this.saveAs(Chemin.substring(0,Chemin.length-4)+ » (« +this.getField(« Client »).value+ »).pdf »);@+
:bonjour:12 mars 2019 à 17:43 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65341
bebarthMaître des clésSi les infos du fichier csv sont toujours identiques, on peut ignorer la première ligne :
Code:var laLigne1= lesLignes[0].split(« ; »);et la remplacer par une table avec les noms corrects des champs renommés dans le pdf, par exemple :
Code:var laLigne1= [« Client », »Description », »Reference », »Titre », »Site »];@+
:bonjour:12 mars 2019 à 14:07 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65339
bebarthMaître des clésJe n’avais pas vu que tu m’avais envoyé un fichier teste sur ma boite mail.
J’ai essayé et ça fonctionne mais il va falloir modifier le nom de certains champs pour ne pas avoir de caractères accentués ni de caractères spéciaux (et je crois pas d’espace… en tout cas moi je n’en mets jamais !).
…et bien sûr indiquer le nom correct du fichier .csv dans le script.
@+
:bonjour:12 mars 2019 à 13:53 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65338
bebarthMaître des clésVoici un nouvel exemple pour un fichier csv avec 2 lignes et qui est supprimé après importation des données.
Si tu utilises l’action (uniquement si), tu peux en plus enregistré le fichier complété sous un nouveau nom : nomFichier (Nom Prenom).pdf
@+
:bonjour:12 mars 2019 à 10:37 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65336
bebarthMaître des clésbonjour,
Si j’ai bien compris, le fichier csv ne comprend qu’une seule ligne à chaque fois, correct ?
Voici donc un exemple qu’il faudra certainement adapter en fonction du nom des champs à remplir.
…après, je ne sais pas si le script doit importer le fichier csv, le supprimer après remplissage des champs, enregistrer le fichier sous un nom (lequel), etc.
@+
:bonjour:11 mars 2019 à 15:01 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65333
bebarthMaître des clés…si tu cliques sur mon pseudo, tu devrais la trouver !!!
@+
:bonjour:11 mars 2019 à 14:28 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65331
bebarthMaître des clésSi tu peux me faire parvenir ton/tes fichiers(s), je pourrai regarder demain matin !
@+
:bonjour:11 mars 2019 à 13:23 en réponse à : Convertir/exporter les données du formulaire PDF vers CSV #65329
bebarthMaître des clésbonjour,
Cependant, tu ne réponds pas à la problématique principale, qui est de pouvoir importer les données d’un fichier CSV joint à mon formulaire PDF, afin de compléter certains champs de mon formulaire avant de l’envoyer au client.
Je n’ai pas suivi ce post depuis le début, mais pour ce point n’est-il pas possible d’utiliser plutôt un fichiet .txt et d’adapter le script de ce post ?
https://abracadabrapdf.net/forum/index.php/topic,3498.msg20950.html#msg20950
@+
:bonjour:
bebarthMaître des clésbonjour,
Je crois savoir que l’auteur de ce script est en vacances. :afro:
Moi j’étais bien en vacances la semaine dernière, mais je ne suis pas l’auteur du script… :Smiley15:
Voici une action d’une adaptation avec traduction.Code:var Chemin = this.path;
var nomDocument = this.documentFileName;
var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length);
var fileName = repertoire+ »data.txt »;
var outputDir = repertoire;
var err = 0;
var idx = 0;
while (err==0) {
err = this.importTextData(fileName, idx++); // Importation des données
if (err == -1) app.alert(« Erreur : Le fichier ne peut pas être ouvert. »);
else if (err == -2) app.alert(« Erreur : Les données ne peuvent pas être importées. »);
// else if (err == -3) app.alert(« Error: Invalid Row »);
// Nous n’indiquons pas cette erreur car elle signale la fin du tableau de données
// et il faut donc sortir de la boucle « while »
else if (err == 1) app.alert(« Attention : Sélection de fichier annulé par l’utilisateur. »);
else if (err == 2) app.alert(« Attention : Sélection de ligne annulée par l’utilisateur. »);
else if (err == 3) app.alert(« Attention : Données non trouvées. »);
else if (err == 0) this.saveAs(outputDir + this.getField(« Nom »).value + « _ » + this.getField(« Prenom »).value + « .pdf »); // Enregistrement du fichier
}Il faut que ton fichier data.txt soit dans le même répertoire que ton fichier .pdf et tous les fichiers seront enregistrés dans ce même répertoire.
Attention à ne mettre de caractères spéciaux dans les nom des champs. Ici j’ai renommé « Prénom » en « Prenom ».
@+
:bonjour:
bebarthMaître des clésJe viens de m’apercevoir dans le second script qu’avec le copier/coller, il y avait 2 fois la variable « i » dans 2 boucles « for » imbriquées !!!
Et ça fonctionne quand même… :Euuuh:
=> En fait j’ai modifié le script juste avant de le poster. Dans la version d’origine les boucles n’étaient pas imbriquées. Dans la version avec 2 variables « i », ça fonctionne uniquement s’il n’y a que les 2 fichiers ouverts ou si ce sont les 2 derniers.
Je pense qu’il vaut mieux changer le nom d’une de ces variables. Ici, j’ai conservé la variable « i » identique au premier script et j’ai remplacé l’autre par « j » :Code:// Insertion page active du fichier ouvert
var Chemin = this.path;
var nomDocument = this.documentFileName;
var d = app.activeDocs;
for (var j=0; j < d.length; j++) {
if (j!=0 && d[j].documentFileName==nomDocument) {
var lautreChemin=d[j-1].path;
var laPage=d[j-1].pageNum;
for (var i=this.numPages-2; i>=0; i–) {
// Pour une page blanche après la dernière page : var i=this.numPages-1;
// Pour une page blanche avant la première page : i>=-1;
this.insertPages ({
nPage: i,
cPath: lautreChemin,
nStart: laPage
});
}
// Enregitrement
this.saveAs({
cPath: Chemin,
bPromptToOverwrite: false,
});
break;
}
}@+
:bonjour:
bebarthMaître des clésbonjour,
Voici deux scripts.
Le premier insert la première page d’un fichier PageBlanche.pdf qui se trouve dans le même répertoire que le fichier à traiter.
Les variantes sont indiquées dans le script. L’enregistrement est prévu, mais il suffit de retirer les lignes si on n’en veut pas !Code:// Insertion page #1 d’un fichier
var Chemin = this.path;
var nomDocument = this.documentFileName;
var repertoire = Chemin.substring(0,Chemin.length-nomDocument.length);
for (var i=this.numPages-2; i>=0; i–) {
// Pour une page blanche après la dernière page : var i=this.numPages-1;
// Pour une page blanche avant la première page : i>=-1;
this.insertPages ({
nPage: i,
cPath: repertoire+ »PageBlanche.pdf »,
nStart: 0
});
}
// Enregitrement
this.saveAs({
cPath: Chemin,
bPromptToOverwrite: false,
});Ce second script insert la page active du fichier précédemment ouvert.
Si 15 fichiers sont ouverts et que le fichier à traiter est le dixième, la page insérée sera la page active du neuvième fichier. Est-ce clair ???
Si ça ne l’est pas, le plus simple est de n’ouvrir que les 2 fichiers nécessaires. En premier le fichier où il y a la page à insérer (afficher la page), puis le fichier à traiter avant de lancer l’action.Code:// Insertion page active du fichier ouvert
var Chemin = this.path;
var nomDocument = this.documentFileName;
var d = app.activeDocs;
for (var i=0; i < d.length; i++) {
if (i!=0 && d.documentFileName==nomDocument) {
var lautreChemin=d[i-1].path;
var laPage=d[i-1].pageNum;
for (var i=this.numPages-2; i>=0; i–) {
// Pour une page blanche après la dernière page : var i=this.numPages-1;
// Pour une page blanche avant la première page : i>=-1;
this.insertPages ({
nPage: i,
cPath: lautreChemin,
nStart: laPage
});
}
// Enregitrement
this.saveAs({
cPath: Chemin,
bPromptToOverwrite: false,
});
break;
}
}@+
:bonjour:
bebarthMaître des clésbonjour Merlin,
Ou bien dans le menu local du panneau de navigation « Contenu ».
En 2 mots, il sert à quoi ce panneau ? On y voit tous les éléments contenus dans le pdf mais on peut faire quoi avec ?
Merci.
@+
:bonjour:
bebarthMaître des clésComment a-t-on cette fenêtre ?
Peut-on désinstaller uniquement « certaines » polices ??? et non toutes sauf…
@+
:bonjour:
bebarthMaître des clésbonjour,
Voici :
https://we.tl/t-b3T12PT5H6
Je ne comprends pas pourquoi le fichier est si gros…
@+
:bonjour:
bebarthMaître des clésbonjour,
Si je comprend bien, le meilleur moyen serait de refaire ces 2 formulaires avec mes propres champs.
Ça, ce n’est pas ce qu’il y a de plus compliqué et de plus long à faire… Certaines fois on cherche la complexité pour pas grand chose.
https://we.tl/t-wzG52maJow
Voilà ! Je te laisse le soin de renommer les champs identiques comme je l’ai fait pour les champs « NOM ».
Peut-être quelques ajustements de position des champs.
@+
:bonjour:25 février 2019 à 10:46 en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65412
bebarthMaître des clésbonjour,
Voici le fichier avec le script modifié qui indique les bureaux qui ne sont pas cochés.
Je préfère indiquer comme cela plutôt que « tous… sauf » car ça me parait étrange comme formulation quand le « sauf » devient plus important que le reste !
Il faut peut-être revoir le texte de l’indication donnée dans ce champ… (bureaux cochés ???).Pour cet étage, il n’y avait pas 40 bureaux mais 33. C’est pour cela que j’ai mis l’instruction « try… catch » qui évite que le script ne s’arrête si le bureau n’existe pas !
@+
:bonjour:23 février 2019 à 10:41 en réponse à : Les champs ne se classent pas automatiquement (tabulations) #65416
bebarthMaître des clésbonjour,
Ta question m’a fait m’apercevoir que l’outil qui permettait de cliquer sur les champs pour leur affecter un ordre de tabulation a disparu d’Acrobat Pro.
Ça me rassure, car les dernières fois que j’ai voulu utiliser cette outil après ne pas l’avoir utilisé pendant des années, je me suis demandé si je ne l’avais pas imaginé…
Si tu as des besoins particuliers en ordre de tabulation le mieux est de commencer par un de ces deux modes automatiques pour faire le plus gros, et ensuite de repasser en « manuel » pour peaufiner.
C’est également la meilleure façon que j’ai trouvé pour pour ordonner les champs, sachant que je crois qu’il est même impossible de le faire par JavaScript.
@+
:bonjour:
bebarthMaître des clés…et si tu ne veux pas partager ton fichier avec tout le monde, tu envoies le lien en MP.
@+
:bonjour:
bebarthMaître des clés…mais la position restera quand même centrée verticalement, et pas sûr que la position horizontale soit exacte non plus par rapport à l’autocollant !!!
@+
:bonjour:22 février 2019 à 16:28 en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65410
bebarthMaître des clésApparemment tous les bureaux n’existent pas.
Voici ce que j’ai fait. Tu me dis !
@+
:bonjour:
bebarthMaître des clésVoici une version améliorée qui te permet d’indiquer le nombre de fois qu’il faut dupliquer chaque page.
Je ne vois pas bien l’utilité du script ! J’espère que ce n’est pas uniquement pour imprimer car ça peut se régler via le gestionnaire d’impression… non ?
@+
:bonjour:
bebarthMaître des clésbonjour,
Mon fichier est trop lourd pour être transmis à priori.
…une copie d’écran alors !
@+
:bonjour:22 février 2019 à 09:35 en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65409
bebarthMaître des clésbonjour,
Pour chaque bureau on doit avoir soit la coche soit la croix rouge ou aucune des 2 cases peut ne pas être cochée ?
Je n’ai pas vérifié, mais tous les bureaux 701 à 740 existent ???
@+
:bonjour:
bebarthMaître des clésbonjour,
Ça marche aussi pour 3 pages ? Une action dans Acrobat ?
Tu veux dire 3 fois de suite la même page ?
Pour cela il faut modifier un peu le script. Tu me dis…
@+
:bonjour:
bebarthMaître des clésbonjour,
On ne peut pas dupliquer une page d’un fichier .pdf, par contre on peut créer un nouveau fichier où l’on insert deux fois de suite la même page !
Voici une action qui fait cela.
@+
:bonjour:21 février 2019 à 18:57 en réponse à : Exporter le nom de plusieurs cases-à-cocher dans un champ texte #65407
bebarthMaître des clésbonjour,
Attention aux noms des champs utilisés dans les scripts. Ils ne doivent contenir ni espaces ni caractères spéciaux.
…et dans tons cas, toutes les cases à cocher doivent se dénommer de la même façon à l’indice près (et non « Case a cocher1 », « case à cocher2),…).
Voici ton fichier retouché.
@+
bebarthMaître des clésBonjour,
Ce serait plus pratique si tu pouvais partager un fichier !
@+
:bonjour:
bebarthMaître des clés…à moins d’essayer de mettre « app.activeDocs » en « trustedFunction », mais je n’ai pas le temps d’essayer aujourd’hui, et en plus j’ai mal au crâne ! :geek:
@+
:bonjour:
bebarthMaître des clés…et je viens de penser que les documents devraient être « disclosed » pour pouvoir copier les valeurs de l’un à l’autre et apparemment on ne peut pas rajouter le script, à part peut-être sur le document original LiveCycle Designer…
@+
:bonjour:
bebarthMaître des clésAcrobat Pro ne permet même pas d’accéder aux noms des champs.
???
Pourtant je connais assez bien une personne qui a écris un script qui liste le nom des champs… :geek:
…et ça fonctionne !
@+
:bonjour:
bebarthMaître des clés???
Ça demande un peu de travail de recherche parce que les champs n’ont pas les mêmes noms, mais sinon on peu bien remplir le deuxième formulaire avec les données du premier, non ?
Me trompé-je ??? (beurk !)
@+
:bonjour:
bebarthMaître des clés…remarque, si on ne peut pas fusionner les documents, il n’y a pas de raison que ce soit interdit !!!
On pourrait créer une action qui reprend les valeurs des champs d’un des formulaires pour remplir l’autre !
@+
:bonjour:
bebarthMaître des clésbonjour,
Répliquer la saisie des champs, à première vue c’est faisable, mais a-t-on le droit ?
On ne pourra pas fusionner les 2 documents car il ont été généré par Adobe LiveCycle Designer.
C’est pour l’instant ma seule question…
@+
:bonjour:
bebarthMaître des clés…normal que ça ne marche pas, ici il faut écrire :
Code:indice = parseInt(str.substring(n+7));str.substring donne la position du premier caractère (n), et +1 pour le caractère suivant.
Pour « mEnfant » il faut rajouter 7 caractères.
@+
:bonjour:
bebarthMaître des clésbonjour,
Il faut que tu récupères « l’indice » de ton champ avec :Code:var str = this.event.target.name;
var n = str.indexOf(« _ »);
indice = parseInt(str.substring(n+1));Ici, « indice » représente la valeur numérique de tous les caractères situés après « _ » dans le nom du champ.
Si ton champ se nome « reditTypeAutreCredit_0 » indice vaut 0, et tu pourras écrire :Code:this.getField(« nature_credit_ »+(indice+1)).value = this.getField(« CreditTypeAutreCredit_ »+indice).value;
au lieu de
this.getField(« nature_credit_1 »).value = this.getField(« CreditTypeAutreCredit_0 »).value;etc.
…si j’ai bien compris ce que tu veux faire.
Et quand on commence à avoir x fois le même script pour le même calcul il est préférable de le mettre en fonction dans un script de document. On ne l’écrit qu’une seule fois et s’il y a une modification, on ne la fait qu’une fois.
Il existe plusieurs exemples sur le forum, dont celui-ci :
https://abracadabrapdf.net/forum/index.php/topic,3594.0.html
@+
:bonjour:
bebarthMaître des clésbonjour,
…lorsque je clique sur le bouton valider, le contrôle se fait correctement. Lorsque le champ en question est vide j’ai bien un message d’erreur mais lorsque je clique sur OK j’ai la fenêtre pour envoyer le document par mail qui apparaît.
Vu ce que tu nous dis, il semble que tu as bien utilisé l’instruction « if » pour indiquer ta condition, et bien il faut rajouter « else » pour indiquer une instruction si cette condition n’est pas respectée…
Il faut séparer les instructions si la condition est respectée et celles si elle ne l’est pas.Code:if (tous les champs ne sont pas remplis) {
message d’erreur;
} else {
envoi du formulaire;
}@+
:bonjour:15 février 2019 à 08:33 en réponse à : Formulaire – Masquer les informations selon la réponse #65267
bebarthMaître des clésbonjour,
Il y a plusieurs erreurs dans ton script.
Lorsque tu écris this.event.target.isBoxChecked(3), 3 n’est pas pas le non du champ mais le numéro du widget (qui est un numéro d’indice pour les champs de même nom).
Ensuite, tu vas regarder l’état du template « page4 » qui n’existe pas ! tu n’as qu’un template « page9 ».
Il faudrait donc écrire (avec les mêmes syntaxes utilisées) :Code:if(this.event.target.isBoxChecked(0)) {
this.getTemplate(« page9 »).hidden = false;
} else {
this.getTemplate(« page9 »).hidden = true;
}Mais je pense que tu vas vite t’apercevoir que ça ne te convient pas !
Lorsque tu affiche ta page, elle se place à la fin. Pour la placer au bon endroit c’est un peu plus compliqué, d’où mon renvoi précédent à ce post :
https://abracadabrapdf.net/forum/index.php/topic,3173.msg18509.html#msg18509
@+
:bonjour:
bebarthMaître des clésOK, mais si on compare avec les règles de l’Anglais il n’y a pas photo !
parce qu’il y a des règles en anglais ??? :geek:
…pareil pour endsWith, ça simplifie la vie certaines fois !
Il y avait également « includes », mais cette méthode ne fonctionne apparemment plus (du moins je n’ai jamais réussi).
https://www.w3schools.com/jsref/jsref_includes.asp
@+
:bonjour:13 février 2019 à 21:37 en réponse à : Formulaire – Masquer les informations selon la réponse #65264
bebarthMaître des clésbonsoir,
Regarde ce post :
https://abracadabrapdf.net/forum/index.php/topic,3173.msg18509.html#msg18509
et ces 2 exemples :
https://abracadabrapdf.net/forum/index.php?action=dlattach;topic=3173.0;attach=2919
https://abracadabrapdf.net/forum/index.php?action=dlattach;topic=3173.0;attach=2928Est-ce que ça te conviendrait ??
@+
:bonjour:12 février 2019 à 15:29 en réponse à : Bloquer la navigation via touche clavier et molette souris #65275
bebarthMaître des clésbonjour,
On peut créer un script d’ouverture de page qui interdit l’accès si les champs de la page précédente ne sont pas tous remplis (voir exemple).
Pour les champs, on pourrait écrire également un script pour faire un retour si le champ précédent n’ai pas rempli, mais est-ce vraiment « user-friendly » ?
En tout cas, c’est faisable. La complexité se fera en fonction de la dénomination des champs.
@+
:bonjour:P.S. : Je parle pour Adobe Acrobat Pro, je ne sais pas si on peut faire ça à partir d’InDesign…
12 février 2019 à 14:39 en réponse à : Formulaire – Masquer les informations selon la réponse #65262
bebarthMaître des clésbonjour,
Dans ton cas, il faut que tu crées 2 champs texte avec un fond blanc qui viendront masquer tes tableaux. Dans mon exemple ils ne sont pas blancs, mais c’est pour mieux te montrer…
Ensuite tu vas dans les propriétés du bouton OUI et tu suis la copie d’écran (ici tu coches « masquer »).
Enfin tu vas dans les propriétés du bouton NON et tu fais la même chose, sauf que tu coches « afficher ».
Est-ce clair pour toi ?
@+
:bonjour:
bebarthMaître des clésParce-que certaines règles atteignent quand même des sommets d’absurdité :
– Certains de ces adjectifs numéraux cardinaux peuvent avoir une valeur ordinale pour exprimer l’année, le jour, les parties d’un ouvrage, le numéro d’une rue, le nom d’un souverain… ils restent alors invariables :
– un est invariable en nombre mais pas en genre : cinquante et une pagesCes règles sont peut-être un peu compliquées mais personnellement ne me paraissent pas absurdes (peut-être y en a-t-il d’autres qui le sont…).
Si l’on parle des tomes un, ou des numéros un des rues, je ne vois pas pourquoi on mettrait un « s » à un !
Idem pour cinquante et une pages qui signifie cinquante plus une… pages !
Bien qu’adjectif numéral cardinal, « un » qualifie l’unité de base.
Voici un fichier avec la nouvelle orthographe. j’ai juste rajouté des traits d’union où il en fallait pour garder un script commun.
Il aurait fallu revoir un peu le script pour en faire un spécifique…
@+
:bonjour:
bebarthMaître des clésbojour,
Où as-tu vu ça ?
A plusieurs endroits :
https://leconjugueur.lefigaro.fr/frlesnombres.php
https://www.lalanguefrancaise.com/orthographe/guide-complet-nouvelle-orthographe/
https://www.cyberentraide.com/nouvelle-orthographe-nombres-lettres/
…La recommandation de 1990 n’était pas obligatoire, je ne sais pas ce qu’il en est de la nouvelle orthographe !
@+
:bonjour:
bebarthMaître des clésbonjour,
Il faut retirer ou ne pas exécuter les 2 lignes clearItem() du script de document :Code:…
//this.getField(« ListeNiveau1 »).clearItems();
…
//ffille.clearItems();
…@+
:bonjour:
bebarthMaître des clésbonjour,
… mais je vais essayer de reprendre le script total à ma sauce…
J’ai commencé et je suis arrivé à peu près à la même logique qu’Alex, j’ai donc conservé pratiquement toute la partie « fonction » !
Du coup, il y a deux versions : avec et sans monnaie.
Je n’ai pas testé tous les nombres, mais normalement tu devrais pouvoir écrire jusqu’à 999 trillions et des brouettes…. (999 x 1018).
Si tu regardes le script, il est prévu pour beaucoup plus (1064) mais je n’avais pas pensé qu’Acrobat était si limité… :geek:
Merci de me dire s’il y a encore des erreurs.
J’ai vu qu’avec la nouvelle orthographe il fallait mettre des tirets partout, mais tant pis. Quelqu’un d’autre s’en chargera s’il le désire !
@+
:bonjour:
bebarthMaître des clésbonjour,
Ça ne devrait pas être très compliqué à résoudre, mais je vais essayer de reprendre le script total à ma sauce, car j’ai vu d’autres petits soucis comme par exemple on ne dit pas un million euros, mais un million d’euros. Idem pour milliard (même si on ne les a pas :geek: ).
Ça va sûrement être compliqué ce week-end… ce sera certainement en début de semaine prochaine !
@+
:bonjour:7 février 2019 à 14:42 en réponse à : Peut on modifier le script d’un champ de formulaire avec l’outil Actions ? #65255
bebarthMaître des clésc’est vrai qu’a 67 ans j’ai déjà perdu pas mal de neurones :Smiley08:
j’espère pas trop !!! j’y arrive à grands pas !
@+
un autre Bernard
:bonjour:
bebarthMaître des clésMerci de me dire si je suis passé à côté de certaines règles !
@+
:bonjour:
bebarthMaître des clésOn peut peut-être faire des concessions pour ces derniers, mais pour les accords… Je sais que les règles françaises sont ubuesques mais il faut bien les respecter… :mur:
Je pense traiter la chaîne de caractères finale plutôt que chercher à modifier le script d’Alex, sinon il va y avoir un paquet de conditions avec plein d’exceptions !
Alors que dans le résultat final on ne traite que le résultat !!!
@+
:bonjour:7 février 2019 à 10:15 en réponse à : Peut on modifier le script d’un champ de formulaire avec l’outil Actions ? #65253
bebarthMaître des clésbonjour,
Il va falloir être sûr de ton sript et le transformer en unicode pour pouvoir l’insérer dans le script de l’action.
https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/pdf-javascript-et-unicode/
L’utilitaire :
https://abracadabrapdf.net/utilitaires/utilitaires-pdf/abra-txt2unicode-texte-vers-unicode/
Ensuite, voici le script de l’action :Code:var g=this.getField(« nomduchampAmodifier »);
// Tu colles le texte unicode entre les guillemets
var leScript= »u0076u0061u0072u0020u0066u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu006Du005Fu0073u0061u0075u0076u0065u0022u0029u003Bu000Du0076u0061u0072u0020u0061u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0066u0069u0073u0063u0061u006Cu0065u0022u0029u003Bu000Du0076u0061u0072u0020u0064u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0044u0061u0074u0065u005Fu0072u0065u0063u0065u0070u0074u0022u0029u003Bu000Du0076u0061u0072u0020u0065u0020u003Du0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0061u006Eu006Eu0065u0065u005Fu0032u0035u0061u006Eu0073u0022u0029u003Bu000Du0066u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0028u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u006Eu006Fu005Fu0063u006Fu006Eu0074u0072u0022u0029u002Eu0076u0061u006Cu0075u0065u000Du002Bu0020u0022u002Du0022u0020u002Bu0020u0074u0068u0069u0073u002Eu0067u0065u0074u0046u0069u0065u006Cu0064u0028u0022u0063u006Fu006Eu0074u0072u005Fu006Eu006Fu006Du0022u0029u002Eu0076u0061u006Cu0075u0065u0029u002Bu0022u002Du0022u002Bu0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0061u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0031u000Du0064u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0064u0064u002Du006Du006Du002Du0079u0079u0079u0079u002Du0048u0048u003Au004Du004Du0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u003Bu000Du0065u002Eu0076u0061u006Cu0075u0065u0020u003Du0020u0075u0074u0069u006Cu002Eu0070u0072u0069u006Eu0074u0064u0028u0022u0079u0079u0079u0079u0022u002Cu0020u006Eu0065u0077u0020u0044u0061u0074u0065u0028u0029u0029u002Du0032u0036″;
g.setAction(« Calculate », leScript); // pour un script de calcul
this.saveAs({
cPath: this.path,
bPromptToOverwrite: false,
});…puis tu lances l’action après avoir ajouté tous les fichiers dans la liste. Si tu en as 1000, fait déjà un essai avec quelques uns…
@+
:bonjour:
bebarthMaître des clésbonjour,
Je suis parti sur le principe que le script d’Alex est correct, donc je découpe le nombre en 2 parties : avant et après la virgule et je les envois à la fonction d’Alex séparément puis je les rassemble pour les afficher dans le champ.
Il y a peut-être des lignes inutiles dans le script d’Alex qui pourraient être retirée pour cette application, mais je n’ai pas regardé.
Dans les scripts de document, « init » n’est pas une fonction, mais un script lu à l’ouverture du document pour initialiser les différentes variables. Une fonction est lue lorsqu’elle est appelée.
@+
:bonjour:7 février 2019 à 07:54 en réponse à : Peut on modifier le script d’un champ de formulaire avec l’outil Actions ? #65251
bebarthMaître des clésbonjour,
Je dois modifier le script d’un champ de formulaire pdf sur plus de 1000 fichiers.
C’est selon ce que tu entends par le mot « modifier » que cela dépend !
On ne peut pas récupérer le script d’un champ, mais on peut lui en attribuer un :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_setAction2bc-17&rhtocid=_6_1_8_31_2_16
@+
:bonjour:
bebarthMaître des clés???? comme ça je ne vois pas d’où vient le problème.
pour la console, tu tapes ctr J. Une fenêtre va s’ouvrir avec (ou pas) des infos.
@+
:bonjour:
bebarthMaître des clésvoilà !
https://we.tl/t-9tEVvjvb1P
@+
:bonjour:
bebarthMaître des clés…effectivement, je n’ai pas du tout regardé ça ! J’ai pris le script d’Alex tel quel.
J’ai bien pensé à mettre euro et centime au singulier pour un, mais pas le reste.
J’essaie de regarder ça demain.
@+
:bonjour: -
AuteurRéponses
