Toutes mes réponses sur les forums
-
AuteurRéponses
-
26 octobre 2018 à 17:32 en réponse à : Renseigner la valeur par défaut d’un champ de texte avec un script #64711bebarthMaître des clés
…avec un F majuscule, ça devrait mieux marcher !!!
ct.textFont=policeEcriture;
@+
:bonjour:bebarthMaître des clésSi c’est une protection à l’ouverture par mot de passe, ça se trouve dans les propriétés du document.
Il faudra enregistrer le fichier manuellement avec un mot de passe différent pour chaque personne.Si c’est avec un certificat, je ne m’y connais pas assez. Merlin pourra certainement te répondre.
@+
:bonjour:bebarthMaître des clésA ce moment là, tu écris this.pageNum–; contrairement à la page suivante qui est this.pageNum++;
@+
:bonjour:bebarthMaître des clésbonjour,
La dernière page lue est bien celle où tu te trouves lorsque le script est lancé, non ?
Donc var cettePage=this.pageNum; et ensuite tu retournes à ladite page avec this.pageNum=cettePage;
@+
:bonjour:26 octobre 2018 à 07:39 en réponse à : Renseigner la valeur par défaut d’un champ de texte avec un script #64708bebarthMaître des clésbonjour,
Il faut juste écrire :Code:zt.textfont = “Verdana”;@+
:bonjour:25 octobre 2018 à 16:13 en réponse à : Renseigner la valeur par défaut d’un champ de texte avec un script #64704bebarthMaître des clésbonjour,
Oui c’est possible !
Ai-je répondu à ta question ? :geek:Il faut écrire this.getField(“xxx”).defaultValue =…
@+
:bonjour:bebarthMaître des clésbonjour,
Je ne connais pas A-PDF, mais dans un post récent il est dit qu’il ne fonctionne pas avec Windows 10 !… j’utilisais le logiciel A-PDF Automail qui me permettait d’envoyer des factures PDF directement par email.
…
Seulement le logiciel date de 2010 et aucune mise à jour n’a été fait depuis. Il n’est donc plus compatible avec Windows 10. Impossible de le faire fonctionner.D’ailleurs, sur la page du lien il est indiqué “Requirement: Windows 2000/XP/Vista/7”.
Faudrait donc essayer avant d’acheter…
@+
:bonjour:25 octobre 2018 à 10:30 en réponse à : Lier deux menus déroulants dans un formulaire pdf codé en Javascript #64701bebarthMaître des clésbonjour,
J’ai lu et relu le script sans ne rien trouver ! :doute:
Puis vint la lumière. :idee:
D’après toi, quand est lancée la fonction “Initialisation” dans ton document ??? hé bien : jamais…
Dans son document original, Alex a mis un script d’ouverture de page.
A mon avis, ce script est bien compliqué pour ce que tu veux faire. Je pense qu’il est très bien lorsqu’on a beaucoup d’arrière arrière… petites filles, mais dans ton cas il y a un peu plus simple !
Je te joins un fichier où il y a juste un script de validation du champ “Thematique”, que je conseille d’adapter si l’on a qu’un seul niveau mère-fille !
@+
:bonjour:17 octobre 2018 à 06:16 en réponse à : JavaScript pour menu déroulant qui communique avec cases à cocher #64685bebarthMaître des clésbonjour,
Par exemple (voir pièce-jointe pour comprendre): si la valeur du menu déroulant est: 1 (cocher A et C), nous puissions cocher
UNIQUEMENT A et C. Les autres cases ne doivent pas pouvoir être cochées.Juste une question : pour l’utilisateur, ne serait-il pas plus compréhensible de montrer/masquer les cases qu’il peut cocher plutôt qu’il se demande si c’est normal (ou pas) qu’il ne puisse pas cocher une case !!!
Ce qui donnerait, en partant du script de Merlin :Code:this.resetForm(“A”);
this.resetForm(“C”);
this.resetForm(“B”);
this.resetForm(“D”);
//
if (event.value == “1”) {
this.getField(“A”).display = display.hidden;
this.getField(“B”).display = display.visible;
this.getField(“C”).display = display.hidden;
this.getField(“D”).display = display.visible;
}
else if (event.value == “2”) {
this.getField(“A”).display = display.visible;
this.getField(“B”).display = display.hidden;
this.getField(“C”).display = display.hidden;
this.getField(“D”).display = display.hidden;
}
else if (event.value == “3”) {
this.getField(“A”).display = display.hidden;
this.getField(“B”).display = display.visible;
this.getField(“C”).display = display.hidden;
this.getField(“D”).display = display.visible;
}
else {
this.getField(“A”).display = display.visible;
this.getField(“B”).display = display.visible;
this.getField(“C”).display = display.visible;
this.getField(“D”).display = display.visible;
}Par contre, il faut retirer les cases qui ne sont pas des champs !
@+
:bonjour:14 octobre 2018 à 15:24 en réponse à : Autoriser d’aller à la page suivante si un champ est rempli #64679bebarthMaître des clésbonjour,
A mettre en script d’action champ désactivé :Code:if (event.value == “” || event.value == Null) {
app.alert(“Merci d’indiquer votre nom.”,3);
this.event.target.setFocus();
} else {
this.pageNum+=1;
}@+
:bonjour:13 octobre 2018 à 05:17 en réponse à : Lecture DES positions d’un bouton radio multiple (dupliqué) #64677bebarthMaître des clésLe plus important est que tu n’aies rien de grave !
Ça c’est toujours ce qu’on dit mais ça fait chier aussi pour le matériel après… :geek:
Bon week-end.
:bonjour:12 octobre 2018 à 17:23 en réponse à : Lecture DES positions d’un bouton radio multiple (dupliqué) #64675bebarthMaître des clésJe viens de relire la page. Je l’avais déjà lu hier mais n’avais pas compris à quoi correspondait “widget” !!!!
Maintenant, c’est effectivement plus clair.
Par contre, je suis complètement passé à côté de l’exemple, sinon ça m’aurait peut-être mis la puce à l’oreille.
Merci encore.
@+
:bonjour:12 octobre 2018 à 16:56 en réponse à : Lecture DES positions d’un bouton radio multiple (dupliqué) #64674bebarthMaître des clésMerci Merlin,
Je suis vraiment passé à côté ! J’avais essayé de mettre des indexes comme pour les tables…
Heureusement que tu as trouvé, parce que je ne pense pas qu’il y aurait eu beaucoup d’autres personnes capables d’y arriver.
Je vais faire une pause JavaScript ce weekend pour mieux reprendre lundi !
Ce sera peinture pour moi.
Bon weekend.
@+
:bonjour:11 octobre 2018 à 12:38 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64522bebarthMaître des clésbonjour,
Effectivement, il vaut mieux éviter les caractères spéciaux dans les noms de fichiers.
Il y a quelques temps, j’avais du écrire quelques ligne qui tenait compte de ces caractères dans un script qui enregistrait le fichier avec les noms et prénoms des patients. Lorsqu’on regarde la longueur du chemin (path), elle est différente de celle qu’on pensait. Il faut rajouter 1 à chaque caractère spécial. Ce qui est très différent lorsqu’on veut indiquer le chemin d’un répertoire… sinon il est signifié comme inexistant !!!La console me dit :Emplacement /C/Users/coordo/AppData/Local/Temp/Temp2_Impression de pages pre_cises_BB1.zip/Impression de pages pre?ücises_BB1/Imprimer ces Fichiers/Fichier 1.pdf incorrect.
Quand je regarde le chemin du Fichier 1.pdf, j’ai l’impression qu’il est encore dans le fichier .zip
Le chemin à l’air bien compliqué… Ne pourrais-tu pas essayer de créer un répertoire simple avec des caractères standard sur le bureau, au moins pour voir si ça fonctionne !
@+
:bonjour:bebarthMaître des clés…voici le fichier _BB0, car ça ne passait pas en une seule fois !
@+
:bonjour:bebarthMaître des clésbonjour,
il y a environ 50 champs par ligne multipliés par 12 lignes, ça fait 600 champs à renommer manuellement…
Il y a même 58 champs par ligne… on est plus près des 700 champs à remplir manuellement !
Lorsque je remplace “var laTable = this.event.target.value;” par “var laTable = event.value;”, ça me donne l’intitulé et non la valeur d’exportation, donc ça ne fonctionne pas non plus !
Il faut donc aller relire la valeur correspondant à l’intitulé, ce qui donne :
Code:…
var designation = event.value;
for (var i=0; i < f.numItems; i++) {
if (designation==f.getItemAt(i,false)) {
var laTable=f.getItemAt(i,true);
break;
} else {
var laTable=”Autre”;//si l’utilisateur rentre une pièce manuellement
}
}
…Normalement tout fonctionne correctement maintenant (une petite vérif quand même…).
Je joins les fichiers que j’ai utilisé. Le fichier _BB0 correspond à une seule ligne (qu’il faut réaligner) avec le nom des champs sans indice, ce qui permet à ne pas avoir à renommer tous les champs si on veut un fichier avec plus ou moins de 12 lignes (il faudra indiquer la valeur exacte dans le script de document “lesTables”).
@+
:bonjour:bebarthMaître des clésil y a environ 50 champs par ligne multipliés par 12 lignes, ça fait 600 champs à renommer manuellement…
Lorsque je remplace “var laTable = this.event.target.value;” par “var laTable = event.value;”, ça me donne l’intitulé et non la valeur d’exportation, donc ça ne fonctionne pas non plus !
Je vais regarder ça !
@+
:bonjour:bebarthMaître des clésJe t’ai fait un petit fichier.
@+
:bonjour:bebarthMaître des clésMerci Merlin,
Si on place la fonction “pieces();” dans chaque liste déroulante et pas seulement dans la première.
Tu penses bien que j’ai essayé x fois avant de partager le fichier… et ce n’est pas que ça fonctionne pas du tout, mais ça ne fonctionne pas correctement.
Dans la copie d’écran, il devrait y avoir des cases sur la droite de la ligne Salle d’Eau.
Dans ce que j’ai pu observer, après l’ouverture du document, la première ligne où l’on choisi la pièce fonctionne bien, ce sont les lignes suivantes qui ne fonctionnent pas très bien.Pourquoi lorsque l’on place le script en action souris relâchée, il se lance alors que le bouton de souris est toujours appuyé ???
N’y aurait-il pas une commande “event” (willCommit, change, rc…) qui pourrait pallier ça ??? Comme je l’ai dit, je ne comprend pas grand chose à ces événements ! D’ailleurs, si tu connais un site qui pourrait m’éclairer, je suis preneur.
@+
:bonjour:bebarthMaître des clésbonjour,
Il faut utiliser la propriété “display” d’un champ :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_properties.htm%23TOC_displaybc-19&rhtocid=_6_1_8_31_1_18
Si l’image est contenue dans un bouton, on affiche/masque le bouton.
Si c’est une image directement dans le fichier .pdf, on crée un masque que l’on affiche/masque.
@+
:bonjour:bebarthMaître des clésCe sont des fonctions qui appellent un script de document. Tu devrais ne pas avoir de mal à les trouver !
Ça évite à devoir modifier x fois un script…
@+
:bonjour:bebarthMaître des clésbonjour,
Moi j’ai pas mal avancé sur le sujet, mais je bloque depuis un moment !
Ci-joint un fichier avec 5 lignes que je croyais terminé jusqu’à ce que je duplique la fonction du champ liste déroulante…
Juste avec la première ligne ça fonctionne parfaitement, dès que j’applique la fonction aux ligne suivantes, ça ne fonctionne plus.
Je pense que c’est parce que la fonction est en script de calcul. Il faudrait la mettre en script d’action pour qu’elle ne s’applique qu’à la liste choisie, mais lorsque je la place en souris relâchée, la valeur de la liste n’est pas la bonne et le script se lance même avant qu’on ne relâche le bouton de la souris !!!
Je sais que j’ai toujours eu un problème de compréhension avec les événements (events). Peut-être que Merlin pourra nous éclairer…
@+
:bonjour:bebarthMaître des clésLa colonne “Autre” de ton fichier excel s’applique à TOUTES les autres pièces, (salon, chambres, cellier, wc…) ???
@+
:bonjour:bebarthMaître des clésbonjour,
…et ensuite on adaptera le fichier d’Alex.
En fin de compte, il n’y a pas à faire d’adaptation de script d’Alex !
Je t’ai ajouté la fenêtre de sélection proposée par Alex, mais elle ne me semble intéressante que si lors de l’impression on n’a pas de fenêtre à valider, sinon on peut choisir l’imprimante directement via cette fenêtre !
J’ai donc également modifié le fichier .js pour maintenant avoir la fenêtre d’impression uniquement pour le premier fichier imprimer. Les préférences de l’imprimante restent identiques pour les fichiers suivants.
A toi maintenant d’essayer de mettre tout ça au bon endroit, il n’y a pas de raison pour que ça ne fonctionne pas.
@+
:bonjour:bebarthMaître des clésbonjour,
Dans ton fichier, j’ai coché la case “Valider la valeur…” de la liste déroulante et ajouté un léger fond aux champ, cela permet de voir ce qu’il y a à remplir.
Si tu pouvais faire un tableau qui indique les champs visibles en fonction de la pièce sélectionnée, ça avancerait pour voir comment nommer les champ d’une manière pratique !
@+
:bonjour:bebarthMaître des clésCe serait une bonne idée, mais de mémoire on peut afficher/masque une page modèle, mais pas une page dupliquée !
Me trompe-je ??? :geek:
@+
:bonjour:bebarthMaître des clésbonjour,
Attention, diplay and hidden ne signifient pas coché et décoché !!!
La case casepiece2 peut être cochée tout en n’étant pas visible… Que faut-il faire des champs liés à cette case ?
Tu parles de 12 lignes, si ces 12 lignes sont actives et que tu décoches pour rendre invisible une ligne, que doit-il se passer pour les lignes suivantes ??? Elles sont rendues invisibles également ???
@+
:bonjour:bebarthMaître des clésbonsoir,
Mais je ne trouve pas où je pourrait mettre ca dans une case a cocher
Ce n’est pas un script de calcul sur la case 2 qu’il faut mais un script d’action lorsque tu coche la case 1…
Je n’ai pas eu le temps d’étudier ton script et de voir les cases à montrer ou cacher mais il est certain que pour le simplifier il faudra revoir le nom des champs…
@+
:bonjour:bebarthMaître des clésbonsoir,
J’avais fait simple : grâce à un petit JavaScript le bouton “Supprimer cette page” ne s’affiche que sur la dernière page et ne supprime que la dernière page, donc quand on en re-génère une autre la numérotation des champs vient forcément se placer à la suite.
C’est effectivement une solution si on ne peut supprimer que la dernière page par modèle, sinon je proposerais de mettre en viariables toutes les valeurs des champs des pages modèles non supprimées, de supprimer toutes ces pages, de les ré-insérer et de réintégrer les valeurs des champs.
Par contre, pour faciliter le script, il serait bon de repenser les noms des champs et là, je ne sais pas ce qu’il est permis de faire (romain05 ???).
@+
:bonjour:bebarthMaître des clésbonsoir,
J’ai essayé le fichier d’Alex, ça a l’air bien aussi parce que ça ouvre la fenêtre où on peut sélectionner l’imprimante, le recto-verso etc (mais avec les numéros de page déjà inscrits). Mais je ne sais pas comment adapter ce script pour choisir les pages que je veux, et où préciser les fichiers. En fait je ne sais pas si les deux scripts (impression de pages précises et impression d’Alex sont liés l’un à l’autre ou si ce sont deux scripts indépendants…). Je suis un peu perdu, sorry….
Je pense qu’on devrait procéder par étape.
Essaie d’en un premier temps d’installer la console pour Adobe Reader, et de voir si le plugin d’impression est indiqué comme installé, puis on verra pour faire fonctionner le script et ensuite on adaptera le fichier d’Alex.
Si on met le fichier d’Alex tel que et que tu as 40 fichier à imprimer, tu auras 40 fois la boite de dialogue impression à valider.
@+
:bonjour:bebarthMaître des clésPour installer la console, il faut placer le fichier abracadabraConsole.js qu’a fourni Merlin dan sa réponse un peu plus haut dans le répertoire JavaScript d’Adobe Reader.
Ensuite, tu devrais avoir accès à la console en tapant Ctrl J dans Adobe Reader.Comme ses grand-frères, Acrobat Reader est équipé d’une Console JavaScript, mais elle est inaccessible via l’interface.
L’utilitaire (gratuit) ci-joint permet de la faire apparaitre en ajoutant un item dans le menu Edition, il s’installe dans le sous-dossier “JavaScripts” d’Acrobat Reader.
…Comment fonctionne-t-il ? Il reconnait directement les imprimantes configurées dans l’ordinateur ? Et le recto-verso est-il possible ? (j’espère que oui car je dois vraiment imprimer mon fichier en RV…).
Je ne pense pas que ce sera possible d’imprimer l’intégralité en Ro/Vo. Le script lance l’impression de x pages de chaque fichier donc le Ro/Vo ne peut fonctionner sur l’intégralité. Il faudrait créer un nouveau fichier avec toutes les page à imprimer, mais ce n’est pas possible avec Adobe Reader.
Et que signifient les boutons ‘impression 1’, ‘impression 2’, ‘impression 3’ etc… ?
Ce sont 3 boutons qui génèrent des impressions différentes. Il faudrait adapter le sript fourni à un de ces bouton.
@+
:bonjour:bebarthMaître des clésbonjour,
As-tu installé la console ? Est-ce qu’elle indique le message “Le plugin d’impression “ImpressionPerso” est actif.” à l’ouverture d’Adobe Reader ?
Peux-tu faire un essai en créant un répertoire sur le bureau et y placer le fichier + le dossier.
Au sujet de l’imprimante, je n’ai pas retrouvé le post, mais Alex avait fourni un fichier où on peut sélectionner l’imprimante à utiliser (ci-joint).
@+
:bonjour:bebarthMaître des clésbonjour,
je n’ai pas eu le temps de regarder et je ne pense pas que je le trouverai ce weekend (le temps).
Je vais essayer en début de semaine prochaine…
Si tu dois supprimer et rajouter des pièces, et ne le faire qu’une seule fois, je te conseille donc d’ajouter la nouvelle pièce avant de retirer l’autre. Le numéro indiqué par le préfixe des champs de cette nouvelle page sera forcément supérieur aux autres… mais ça ce n’est valable qu’une fois !
@+
:bonjour:bebarthMaître des clésbonjour,
Voici ma proposition : Un script de calcul pour le champ TOTALCode:if (this.getField(“Tarif”).value != “Off”) {
if (this.getField(“Tarif”).value==1 || this.getField(“Tarif”).value==3) {
var prix = 130;
} else {
var prix = 150;
}
} else {
var prix = 0;
this.getField(“reduc”).checkThisBox(0,false);
}
if (this.getField(“reduc”).value != “Off”) {
var reduction = prix*0.1;
} else {
var reduction = 0;
}
if (prix !=0) {
this.event.target.value = prix-reduction+”,00 u20AC”;
} else {
this.event.target.value = “”;
}et un autre script d’action pour ne pouvoir cocher la case réduction que si une case est cochée ;
Code:if (this.getField(“Tarif”).value != “Off”) {
this.getField(“reduc”).checkThisBox(0,true);
} else {
this.getField(“reduc”).checkThisBox(0,false);
}@+
:bonjour:bebarthMaître des clés…en réalité, la nouvelle page ne se rajoute pas en page 4, mais avant les 3 dernières pages.
Ce qui se passe ensuite reste identique à ce que j’ai dis précédemment.
Le problème est que l’on ne peut pas modifier le nom d’un champ ! Il faut donc trouver une autre solution.
On pourrait soit supprimer tous les champs de la page et les re-créer avec un nouveau nom de champ dont le préfixe correspond au numéro de page… ça me paraît un peu compliqué, mais à première vue je ne vois pas comment faire autrement !
Si quelqu’un a une autre idée…
@+
:bonjour:bebarthMaître des clésbonjour,
…et désolé car je n’ai pas beaucoup de temps à consacrer en ce moment !
Des fois, un long discours vaut mieux qu’une vidéo sans les commentaires qui vont biens !
Maintenant j’ai compris.
Lorsque l’on rajoute des pages avec le paramètre bRename: true, le préfixe utilisé est le numéro de la page (…, P4 pour la page 4, P5 pour la page 5,…).
Si tu supprimes la page 5 et que tu rajoutes une page, elle se rajouteen page 4. L’ancienne page 4 devient donc la page 5, mais le préfixe des champs ne change pas et reste donc P4 alors qu’il sera également P4 sur la nouvelle page créée. Les champs des pages 4 et 5 ont donc le même nom et sont donc liés (je suis clair ???).
Il me semble que j’ai déjà traité ce problème. Je vais regarder si je retrouve cet exemple et reviens (j’espère aujourd’hui).
@+
:bonjour:bebarthMaître des clésbonsoir,
Si vous arrivez à trouver pourquoi lorsque une page est supprimé ça créé un doublon, le document ne devrait pas être trop mal par la suite
Désolé, mais ça fait trois fois que je regarde la vidéo et que je teste ton fichier, et je ne trouve pas de doublon en faisant la manip de créer, supprimer et re-créer !
Pour moi ça me parait correct… ou alors je n’ai vraiment pas compris.
Par contre, les noms des champs sur les pages modèles pourraient être plus simples, cela éviterait de les compliquer encore plus quand on les duplique.
@+
:bonjour:2 octobre 2018 à 18:58 en réponse à : Hyperlien texte vers un fichier PDF ou excel. – RÉPONDU #53628bebarthMaître des clésLe seul inconvénient, mineur, c’est qu’en présence de certains types de fichiers, dont les XLSX, Acrobat affiche une alerte “de sécurité” à l’utilisateur, mais pour le coup Adobe a bien fait les choses : cette alerte est explicite et non paniquante pour l’utilisateur final.
As-tu essayé de modifier le paramètre ballowauth ?
@+
:bonjour:2 octobre 2018 à 18:49 en réponse à : Hyperlien texte vers un fichier PDF ou excel. – RÉPONDU #53627bebarthMaître des clésJ’avais essayé exportdataobject mais sans le paramètre nlaunch !
Je vais aller voir à quoi il correspond.
:bravo:2 octobre 2018 à 16:18 en réponse à : Hyperlien texte vers un fichier PDF ou excel. – RÉPONDU #53625bebarthMaître des clésbonjour,
Je suis pas certain que tu puisses ouvrir directement via JavaScript un fichier Excel importé dans Acrbat… On va attendre ce que dit Merlin.
Sinon, tu pourrais afficher le volet des pièces jointes et indiquer par un message le fichier à ouvrir !
@+
:bonjour:2 octobre 2018 à 09:56 en réponse à : Couleur qui change en fonction d’une valeur d’un calcul #64621bebarthMaître des clésbonjour,
Voici le résultat, mais il faut quelques adaptations à ton fichier :- Ne pas mettre de caractère accentué dans le nom des champs.
- Cocher la case “valider immédiatement…” des listes déroulantes.
- Mettre les listes déroulantes au format “Nombre”.
[/list]@+
:bonjour:bebarthMaître des clésBonjour,
Je viens de télécharger ton fichier pour faire un essai et je ne comprends pas ton problème.
J’avoue que je n’y ai pas passé une heure, mais lorsque j’ajoute, je supprime puis re-ajoute une pièce, la page à l’air de se placer au bon endroit.
Je suppose donc que je n’ai pas compris le problème…
@+
:bonjour:29 septembre 2018 à 07:03 en réponse à : Hyperlien texte vers un fichier PDF ou excel. – RÉPONDU #53621bebarthMaître des clésbonjour,
… Car là quand je ferme la PJ ca me ferme tout.
Normalement, quand on ferme la pièce jointe, ça ne ferme pas le fichier original !Lorsque tu ouvres ta pièce jointe, les 2 fichiers sont ouverts ???
@+
:bonjour:bebarthMaître des clésbonjour,
Qu’est-ce qu’un panier pour toi ?
@+
:bonjour:bebarthMaître des clésbonjour,
…comme ça ????
@+
:bonjour:29 septembre 2018 à 06:29 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64511bebarthMaître des clésbonjour,
- Placer tous les fichers à imprimer dans le répertoire “Imprimer ces Fichiers”. Attention, le répertoire “Imprimer ces Fichiers” et le fichier “Imprimer les Fichiers.pdf” doivent se trouver dans le même répertoire.
[/list]
Il faut évidemment les droits d’accès en écriture de ce répertoire, mais il peut être où tu le souhaites.
@+
:bonjour:28 septembre 2018 à 11:11 en réponse à : Bouton d’impression : séquences de pages, et aperçu de la boite de dialogue #56825bebarthMaître des clésbonjour,
Il y a quelques temps et pour un précédent post (https://abracadabrapdf.net/forum/index.php/topic,2801.msg15622.html#msg15622) j’avais rédigé un script dont voici le fichier.
J’espère qu’il t’aidera, sinon dis-moi ce que tu veux exactement faire : imprimer toutes les pages paires ou impaires, ou tout imprimer…
@+
:bonjour:bebarthMaître des clésEncore une fois pas sûr d’avoir été clair et précis.
Je te confirme, je pensais avoir compris la première fois, mais là je ne comprends rien du tout !
@+
:bonjour:bebarthMaître des clésbonsoir,
C’est effectivement possible via JavaScript.
Voici un exemple que j’avais déjà fait il y a quelques temps pour 3 champs.Code:this.getField(“myList”).clearItems();
var l = this.getField(“myList”);
for( i= 0; i< 3; ++i) {
var text=this.getField(“texte.”+).value;
l.insertItemAt(text, “valeur d’exportation”, i);
}Je pense que c’est ce que tu veux faire !
@+
:bonjour:27 septembre 2018 à 13:20 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64509bebarthMaître des clés…ou peut-être jeudi !
j’avais donc raison, nous sommes jeudi !!!
Donc si j’ai bien compris, pas besoin finalement de acrobat pro, on est d’accord ?
Tu as effectivement bien compris.
Mes fichiers sont tous dans le même répertoire…
Il faudras tous les mettre dans le répertoire “Imprimer ces Fichiers” ou me donner le chemin d’un autre répertoire (accessible avec les autorisations d’accès qui vont bien).
@+
:bonjour:26 septembre 2018 à 17:28 en réponse à : Centrer une colonne de texte par rapport au milieu d’une feuille A4 #64578bebarthMaître des clésMerci Merlin, mais pas si bas que ça !!!
En fait, à l’origine, je voulais également généré un fichier avec toutes les pages en A4 avant d’imprimer, mais pour une raison que je ne comprend pas, lorsque je lance la boucle pour toute les pages, uniquement la page 1 est modifié.
Si je lance le script page par page, il fonctionne sur la page indiquée, mais la page recadrée précédemment reviens à sa taille d’origine !!! je ne sais pas si je suis clair…
J’ai même essayé de modifier la taille de chaque page et de les insérer une par une dans un nouveau fichier, et uniquement la dernière page insérée reste à la taille désirée…
Ce qui est étrange, c’est que cela fonctionne pour envoyer en impression…
Si tu as une idée, Merci.
@+
:bonjour:26 septembre 2018 à 13:53 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64506bebarthMaître des clés…ou peut-être jeudi !
@+
:bonjour:26 septembre 2018 à 13:51 en réponse à : Centrer une colonne de texte par rapport au milieu d’une feuille A4 #64576bebarthMaître des clésbonjour,
Voici une action que j’ai écrite pour pouvoir imprimer tes pages centrées sur un format A4.
On pourrait l’adapter pour avoir des marges intérieures et extérieures différentes si le texte prenait plus de place, comme le note Merlin.
C’est peut-être “un peu long” (45 secondes pour les 7 pages sur un Mac Pro 3,2 GHz Quad-Core) car sur chaque page je vérifie la position de tous les mots pour connaitre exactement les marges autour texte.
Je ne vois pas comment faire autrement… La position du premier et du dernier mot donnerait (peut-être) la position verticale, mais pour la position horizontale…
@+
:bonjour:bebarthMaître des clésBonsoir,
Voici un lien qui pourra t’aider :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_exportAsTextbc-28&rhtocid=_6_1_8_23_1_27
@+
:bonjour:bebarthMaître des clésAvec quelle version d’Acrobat as-tu un souci.
Je n’ai pas de problème avec Acrobat Pro DC.
Sinon, tu peux essayer (mais je ne sais pas si ça fonctionne) de mettre ton script en pièce jointe et de le rappeler avec :Code:var oFile=this.getDataObjectContents(“monFichier.js”);
var cFile = util.stringFromStream(oFile, “utf-8”);…à essayer !
@+
:bonjour:25 septembre 2018 à 09:21 en réponse à : Récupérer les données de formulaires PDF dans un seul tableau Excel #59482bebarthMaître des clésEh bien on peut exporter les valeurs des champs dans un fichier texte si cela t’intéresse.
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm
@+
:bonjour:bebarthMaître des clésDésolé, mais je ne sais personnellement pas écrire les tables Javascript telles qu’elles le sont dans ton fichier Initialisation.
@+
:bonjour:25 septembre 2018 à 08:06 en réponse à : Récupérer les données de formulaires PDF dans un seul tableau Excel #59479bebarthMaître des clésbonjour,
Ce qui est certain, c’est que ce que tu as indiqué n’est pas une ligne de code JavaSript et ne peut donc pas être interprété avec Acrobat.
C’est apparemment une ligne de code sous Unix !
Que cherches-tu à faire exactement ?
@+
:bonjour:bebarthMaître des clésbonjour,
…
N’hésitez pas à demander si je suis pas assez clair.
…
Alors oui j’ai trouvé comment rentrer du vide …Je ne comprends rien ! C’est quoi rentrer du vide ???
Lorsque tu postes une réponse, si tu as une autre question plus tard, il ne faut pas modifier ton premier poste mais faire une autre réponse sinon les personnes qui suivent ton sujet ne sont pas averties de ta modification de poste.
@+
:bonjour:bebarthMaître des clésIl y a également un script d’action d’ouverture de page !
En effet // correspond à une annotation et la ligne n’est pas prise en compte. On peut dupliquer une ligne , ajouter // à la ligne originale et tester une modification. On n’a pas perdu la première ligne !
@+
:bonjour:bebarthMaître des clésAs-tu copié les 3 scripts de document et les scripts de touche personnalisés des ListeNiveau1 et ListeNiveau2 ?
Sinon, peux-tu partager ton fichier ?
@+
:bonjour:bebarthMaître des clésbonjour,
Il faut que tu regardes et adaptes le script de document.
Voici le fichier d’Alex adapté à ce que j’ai cru comprendre.
@+
:bonjour:bebarthMaître des clésbonsoir,
Je viens d’écrire un petit script pour changer automatiquement la couleur des caractères V, N, D et -.
A mettre en script d’action de champ désactivé !Code:var leTexte = this.event.target.value;
var leTexte = leTexte.replace(/V/gi, “,VERT,”);
var leTexte = leTexte.replace(/N/gi, “,ORANGE,”);
var leTexte = leTexte.replace(/D/gi, “,ROUGE,”);
var leTexte = leTexte.replace(/-/gi, “,BLEU,”);
var leTexte = leTexte.replace(/,,/gi, “,”);
var n = leTexte.charAt(0);
var nn = leTexte.charAt(leTexte.length-1);
if (n!=”,”) {
var debut = 0;
} else {
var debut = 1;
}
if (nn!=”,”) {
var fin = 0;
} else {
var fin = 1;
}
var laChaine = leTexte.substring(debut,leTexte.length-fin);
var chaine = laChaine.split(“,”);
var spans = new Array();
for (var i=0; ivar texte = chaine;
switch (texte) {
case “VERT”:
var txtSpan=”V”;
var colSpan=color.green;
break;
case “ORANGE”:
var txtSpan=”N”;
var colSpan=[“CMYK”, 0,0.35,0.85,0];
break;
case “ROUGE”:
var txtSpan=”D”;
var colSpan=color.red;
break;
case “BLEU”:
var txtSpan=”-“;
var colSpan=color.blue;
break;
default:
var txtSpan=texte;
var colSpan=color.black;
}
spans = new Object();
spans.text = txtSpan;
spans.textColor = colSpan;
}
this.event.target.richValue = spans;@+
:bonjour:21 septembre 2018 à 19:50 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64505bebarthMaître des clés…peut-être ce week-end ou lundi !
J’ai modifié le fichier “Imprimer les Fichiers.pdf” précédemment posté pour indiquer les champs à remplir. Ce n’était peut-être pas évident pour tout le monde.
@+
:bonjour:21 septembre 2018 à 09:15 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64503bebarthMaître des clésPour ce script, il n’y avait qu’à assembler des morceaux d’autres scripts que j’avais déjà écris et à essayer le résultat avec Adobe Reader.
Ça a fonctionné PRESQUE du premier coup !
@+
:bonjour:21 septembre 2018 à 08:00 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64501bebarthMaître des clésbonjour,
Voici donc ce qu’il faut faire :- Télécharger et décompresser le fichier “Impression de pages pre?cises_BB.zip” ci-joint.
- Placer le fichier “ImpressionPerso.js” dans le répertoire JavaScript d’Adobe Reader (je ne sais pas où il se trouve sous Windows).
- Placer tous les fichers à imprimer dans le répertoire “Imprimer ces Fichiers”. Attention, le répertoire “Imprimer ces Fichiers” et le fichier “Imprimer les Fichiers.pdf” doivent se trouver dans le même répertoire.
- Ouvrir le fichier “Imprimer les Fichiers.pdf” et renseigner les différents champs. Ne pas oublier d’indiquer les noms des fichiers à imprimer…
- Appuyer sur le bouton”IMPRIMER”.
[/list]Tu me dis s’il y aurait des adaptations à faire.
@+
:bonjour:20 septembre 2018 à 12:55 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64500bebarthMaître des clésMerci pour l’utilitaire Merlin !
En fait, je souhaiterais pouvoir imprimer les pages 1 à 3 d’une quarantaine de fichiers pdf (ou par exemple la page 4 de tous ces fichiers), sans avoir à lancer les impressions une par une.
Tous ces fichiers sont-ils groupés dans un même répertoire ou dispersés à droite à gauche !
@+
:bonjour:20 septembre 2018 à 12:06 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64498bebarthMaître des clésOui pour moi, mais je suppose qu’Adobe Reader reste Adobe Reader même avec la console et que certaines commandes JavaScript ne fonctionnent pas !
Correct ?
@+
:bonjour:20 septembre 2018 à 11:13 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64496bebarthMaître des clésbonjour,
Je n’avais pas Adobe Reader installé depuis bien des années. Les scripts que j’écris sont pratiquement toujours utilisés avec Acrobat Pro et j’avoue que j’ai souvent tendance à oublier que certaines fonctions ne peuvent être utilisées avec Adobe Reader !!!
Je viens de l’installer et je regarderai ce qu’il est possible de faire (mais je ne sais pas exactement quand, peut-être en début de semaine prochaine).
@+
:bonjour:18 septembre 2018 à 20:43 en réponse à : Impression de pages précises de plusieurs fichiers pdf #64488bebarthMaître des clésbonsoir,
Le prix d’une licence pro est d’environ 215€/an.
Peut-être y a-t-il des prix pour l’educa Nationale ?
Voir si ça vaut le coup… il y a tellement de possibilités avec que je dirais oui, mais si c’est juste pour imprimer et ne rien faire d’autre, je ne sais pas !
@+
:bonjour:bebarthMaître des clésj’avais fait l’inverse ! il faut donc écrire :
Code:otherDoc.getField(“DEMANDEUR_NOM”).value=this.getField(“DEMANDEUR_NOM”).value;@+
:bonjour:bebarthMaître des clésà ce moment la, tu écris :
Code:var otherDoc = this.openDataObject(“Resume commande.pdf”);@+
:bonjour:bebarthMaître des clésbonjour,
Tu ouvres ton fichier que tu viens d’extraire avec :Code:var otherDoc = app.openDoc({
cPath: chemindufichier,
});Tu recopies les valeurs des champs avec :
Code:this.getField(“nomChamp”).value=otherDoc.getField(“nomChamp”).value;…et à la fin tu refermes le fichier avec :
Code:otherDoc.closeDoc();Si tu n’y arrives pas et que tu peux partager un fichier…
@+bebarthMaître des clésbonjour,
… avec l’outil de modification d’objets il faut savoir qu’il faut appuyer sur la touche majuscule pour déformer non proportionnellement (à l’inverse des autre logiciels Adobe).
Ça m’a interpelé, j’ai donc vérifié sur Acrobat Pro XI et DC !
Si on étire avec les poignées des coins, ça modifie la taille de façon homogène (homomorphisme) que l’on appuie ou pas sur la touche majuscule.
Par contre, si on utilise la poignée au centre de chaque côté, on peu déformer l’image ou la modifie la taille de façon homogène en appuyant sur la touche majuscule… comme sur les autres logiciels en général !
@+
:bonjour:bebarthMaître des clésbonsoir,
Voici ce que donnerait le script pour ton exemple :Code:var laListeBis=new Array();
for (var i=1; i<=3; i++) {
if (this.getField(“Case à cocher_”+(i+3)).value!=”Off”) {
laListeBis.push(this.getField(“Text”+i+”.0.0″).value);
}
}
this.event.target.setItems(laListeBis);A mettre en script de calcul de ta liste nommée AD.
L’avantage de cette méthode est que s’il y a 50 cases à cocher on ne définit pas une liste de 50 conditions (if) !
Pour info :
if ( this.getField(“Case à cocher_4”).value == “1” ) -> Si la case est cochée et que sa valeur est égale à 1.
if (this.getField(“Case à cocher_”+(i+3)).value!=”Off”) -> Si la case est cochée, quelle que soit la valeur.@+
:bonjour:bebarthMaître des clésCode:var chaine = this.getField(“laDate”).valueAsString;
if (chaine != “”) {
//Récupération des éléments de la date
var jour = chaine.substring(0,2);
var mois = chaine.substring(3,5);
var annee = chaine.substring(6,10);
//Définition de l’objet date + 1 jour (les mois sont numérotés de 0 à 11)
var d = new Date(annee,(mois-1),jour);
var n = d.getTime()+(1*24*3600*1000);// 1 pour 1 jour, n en millisecondes
var date = new Date(n);
this.event.target.value = date;
} else {
this.event.target.value = “”;
}@+
:bonjour:bebarthMaître des clésbonjour,
…sinon tu peux créer une table !!!
Ici avec 5 cases à cocher de cb.0 à cb.4.Code:var laListe=new Array();
for (var i=0; i<=4; i++) {
if (this.getField(“cb.”+i).value!=”Off”) {
laListe.push(this.getField(“cb.”+i).value);
}
}
this.event.target.setItems(laListe);@+
:bonjour:bebarthMaître des clésbonjour,
Voici une solution si tu n’y es pas arrivé tout seul :Code://Récupération des éléments de la date
var chaine = this.getField(“laDate”).valueAsString;
var jour = chaine.substring(0,2);
var mois = chaine.substring(3,5);
var annee = chaine.substring(6,10);
//Définition de l’objet date + 1 jour (les mois sont numérotés de 0 à 11)
var d = new Date(annee,(mois-1),jour);
var n = d.getTime()+(1*24*3600*1000);// 1 pour 1 jour, n en millisecondes
var date = new Date(n);
this.event.target.value = date;@+
:bonjour:30 août 2018 à 17:03 en réponse à : Bouton qui coche une case à cocher (et qui décoche quand on reclique dessus) #64541bebarthMaître des clésbonjour,
A mettre en script d’action du bouton :Code:if (this.getField(“cb”).value!=”Off”) {
this.getField(“cb”).checkThisBox(0,false)
} else {
this.getField(“cb”).checkThisBox(0,true)
}cb étant le nom de champ de la checkbox.
@+
:bonjour:bebarthMaître des clésbonjour,
Regarde ce post, cela devrait t’aider…
https://abracadabrapdf.net/forum/index.php/topic,3480.msg20773.html#msg20773
Il faudra évidemment adapter le script à ce que tu veux faire exactement !
@+
:bonjour:28 août 2018 à 09:21 en réponse à : Exporter données formulaire PDF vers base de données ACCESS #63856bebarthMaître des clésbonjour,
Si Adobe à retiré ce paramètre depuis Acrobat 6.0, je ne vois pas pourquoi ils le remettraient !!!!
As-tu essayé d’avoir la boite de dialogue d’enregistrement ?
@+
:bonjour:27 août 2018 à 17:33 en réponse à : Exporter données formulaire PDF vers base de données ACCESS #63854bebarthMaître des clésComme le titre “An alternate method for exporting an attachment that is a PDF file” l’indique, ça ne fonctionne que si la pièce attachée est un fichier pdf !
@+
:bonjour:27 août 2018 à 14:25 en réponse à : Exporter données formulaire PDF vers base de données ACCESS #63852bebarthMaître des clésbonjour,
On ne peut apparemment plus définir le paramètre cDIPath !
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_exportDataObjectbc-31&rhtocid=_6_1_8_23_1_30
Regarde ce que l’on peu faire car je ne comprend pas “If cDIPath is not passed to this method, a file selection dialog box opens to allow the user to select a save path for the embedded data object.”
Peut-être faut-il indiquer cDIPath:”” pour avoir la boîte de dialogue (?????)
@+
:bonjour:bebarthMaître des clésbonjour,
Après ton message d’erreur il faut faire un reset de ton champ, puis un focus :
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FDoc_methods.htm%23TOC_resetFormbc-92&rhtocid=_6_1_8_23_1_91
https://help.adobe.com/en_US/acrobat/acrobat_dc_sdk/2015/HTMLHelp/index.html#t=Acro12_MasterBook%2FJS_API_AcroJS%2FField_methods.htm%23TOC_setFocusbc-18&rhtocid=_6_1_8_31_2_17Code:…
this.resetForm(“nomChamp”);
this.getField(“nomChamp”).setFocus();
…@+
:bonjour:bebarthMaître des clésSur Acrobat Pro, le plus simple est de créer une action puis de la lancer.
Ci-joint un fichier à décompresser et à charger dans Acrobat Pro, juste avec un double clique.
Sinon, voici es copies d’écran pour créer l’action et la lancer.
Pour “Ajouter des fichiers” tu sélectionnes tous les fichiers à traiter.
Ce n’est pas très compliqué. Essaye et tu me dis !
Sinon j’essaierai de développer un peu plus tard…
@+
:bonjour:bebarthMaître des clés:Euuuh: :doute:
Pour Acrobat Pro je vois, mais pour Adobe Reader comme ça, je ne sais pas !
@+
:bonjour:22 août 2018 à 22:31 en réponse à : Exporter données formulaire PDF vers base de données ACCESS #63849bebarthMaître des clésJ’ai oublié le point-vigule…
Code:…
Variables+=f.valueAsString + “;”;
…@+
:bonjour:bebarthMaître des clésbonjour,
A partir d’Adobe Reader ou Acrobat Pro ?
@+
:bonjour:22 août 2018 à 20:05 en réponse à : Exporter données formulaire PDF vers base de données ACCESS #63847bebarthMaître des clésbonjour,
Je n’ai jamais fait ça, mais si ton script précédent fonctionne, celui que tu veux faire doit être du genre :Code:var outputString = “”;
var Noms = “”;
var Variables = “”;
for (var i = 0; i < this.numFields; i++) {
var f = this.getField(this.getNthFieldName(i));
if (f==null || f.type==”button” || f.type==”signature”) continue;
Noms+=f.name + “;”;
Variables+=f.valueAsString;
}
outputString=Noms+”rn”+Variables;
this.createDataObject(“output.csv”, outputString);
this.exportDataObject({ cName:”output.csv”, nLaunch: “0”});Essaye et dis moi le résultat !
@+
:bonjour:bebarthMaître des clésbonjour,
voici ce que je te propose. Si 1, 2 et 3 sont cochés simultanément 6 et 7 sont cochés ensembles. Est-ce ce que tu voulais ???
@+
:bonjour:bebarthMaître des clésEssaie “if” avec un “i” minuscule…
Et où as tu écris ce script ?
En fin de compte je pense qu’il faudrait l’ecrire en script d’action des cases 1 et 2 et remplacer évent.target par le nom du champ de la case 6 (est-ce claire ?)
…et rajouter else…. false pour décocher automatiquement.
:bonjour:bebarthMaître des clésFait une copie de ce que tu as écris !
bebarthMaître des clésBonjour,
Pour case 6 :Code:If (this.getField(“case1”).value!=”Off”&&this.getField(“case2″).value!=”Off”) this.event.target.checkThisBox(0,true)
Essaie car impossible pour moi de vérifier avant.
@+
:bonjour:bebarthMaître des clésBonjour,
Si cela t’est possible il faudrait partager ton fichier pour voir ce qu’il est possible de faire, mais pour ma part je n’aurai pas d’ordi Avant le 22 août…
@+
:bonjour:bebarthMaître des clés…les templates pour dupliquer des pages ça ne t’intéresse pas ?
Désolé pour les réponses succinctes, mais j’ai juste mon téléphone pour répondre…
@+
:bonjour:bebarthMaître des clésL’aplatissement est le moyen le plus sûr !
Après, ça dépend de l’importance que l’on donne au document et à la possibilité de le modifier…
@+
:bonjour:bebarthMaître des clésbonjour
Il est impossible de renommer des champs via JavaScript.
Selon ce que tu veux faire, je te conseille de regarder du côté « Template »…
@+
:bonjour:bebarthMaître des clésbonjour,
Je pense que le plus simple c’est d’aplatir mais attention de faire ça sur une copie car c’est irréversible !
@+:bonjour:
bebarthMaître des clésBonjour,
Voici le lien :
https://abracadabrapdf.net/forum/index.php/topic,3419.msg20186.html#msg20186
@+:bonjour:
-
AuteurRéponses