Liste déroulante dans PDF

benlabete13

Membre enregistré
9 Octobre 2021
5
0
46
Bonjour, à tous. Je viens vers vous pour avoir vos lumières sur les formulaire pdf.

Je suis en train de monter une grille d'évaluation en pdf. Je sais faire des listes avec des valeurs, des coches avec des valeurs. Mais je ne sais pas faire des listes avec des valeurs et un fond coloré qui change en fonction du thème de la liste.

Pour faire simple je voudrais faire une liste où il y a marqué très bonne maîtrise (le fond devient vert), bonne maîtrise (le fond devient jaune) etc. C'est quelque chose que je fais facilement sur un tableur mais que je n'arrive pas à faire dans un pdf. Que ça soit à partir d'acrobat pro ou d'indd. J'ai même essayé en faisant des style imbriqués dans indd. Bref je sèche.
Si quelqu'un à un début de piste je suis preneur !

Merci d'avance !
 

magicPDF

abracadabrantesque
Modérateur
Club MacG
5 Décembre 2007
7 681
756
43.93 N / 4.84 E
abracadabraPDF.net
Il faut utiliser du JavaScript*.
Il y a deux possibilités, soit on se base sur le numéro d'ordre de l'item (de haut en bas), soit on se base sur la chaine de caractères qui compose l'item.

L'avantage de la première solution c'est que le script reste indépendant du contenu de l'item puisqu'il ne se base que sur sa position, item qu'on peut donc ensuite modifier si besoin sans devoir modifier le script.

Et inversement, avantage à la deuxième solution si on ne connait pas l'ordre des items du menu ou si on prévoit qu'il puisse changer.


* Voir : https://www.abracadabrapdf.net/format_pdf/normes_iso_et_pdf/norme-iso-ecmascript-for-pdf/
 

benlabete13

Membre enregistré
9 Octobre 2021
5
0
46
Il faut utiliser du JavaScript*.
Il y a deux possibilités, soit on se base sur le numéro d'ordre de l'item (de haut en bas), soit on se base sur la chaine de caractères qui compose l'item.

L'avantage de la première solution c'est que le script reste indépendant du contenu de l'item puisqu'il ne se base que sur sa position, item qu'on peut donc ensuite modifier si besoin sans devoir modifier le script.

Et inversement, avantage à la deuxième solution si on ne connait pas l'ordre des items du menu ou si on prévoit qu'il puisse changer.


* Voir : https://www.abracadabrapdf.net/format_pdf/normes_iso_et_pdf/norme-iso-ecmascript-for-pdf/
Mercid e votre retour, je me disais bien que je serai obligé de passer par le java script..
 

benlabete13

Membre enregistré
9 Octobre 2021
5
0
46
Sur le principe c'est ça. Par contre si je peux me permettre, votre liste fonctionne en partie. Le changement de couleur se fait uniquement sur le premier et dernier item (vert ou rouge). Pourtant j'ai regardé le code il y a bien les autres couleurs. Est-ce du au fait qu'il n'y a pas les points virgules entre les items ?
Merci en tout cas de votre retour !
 

benlabete13

Membre enregistré
9 Octobre 2021
5
0
46
Bon je commence à comprendre en fait les items sont différents de ceux du code. Je dois pouvoir m'en sortir avec du coup. Merci encore !
 

benlabete13

Membre enregistré
9 Octobre 2021
5
0
46
Bon du coup je creuse un peu. J'ai repris votre code et j'ai changé les items, ça marche. Par contre je ne comprend pas pourquoi certains nom de couleurs marche d'autres non. Par exemple sur la même ligne si je mets black ça marche si je mets pink non. Blue fonctionne, orange non. Du coup j'ai essayé des codes exadécimaux ça ne marche pas non plus…
 

magicPDF

abracadabrantesque
Modérateur
Club MacG
5 Décembre 2007
7 681
756
43.93 N / 4.84 E
abracadabraPDF.net
Dans l'exemple que j'ai posté tout est fonctionnel.

S'il y a des points-virgules dans les items il faut les "échapper avec un antislash".
C'est à dire qu'il faut écrire
\;
au lieu de
;

Sinon JavaScript risque de faire une allergie grave.
 

magicPDF

abracadabrantesque
Modérateur
Club MacG
5 Décembre 2007
7 681
756
43.93 N / 4.84 E
abracadabraPDF.net
En couleurs nommées il n'y a que ça de disponible :

Capture_134.png



Sinon il faut les écrire en RVB, exemple :

event.target.fillColor = ["RGB", 204/255, 214/255, 255/255];

Ce qui donne du bleu pâle.
Le premier chiffre, avant le slash, est celui de chaque valeur RVB, le deuxième chiffre (255) reste invariable.