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