Toutes mes réponses sur les forums
-
AuteurRéponses
-
jctremblay
ParticipantMerci!… Me voici corriger devant tous! 😀
jctremblay
ParticipantOh mince… si simple!
Quand il s’agit que de nombre… le = est suffisant, mais quand c’est du texte il faut absolument == ?Détail important! J’ai passé des heures à chercher. 😂
Merci!
jctremblay
ParticipantJ’ai trouvé réponse à ma question dans une publication de 2004 dans le forum ici:
[une-alerte-javascript-une-seule]jctremblay
ParticipantSalut Merlin,
Les codes fournis ne fonctionne pas. Les textes par défaut demeurent lors de l’impression. Voir le PDF pour test.Par contre, j’ai réussi à changer la couleur avec ses code-ci:
//Will Print
for (var i=0; i<this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (oFld.type == "text" && oFld.value == oFld.defaultValue) {
oFld.textColor = color.white;
}
}//Did Print
for (var i=0; i<this.numFields; i++) {
var oFld = this.getField(this.getNthFieldName(i));
if (oFld.type == "text" && oFld.value == oFld.defaultValue) {
oFld.textColor = color.ltGray;
}
}Curieux de savoir pour quoi ton code ne fonctionne pas. 😀
Attachments:
You must be logged in to view attached files.jctremblay
ParticipantMerci Merlin! J’essai ça…
jctremblay
ParticipantMe reste donc, juste a trouver comment cibler l’ensemble des champs. je cherche… 😀
jctremblay
ParticipantIl faut écrire un script d’action de document pour modifier les champs « lorsque le fichier sera imprimé » puis remettre les champs « lorsque le document a été imprimé ».
C’est ce que j’ai essayé sans succès. Ce peut-il que je dois écrit mon script initial non pas dans une action (on blur/focus) mais en validation, ou calcul?
jctremblay
ParticipantMerci!
J’ajoute à mes signets…jctremblay
ParticipantAlors oui (avec un peu de retard) bonne année 2022 et merci milles fois pour ce forum!
jctremblay
ParticipantJ’ai trouvé pourquoi cela ne fonctionnais pas. Dans mon PDF j’ai un nombre de champs de texte plus grand que l’exemple que j’ai inclus. Là, je viens de réalisé que le chiffre ici:
for (var i=0; i<=3; i++) {
doit être plus petit que le totals de mes champs à fusionner. Sinon, cela ne marche plus. Donc, si j’ai 20 champs de texte, je vais devoir utiliser ceci
for (var i=0; i<=19; i++) {
jctremblay
ParticipantJe vis vérifier ce qui se passe réellement quand je vais avoir la tête libre… Merci.
jctremblay
ParticipantBebarth, tout est parfait sauf que maintenant j’ai décide de change les noms de mes champs de:
o.txt.1 et o.date.1 à txt.1 et date.1 et maintenant, même si je les renommes dans le script, cela ne fonction plus. je n’y comprend rien. C’est surement une pécadille. Help! 😀
3 décembre 2021 à 03:54 en réponse à : Modifier un script de champ vers un script de document. #70058jctremblay
ParticipantSi simple… Merci encore une fois. Je vais tenter de m’en souvenir.
2 décembre 2021 à 23:39 en réponse à : Modifier un script de champ vers un script de document. #70056jctremblay
ParticipantMerci Merlin, c’est parfait! J’ai juste changé le this.getField(“o.box.” + nSuffix).value=”Yes”} pour “Oui”.
Aussi, comment puis-je ajouter une autre modification sans répéter le
if (event.value=="")
if (event.value==""){this.getField("o.box." + nSuffix).value="Off"}
if (event.value==""){this.getField("o.date." + nSuffix).value=""}
else {this.getField("o.box." + nSuffix).value="Oui"} }
jctremblay
ParticipantMerci Bebarth! Comme c’est beau… Je vérifie tout ça et te reviens.
jctremblay
ParticipantMerci Merlin,
Du coup, cela a plus de sens et corrige un bogue avec ce que j’utilisais.jctremblay
ParticipantOk, j’ai trouvé quelque chose. Je crois même que c’était dans ce forum, mais je ne le trouve plus. À moins que cela m’a été fournis en privé.
Merci!
jctremblay
ParticipantBonjour,
Cette technique je connais. Un peu pénible quand tu as à faire cela plusieurs fois.jctremblay
ParticipantC’est bon, tout roule. Merci!
Presque… j’ai quelques fichiers ou les claques ne se fusion pas correctement. Calques qui ont été créer dans acrobat directement. Me reste à voir pourquoi.
jctremblay
ParticipantOMG! Erreur de débutant… Je ne sélectionnait qu’un seul et le second comme destination.
On ne peux pas fusionner vers un autre, mais avec un autre.
C’est bon, tout roule. Merci!
jctremblay
ParticipantLe script fonctionne bien pour supprimer les dossiers, mais par la suite la fonction Fusionner les Calques d’Acrobat ne fonction pas vraiment. Est-ce une limitation ou un bug? Les calques se merge au document.
jctremblay
ParticipantOh, interessant! J’essai avec mes documents.
jctremblay
ParticipantMerci bebarth ! C’est de toute beauté. :jerisjaune:
jctremblay
ParticipantBonjour, et merci pour toutes les pistes.
Puisque les champs que j’utilisais étaient des boutons, il m’était impossible d’utiliser des scripts de calculs ou de validation. J’ai donc utilisé un JavaScript de document que j’appelle au besoin.
Ceci n’était qu’un exercice pour saisir comment faire basculer la visibilité de boutons par d’autres boutons, puis d’afficher un bouton si les 3 premiers étaient visibles.
Je joins mon PDF pour votre curiosité.jctremblay
ParticipantMerci!
«Je vais me coucher moins niaiseux !» Espression très québécoise. :geek:
jctremblay
ParticipantMerci Bebarth!
J’ai du changer le nom de la fonction et aussi mettre le nom du champ avec des ” “.Code:warning_states(event.value,this.getField(“box_a”));J’ai fait des test avec mon code en:
a) action avec le champ désactivé;
b) validation script;
c) executé avec un bouton.Je joint mon document test pour les curieux.
PS: Pour ce genre d’appel de function, quel est la meilleur endroit ou mettre le code? Validate, Calcule, Action? J’ai vu que le code ne s’exécute pas toujours correctement en action sur les champs (souris relâcher entre autre).jctremblay
ParticipantMerlin, si je veux utiliser ce script mais dans un script de document pour pouvoir appeler la fonction et le nom du champs avec un “Mouse Up”, que dois-je faire.
J’ai essayer de mettre le code comme ceci au début:Code:function color(champ)
{
var cSaisie = event.value;
var oChampB = this.getField(champ);
…Et ceci dans le champ:
Code:color(“nom du champ”);La console me donne toujours ceci quand je modifie le contenu du champ texte.
Code:InvalidSetError: Propriété Set impossible, incorrecte ou inconnue.
Field.fillColor:9:AcroForm:champ_text:Annot1:MouseExit:Action1Que faire pour inclure comme variable dans la fonction un champ de texte modifiable facilement selon les besoins dans les champs?
jctremblay
ParticipantQuel “amateur”! :jerisjaune:
C’est exactement ça. C’est parfait.
jctremblay
ParticipantMais je ne suis pas un pro…
Quel humilité! :jerisjaune:
Une autre question pour toi en lien…
Si je veux changer le fond pour blue de tout les champs qui ne sont pas transparent ni blanc, je fais comment.J’ai essayé… avec des || ou && mais rien ne fonctionne.
if (!color.equal(f.fillColor,(color.transparent || color.white))) f.fillColor=color.blue;
jctremblay
ParticipantWow! Merci. Que c’est agréable d’apprendre des pros comme toi et notre cher Merlin!
:bravo:
jctremblay
ParticipantMerci Bebarth,
Le code eval est nécessaire en raison de l’utilisation de color.equal?
Ça fonctionne bien. J’ai pu ainsi me créer un script d’application pour m’ajouter une commande de menu pour un rechercher/remplacement de couleur. :extra:Maintenant, si je veux, faire une recherche de tout ce qui n’est pas color.transparent. Je devrait remplacer le color.equal par quoi?
jctremblay
ParticipantPour faire suite….
Je ne comprend pas pourquoi ceci fonctionne:
Code:var fcolo = color.blue;
var ccolo = color.yellow;
for (var i=0; ivar f=this.getField(this.getNthFieldName(i));
if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
}Mais que ceci ne fonctionne pas, lorsqu’on utilise un app.response
Code:var fcolo = app.response({cDefault: “color.blue”});
var ccolo = app.response({cDefault: “color.yellow”});for (var i=0; i
var f=this.getField(this.getNthFieldName(i));
if (color.equal(f.textColor,fcolo)) f.textColor=ccolo;
}jctremblay
ParticipantExactement ce que je voulais. Merci…. encore une fois!
jctremblay
ParticipantBonsoir bebarth!
Ça, je connais. Ça permet d’uniformiser. Mais je ne veux pas ça, je veux juste changer le Yellow là ou il se trouve. Ce n’est pas tous les champs qui ont un fond Yellow.
Puis je recherche, une façon de changer le yellow pour du red aussi présent dans comme couleur de texte, de trait, etc… sachant que certains champs n’ont pas de Yellow et ne devrait pas serte modifier.jctremblay
ParticipantVoici l’exemple !
La soirée est arrivé assez vite! :jerisjaune: C’est juste parfait encore une fois. Cela m’ouvre d’énormes possibilités. Merci!
jctremblay
ParticipantIl faudra donc utiliser une boucle pour extraire cette liste, et appliquer le readonly = false; pour chacun?
jctremblay
ParticipantAucune idée !
Adobe ne semble pas avoir d’idée non plus! :oh:
Ce serait quand même intéressant qu’alternativement, ils utilisent le Document Cloud pour héberger les formulaires distribuer. L’idée que les réponses soient collectées automatiquement sans gestions de courriel et de pièces joints me semble une fonctionnalité intéressante. Mais bon, la logique d’un utilisateur n’est pas la même qu’un développeur.jctremblay
ParticipantSi ces champs sont utilisés dans des notations simplifiées de calcul tu mets des devant.
jctremblay
ParticipantAprès un coup d’œil à la documentation SDK, je pense pas que les paramètres d’accessibilité soit exposés/modifiables avec du JavaScript. :Smiley02:
jctremblay
ParticipantJ’ai pris le temps de tester un peu.
Le texte saisi dans un champ avec cette option Mot de passe ne peut pas être copié, il n’est pas exporté, et le champ est vidé lors de l’enregistrement du PDF. Donc, ce n’est pas pas une option pour «caché» le texte, mais bien pour permettre la saisi d’un mot de passe.
Un exemple, une section d’un formulaire dédié à l’administration dont tous les champs sont invisibles à l’écran et donc à l’utilisateur. L’administrateur à l’aide de son mot de passe peut terminer le formulaire reçu de celui-ci.jctremblay
ParticipantÇa donne le vertige, mais c’est beau… :jerisjaune: Merci Bebarth!
Impressionant !
:bravo:jctremblay
ParticipantMerci! Cela fonctionne parfaitement.
jctremblay
ParticipantMerci… Si j’integre ton code pour aplatir seulement les champs bouton. J’ai une erreur. À la ligne 17.
TypeError: this.getField(…) is null
17:Console:Exec
Tu as une idée… J’essai de récupérer le code d’AcrobatUsers pour aplatir tout les boutons.
Code:var list=new Array();
for (var i=0; ivar leChamp=this.getField(this.getNthFieldName(i));
if (leChamp.type==”button”) list.push(leChamp);
}var fields = new Array;
for (var i = 0; i < this.numFields; i++) {
fields = [
this.getNthFieldName(i),
this.getField(this.getNthFieldName(i)).display
];
this.getField(fields[0]).display = display.noPrint;
}for (var i = 0; i < list.length; i++) {
this.getField(list).display = display.visible;
}this.flattenPages({
nStart: 0,
nEnd: this.numPages – 1,
nNonPrint: 1,
});for (var i = 0; i < this.numFields; i++) {
for (var j = 0; j < fields.length; j++) {
if (fields[j][0] == this.getNthFieldName(i)) {
this.getField(this.getNthFieldName(i)).display = fields[j][1];
}
}
}jctremblay
ParticipantDans ce que j’avais besoin, seulement la propiétés Print «Print when visible» qui devait changer pour «Never Print».
On va faire autrement.
jctremblay
ParticipantJe reviens avec une petite question concernant le script disponible sur le site Acrobatuser que j’ai mentionné plus haut.
Ce script permet de saisir manuellement les noms des champs à aplatir comme ceci:
var list = new Array();
list = [
“Text1”,
“Text2”
];J’imagine que ce serait possible au lieu d’une liste spécifique, que le Array contiennent automatiquement tout les champs de type bouton. Comment pourrais-je inclure quelques choses du genre pour construire mon Array avec les noms des boutons?
Aucune idée comment faire ça avec > this.getField(fname).type == “button”
jctremblay
ParticipantJe n’étais pas fou alors! :jerisjaune:
Dans le cas de ces PDF, l’utilisation d’action n’est pas possible. Les documents PDF sont remis à des clients, qui ne doivent pas pouvoir imprimer la «Base» d’aucune façon. Souvent avec Reader. Le fournisseur vas devoir mettre la propriété «Ne Jamais Imprimer» à la main. J’essayais de voir comment le faire avec un JS. Mais cela ne semble pas possible.
jctremblay
ParticipantBien, ça ne marche pas plus…
Avec la console oui, mais pas en action de document.
jctremblay
ParticipantC’est là, mais pas possible avec un Javascript.
J’ai essayer ceci dans le «document sera» «document est imprimer» et cela ne fonctionne pas. L’état, ne se chance pas. Sauf en sauvegardant le document. Probablement trop de code pour rien.
var ocgArray = getOCGs();
for (var i=0; i < ocgArray.length; i++) {
if (ocgArray.name == “Base”) {
ocgArray.state = !ocgArray.state;
}
}jctremblay
ParticipantSi je lis bien ici:
Les propriétés d’impression ne sont pas possible avec un javascript. Il faut donc changer la visibilité seulement?
https://acrobatusers.com/tutorials/creating-and-using-layers-ocgs-with-acrobat-javascript/index.html
jctremblay
ParticipantC’est une possibilité…
Par contre, je ne trouve pas les informations pour modifier l’état «Ne jamais imprimer» vs «Imprimer lorsque visible». Du moins ceci ne semble pas détaillé dans la documentation.
jctremblay
Participant… Certainement l’hiver prochain !
J’ai hâte à l’hiver prochain! [Je pensais jamais dire ça!] :jerisjaune:
jctremblay
ParticipantC’est ça. La «visibilité» ou pas lors de l’impression.
jctremblay
ParticipantDonc, si j’ai bien saisi le script:
a) écriture de la liste des champs;
b) capturer les propriétés de visibilité de tout champs, puis les mettre tous invisible;
c) mettre les champs de la liste à visible;
d) Aplatir les champs visible;
e) Restaurer les propriétés initiaux des champs;jctremblay
ParticipantPour aplatir des champs spécifique, il y a un javascript ici: https://answers.acrobatusers.com/How-flatten-specific-group-form-fields-page-q293414.aspx
Par contre, je me demande si toutes ces lignes sont nécessaires.
jctremblay
ParticipantBon, j’étais pas fou… du moins pas à cause de ça. :jerisjaune:
Mais j’ai cru comprendre que l’adoption du PDF 2.0 devrait changer la donne.
Il me semble que ça fait des années qu’on entend parler du PDF2.0. Rien vue de concret encore à ce niveau. Toi?
jctremblay
ParticipantJ’utilise Selective Flatten Tool de Thom Parker. Je me demandais s’il était possible d’aplatir qu’un seul avec le nom d’un champ spécifique mais en javascript.
jctremblay
ParticipantEn général je place cette info dans le tooltip, ou bien parfois en “Texte par défaut” qui disparait au focus.
Brillant! Comme toujours… :bravo:
jctremblay
ParticipantC’est de la merde… Sur mon MacBook Pro, je dois mettre mon zoom à 66% pour que les maths est du sens. Sur ma Surface Pro, c’est à 43.2%. Il y a certainement un lien avec la résolution de l’écran le moniteur.
jctremblay
ParticipantJe vois, c’est pour cela que la liste des menus disponible par des actions est limitée.
Ça va être moins long dire à l’utilisateur de faire Ctrl+E ! :geek:
jctremblay
ParticipantOh là, là… que c’est beau à voir. Bien au delà de mon besoin initial.
Merci et en plus ça restera disponible pour la postérité. :bravo:
jctremblay
ParticipantUne merde dont je vais aviser Adobe… :mur:
jctremblay
ParticipantCe que je vient de remarquer, le total de copie que me permet Acrobat de faire est basés, sur le % de zoom de mon document. Ça n’as aucune sens… Mon document à 11 pouces x 34 de hauteur. Si je le vois en plein page, j’ai la limite de 136, si je zoom en largeur, je peux faire mes 149 copies nécessaires. Si je Zoom encore plus, je peux allez proche de 200 (ceci même s’il est impossible de mettre 200 de ces camps un au-dessus de l’autres). :mur: :mur: :mur:
Et il ne faut pas être pressé quand on clic OK. :geek:
jctremblay
ParticipantDonc, les champs seront créés dynamiquement par un javascript?
J’ai réussi à faire mes 150 rangés avec InDesign qui ajoute 1 à tout les copies nom.0 à toute les copies.
jctremblay
ParticipantMerci… Extrêmement puissant tout ça! Me reste à mettre en place pour un CSV de plus ou moins 150 rangés. Ça ne semble simple de créer 150 copies de champs d’un coup (voir mon autres questions).
jctremblay
ParticipantVoici l’astuce : on crée une nouvelle colonne qui contient le nom et où remplace tous les caractères accentués. On aura transformé avant le nom en lettres minuscules pour minimiser le nombre de caractères accentués à transformer. Puis on effectue les tris sur cette colonne alors que le nom affiché est celui indiqué dans la colonne originale.
Géniale! Si au hasard, j’ai aussi la possibilité de faire un tri AZ ZA sur une autre colonne, devrais-je faire une deuxième script de document, ou est-ce possible de faire cette magie sur l’ensemble du CSV, sans avoir à me soucier du nom de la colonne?
Une belle magie! Merci!
jctremblay
ParticipantLe JavaScript d’Acrobat ne support pas les POSIX je crois.
jctremblay
ParticipantDans ce cas-ci oui…
jctremblay
ParticipantOh mon Dieu comme c’est simple comme «mécanique». J’avais essayer avec les codes envoyer pour mon autre question il y a quelques semaine et je n’y était arrivé.
Une solution pour les caractères accentués sera très utiles. :jerisjaune:
5 avril 2021 à 18:11 en réponse à : Modifier la largeur d’un bouton selon le total des case à cocher #68899jctremblay
ParticipantMERCI Merlin! Je m’étais cassé la tête pour le calcul :mur: si simple.
Pour les thermomètres, ça va j’ai saisi ce que tu as fait. Je me demande par contre s’il est possible de modifier la largeur d’un seul champ de texte au lieu de jouer sur la visibilités de plusieurs.
Extraire la position du champ initial, le divise par le nombre de case total et le multipler par le nombre cochés.ex: largeur = (6 pouces / 4 case) * nombre de case cochés. J’imagine qu’on doit jouer avec les valeurs Rect du champs. Ce serait moins long à faire et modifier.
jctremblay
ParticipantVoici un document similaire à ce que j’essai de faire. Il y a un .csv en pièce jointe. Donc, La possibilité de faire un tri AZ ou ZA de la première colonnes, ou par un liste déroulante avec les noms de la colonnes nom.
Actuellement les champs ont été rempli à la main.
jctremblay
Participantbonjour,
Si j’ai bien compris tes questions je répondrais oui à toutes.
Par contre, si tu veux de l’aide ce serait bien de partager un fichier et de préciser un peu ce que tu souhaites faire.
@+
:bonjour:Quand j’ai quelques instant de libre je prepare un petit document.
jctremblay
ParticipantCe que je sais c’est que pour Adobe c’est un long combat puisque qu’on trouvait déjà un outil de signature numérique dans Acrobat Reader 3, sorti en 1996 !
Le combat n’est pas terminé après 25 ans. Le processus de signature n’est pas toujours très fluide.
jctremblay
ParticipantJ’ai retrouvée par hasard cette vidéo fournie avec Acrobat 5 en cherchant autre chose, il y est question de la signature numérique d’un certain JR… :geek:
https://abracadabrapdf.net/download/Digital_Signatures_Fr.mp4Ta voix a changé un peu ! :joker: :joker:
17 mars 2021 à 14:15 en réponse à : Nouveautés en lien avec les formulaires depuis Acrobat Pro DC 2015 #68877jctremblay
ParticipantCe que j’ai remarqué, tu colle une fois, puis quand tu colle une deuxième fois, il se colle à ton écran qu’importe le % de zoom.
17 mars 2021 à 13:03 en réponse à : Nouveautés en lien avec les formulaires depuis Acrobat Pro DC 2015 #68875jctremblay
ParticipantComment fais tu ça ?
Dans mes rêves! :jerisjaune:
C’est ce que j’aimerais pouvoir faire. Je vais le demander aux développeurs. On l’aura dans 10 ans.
17 mars 2021 à 12:54 en réponse à : Nouveautés en lien avec les formulaires depuis Acrobat Pro DC 2015 #68873jctremblay
ParticipantLe “Coller sur place” est une bonne idée mais comme souvent dans Acrobat ça a été implémenté en dépit du bon sens, parce-que du coup il n’est plus possible de coller “normalement”.
Et pourtant c’est souvent ça qu’on veut !Quand le zoom est par exemple à 400% je voudrais que la case à cocher se colle dans la zone affichée et non pas à l’autre bout de la page, obligeant ainsi à dézoomer et à déplacer la case avec le clavier (puisque les cases à cocher et les boutons-radio sont indéplaçables avec la souris faute de pouvoir les attraper si le zoom n’est pas suffisant).
:mur:[font=verdana, arial, helvetica, sans-serif]Ça prend les deux. Un copier/coller (centre de l’écran) et un copier/coller (même position).
[/font]À comparer avec l’implémentation exemplaire de cette fonction dans InDesign…
Parfois je me demande si le port des moufles n’est pas obligatoire pour devenir programmeur d’Acrobat. :oh::jerisjaune: Sans commentaire!
jctremblay
ParticipantIl n’y a pas seulement les développeurs d’InDesign qui sont en retard. Même à l’intérieur de la dernière version disponible d’Acrobat Pro et Reader, les vidéos et sons (importer directement) ne peuvent pas être contrôlés par des actions de boutons.
:mur:
16 mars 2021 à 22:50 en réponse à : Nouveautés en lien avec les formulaires depuis Acrobat Pro DC 2015 #68871jctremblay
ParticipantMerci! Après vérification, tu as bien raison (comme toujours).
La seule petite nouveauté est le copier/coller qui conserve sa position. :joker:
JC
16 mars 2021 à 12:40 en réponse à : Nouveautés en lien avec les formulaires depuis Acrobat Pro DC 2015 #68869jctremblay
ParticipantLa réponse est simple : il n’y a eu aucun changement et aucune nouveauté depuis la sortie d’Acrobat X (10).
Et encore ce n’étaient que des changements “cosmétiques”, rien de fondamental (ajout des outils de formulaire AcroSign).Par-contre ce qui évolue constamment au fil des versions c’est le support de JavaScript, qui lui aussi s’enrichit au fil du temps.
Le champs calendrier et image était présent avec 2015?
7 mars 2021 à 15:54 en réponse à : Liste et champs multiple provenant d’un fichier CSV en pièce jointe #68832jctremblay
Participantbonjour,Voici pour remplir plusieurs lignes. C’est une version “minimum” qui ne tient pas compte de lignes précédentes/suivantes (on peut remplir n’importe laquelle dans n’importe quel ordre). Ici le but étant de comprendre comment récupérer le numéro d’indice de la ligne pour emplir des champs adéquats.
Il faudrait l’améliorer pour (à mon avis) ne remplir une ligne uniquement si la précédente est remplie ! C’est tout à fait faisable.
Je te laisse le soin de mettre certaines parties de ce script en fonction afin de ne pas le répéter sur tous les champs…
@+
:bonjour:Merci Bebarth, :bravo:
Il me restera à inclure ça dans ma version en chantier. Ce qui devrait se faire assez facilement. Toi et Merlin êtes une source d’info extrêmement précieuses.
6 mars 2021 à 02:31 en réponse à : Liste et champs multiple provenant d’un fichier CSV en pièce jointe #68830jctremblay
ParticipantMoi, je n’utilise pas ce script, mais le résultat est identique. Je ne sais pas exactement quand j’aurai le temps de regarder ton fichier !
Demain après-midi ou mardi/mercredi !
Donc, dès qu’une ligne est remplie, on peu remplir la suivante. Correct ?
@+
:bonjour:Bebarth, j’essai une autre avenue avec des codes plus simples (merci Merlin). Alors, ne te casse pas la tête avec ceux d’Alex. Le défi restera de charge la CSV dans une série de ComboBox et les champs de la ligne.
Merci!
5 mars 2021 à 20:37 en réponse à : Liste et champs multiple provenant d’un fichier CSV en pièce jointe #68827jctremblay
ParticipantBonjour, Bebarth!
J’ai fait d’autres tests, bien que la première colonne, et la dernière n’est probablement pas nécessaires dans la théorie, les scripts ici le requièrent sinon, ça ne marche pas. Même chose pour les cellules vides dans la colonne principale et les doublons qui sont éliminés. Les scripts semblent être avoir été conçu avec ces limitations.
Tu as raison, lire et comprendre un script de quelqu’un d’autres n’est pas simple. Il faudras demander des explications à alex.
Avant de commencer, il faut savoir ce que tu veux faire exactement ! Quand ajouter les lignes ? Avec un bouton ou automatiquement dès qu’une ligne est pleine ? Sur une page unique ou plusieurs pages ? Est-ce qu’un bouton de suppression de ligne doit être prévu.
La complexité du script dépend de toutes ces options… bonne chance !!!Mais tous ces sujets on déjà été traités une ou plusieurs fois.
Je te laisse chercher un peu…
N’hésite pas à relancer le sujet si tu ne trouves pas (après avoir cherché).
@+
:bonjour:En fait, je veux obtenir le même résultat, mais sur de multiple copie pour chacune des rangées. Les combobox tous remplis avec le CSV., mes les champs à remplir par rangées. Pas besoin de bouton pour ajouter/supprimer. Les champs sont là, il faut simplement mettre la mécanique en place.
Ex:
Ligne 1 = ComboBox.0, textA.0, textB.0, textC.0, etc
Ligne 2 = ComboBox.1, textA.1, textB.1, textC.1, etc
etc…jctremblay
ParticipantMerci ! :bonjour:
Mais… Pourquoi utiliser du Verdana en corps 2 dans un message ? (captures jointes)
Comme tu n’es pas le seul à faire ça et comme je suppose que ce n’est pas volontaire je serais curieux de savoir comment tu as obtenu ce résultat.
As tu fait un copier-coller depuis Word ou un autre logiciel ?
MerciExactement ça, ou même parfois copier d’un commentaire précédant. Je suit sur Google Chrome. J’essaierai de «Previsualiser» plus souvent.
jctremblay
ParticipantEn fait il faut utiliser deux scripts de calcul à placer dans les champs qui affichent les folios, un script pour les pages normales et un script pour les pages modèles :
// script de calcul n° folio sur pages “normales”
event.value = (event.target.page + 1) + “/” + this.numPages;// script de calcul n° folio sur pages “modèles”
event.value = (event.target.page[1] + 1) + “/” + this.numPages;(Les parties en orange sont facultatives)
De plus il faut forcer le déclenchement les calculs après la génération des pages modèles, sinon les champs folios affichent n’importe quoi :
// génération des pages
this.calculateNow();Cher Merlin, Merci, j’ai eu besoin de ces lignes de scripts ce matin. Par contre je n’ai pas utiliser la version des pages “modèles”. Juste la première, et tout est fonctionnel. Merci!
jctremblay
ParticipantA moins que George K. ou que Try67 ne connaissent quelques fonctions non documentées… Mais il faudra leur demander sur le forum d’Adobe.
:joker:Quoi!? Ça existent encore le «forum Adobe» ! :jerisjaune:
24 octobre 2019 à 14:30 en réponse à : Cliquer-glisserpour sélectionner en mode édition de formulaire #66367jctremblay
ParticipantUne mise à jour est disponible depuis ce matin pour corriger ceci… Acrobat DC 19.021.20049
jctremblay
Participantlol :jerisjaune: :jerisjaune: :jerisjaune:
==> https://avepdf.com/fr/unlock-pdf
==> https://smallpdf.com/unlock-pdfC’est un formulaire du gouvernement. On ne prendras pas le risque de le modifier… :jerisjaune:
jctremblay
ParticipantBonjour
1. Pour remplir un formulaire il faut impérativement qu’il soit modifiable !
Par-contre en cas de remplissage via un script les champs peuvent être verrouillés (si c’est à ça que tu pensais).
:Smiley03:2. Oui, a priori c’est possible.
Je ferais un script qui boucle sur tous les champs, qui détecte (tout ou partie de) leur nom et qui teste si ledit nom se trouve dans l’array des données importées.
Si ça correspond : le champ est remplit avec la valeur correspondante.Les champs ne sont pas barrés, c’est le formulaire qui est non modifiable car verrouillé avec un mot de passe.
J’ai regardé le lien partagé par bebarth… ça me donne une piste. Par contre, j’utiliserais pas un fichier en pièce jointe mais quelques choses comme ça (trouver sur acrobatusers.com):
//Read file data into stream
var stmFileData = util.readFileIntoStream();// Convert data into a String
var strTextData = util.stringFromStream(stmFileData);À suivre, c’est une curiosité et non pas un projet urgent pour l’instant.
Merci!
jctremblay
Participant…et le sujet a déjà été traité plusieurs fois.
Honte! J’ai été paresseux et je n’ai pas fait de recherche dans le forum avant de poser ma question. Je m’exécute à l’instant. Si je ne trouve pas, je reviens.
jctremblay
ParticipantQuel vitamine tu prend bebarth? J’en veux! :Smiley03:
jctremblay
ParticipantOh que c’est beau! :bravo:
Ça semble bien marcher. Ça va me prendre quelques jours pour assimiler tout ça.
Je te remercie. Je te reviens si j’ai des questions.
jctremblay
ParticipantÇa peut être n’importe quoi… (des tirets pour les consécutives, des virgules pour séparer les autres).
ex:
7
2-6
2-3, 5
6, 8-10, 13, 15-17
jctremblay
ParticipantMerci, c’était pas si compliqué que ça. Quand on connais d’avance les pages.
Maintenant, si les pages nous sont fournis par l’utilisateur avec un app.response
J’imagine que ça prend une routine pour déchiffrer le résultat, pour créer un array, et inclure tout ça dans une loop executable juste après le if Je me trompe?jctremblay
Participantbonjour,
A mettre en script de touches personnalisé :Merci! Pour ta réponse rapide!
Ça marche! J’ai modifié la variable comme suit pour permettre de 7 à 11 chiffres. var rpat=/^(d{3}-d{4,11})?$/;
Est-ce la bonne méthode? Di moins ça fonctionne.Pas très simple à lire mais quand même. Est-ce que c’est la plus courte façon d’écrire un changement similaire?
jctremblay
ParticipantÇa fait plaisir de te voir parmi nous sur ce forum qu’Adobe et tous les américains anglophones nous envient.
Je vais où l’expertise se trouve… et la disponibilité. :Smiley01:
jctremblay
ParticipantIl suffit de poser la question pour enfin trouver une solution.
Mais je me demande est-ce la façon la plus simple? Et puis ça ne fonctionne qu’en format script pas en touches personnalisé.Code:var f = this.getField(“qqq”).valueAsString;
var regex = /^(d{3})-?(.+)$/g;
event.value = (f.replace(regex, “$1-$2”)); -
AuteurRéponses