Les formulaires dans Latex

Il est possible de créer des formulaires pdf en Latex. J’utilise l’extension hyperref pour ce faire. Les champs de formulaire géré par cette extension peuvent avoir des paramètres utile à l’utilisation du javascript comme name, onfocus, onclick, onselect, onkeypress, etc…

\documentclass[a4paper, 12pt]{report}
\usepackage{hyperref}% \ paquet pour champs de formulaires
\begin{document}
\begin{Form}
\PushButton[name=myButton,onclick={HelloWorld();}]{Hello}\\
\end{Form}
\end{document}

Je reviendrais plus en détail dans un autre article de l’utilisation du javascript en Latex.
Il est recommandé dans la documentation officiel de n’avoir qu’un seul formulaire par document.
Le formulaire est délimité par un \begin{Form} et par un \end{form}, comme vous pouvez le voir ci-dessus.

\TextField

TextField est une zone de texte qui de base est mono-ligne. Voici ci-dessous, une liste plutôt exhaustive des options que l’on peut mettre à TexField:

% Zone de texte monoligne avec en label "Mon label :"
\TextField{Mon label :}\\

%Si vous ne souhaitez pas avoir de label, il suffit de laisser un espace entre les accolades
\TextField{ }\\

%Le paramètre d'align permet d'aligner le texte dans le le champ de formulaire : 0 pour gauche, 1 pour le centre et 2 pour la droite
\TextField[align=2]{Mon label :}\\

%Le paramètre de backrgroundcolor permet de modifier la couleur de fond du champ de formulaire. Pour appeler une couleur, vous aurez besoin du paquet xcolor.
\TextField[backgroundcolor=cyan]{Mon label :}\\

%Vous n'aimez par les bordure rouge de votre zone de texte, le paramêtre bordercolor est fait pour vous.
\TextField[bordercolor=cyan]{Mon label :}\\

%Le paramètre color vous permet de modifier la couleur de police à l'intèrieur de votre zone de texte.
\TextField[color=cyan]{Mon label :}\\

%Le paramètre charsize vous permet de modifier la taille de police à l'intèrieur de votre zone de texte.
\TextField[charsize=24pt]{Mon label :}\\

%Le paramètre height permet de gérer la hauteur de la zone de texte et width pour la largeur.
\TextField[height=250pt, width=300pt]{Mon label :}\\

%Quitte à faire une grande zone de texte, autant qu'elle puisse contenir plusieur ligne grâce au paramêtre multiline. Des bugs ont pu être remarqué en fonction du label.
\TextField[height=250pt, width=300pt, multiline]{Label :}\\

%maxlen permet de limiter le nombre de charactère dans un champ de texte
\TextField[height=250pt, width=300pt, multiline, maxlen=10]{Label :}\\

%password permet de masquer les champs de caractères saisie, readonly empéche la modification de la zone de texte par l'utilisateur, value permet d'initialiser la zone de texte.
\TextField[password, readonly, value="test"]{MDP :}\\

\Checkbox

Chexkbox est une case à cocher, la syntaxe est assez simple, je ne vais pas remettre les options détaillé dans TextField, la seul option propre que j’ai pu voir permet de cocher la case par défaut :

%Case à cocher individuel
\CheckBox{Oui}

%Case à cocher déjà cocher
\CheckBox[checked]{Non}

\PushButton et \Reset

Personnellement, je suis assez déçus des boutons d’hyperref, je n’ai pas réussis à les redimensionner et il ne supporte pas le jascript : « event.target.buttonImportIcon(); » qui aurait pu les rendre particulièrement sexy…
Même si ils font moins que j’espérais, ils peuvent être précieux pour articuler du javascript dans un formulaire. Le bouton Reset permet de réinitialiser toutes les modifications faites aux formulaires.
Je n’ai pas réussi à faire fonctionner le bouton Submit, je pense qu’il faut mettre des paramètres supplémentaires au Forms afin qu’il puisse être utilisé, comme définir l’action.

%Bouton simple 
\PushButton{Mon bouton}\\

%Bonton caché qui ne cache pas son label et qui rend le bouton non clickable...
\PushButton[hidden]{.        .}\\

%Bouton de remise à zero du formulaire
\Reset{Réinitialiser}

\ChoiceMenu

ChoiceMenu s’occupe des listes à choix, la version basique est particulièrement pas folle, mais avec les bonnes options, on peut faire des liste utile et jolie :

%liste à choix basique
\ChoiceMenu{Question ?}{
oui,
non
}\\

%liste déroulante grâce à l'option combo
\ChoiceMenu[combo]{Question 1}{
oui,
non
}\\

%liste de case à cocher grâce à l'option radio
\ChoiceMenu[radio]{Question 2}{
1,2,3
}\\

NB: Le nom des labels permet d’identifier les listes au niveau des pdf, il faut éviter de mettre des noms identiques.

Comments

No comments yet. Why don’t you start the discussion?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *