Formulaires PDF interactifs (AcroForms)
Dernière mise à jour le 23 mars 2026
PDFMonkey peut générer des formulaires PDF interactifs (AcroForms) en détectant des marqueurs spéciaux dans votre modèle et en les convertissant en champs de formulaire à remplir. Les PDF générés peuvent être complétés directement dans les lecteurs PDF comme Adobe Acrobat ou Aperçu.
Activer les formulaires PDF
Pour activer les formulaires PDF dans votre modèle :
- Allez dans l’onglet Paramètres de votre modèle
- Activez l’option PDF Forms
- Ajoutez des marqueurs de champs dans le contenu de votre modèle
Via l’API, définissez use_forms: true dans l’objet settings ou settings_draft de votre modèle.
Syntaxe des marqueurs
Les marqueurs suivent une syntaxe spécifique qui indique à PDFMonkey quel type de champ créer et comment le configurer :
[% data_form_field_TYPE_NOM_OPTIONS %]
Éléments obligatoires
[%et%]— délimiteurs de début et de findata_form_field— préfixe requis pour la détectionTYPE— type de champ (text, checkbox, dropdown, etc.)
Éléments optionnels
NOM— nom personnalisé du champ (par ex.firstname,email)OPTIONS— dimensions, validation, alignement, etc.
Exemples de base
[% data_form_field_text_w200_h30 %]
[% data_form_field_checkbox_w20_h20 %]
[% data_form_field_dropdown_w250_h30_options[Option1,Option2,Option3] %]
Types de champs
Champs texte
Texte sur une ligne
[% data_form_field_text_w300_h30 %]
[% data_form_field_text_firstname_w250_h30_required %]
Utilisez pour : noms, adresses, numéros de téléphone, texte court.
Texte multiligne (textarea)
[% data_form_field_textarea_w400_h100 %]
[% data_form_field_textarea_comments_w500_h150_max500 %]
Utilisez pour : commentaires, descriptions, messages longs.
Champ mot de passe
[% data_form_field_text_password_w250_h30_password %]
Champ e-mail (avec validation)
[% data_form_field_text_email_w350_h30_email %]
[% data_form_field_text_contact_w400_h30_required_email %]
Champ téléphone
[% data_form_field_text_phone_w200_h30_phone %]
Champs de sélection
Case à cocher
[% data_form_field_checkbox_w20_h20 %]
[% data_form_field_checkbox_accept_terms_w20_h20_required %]
Exemple dans un modèle :
<p>☐ J'accepte les conditions [% data_form_field_checkbox_accept_w20_h20 %]</p>
<p>☐ S'inscrire à la newsletter [% data_form_field_checkbox_newsletter_w20_h20 %]</p>
Liste déroulante
[% data_form_field_dropdown_w250_h30_options[Option1,Option2,Option3] %]
[% data_form_field_dropdown_country_w300_h30_options[France,Belgique,Suisse,Canada] %]
options[A,B,C]. Une liste déroulante sans options ne sera pas créée.Boutons radio
[% data_form_field_radio_w20_h20_options[Homme,Femme,Autre] %]
[% data_form_field_radio_payment_w20_h20_options[Carte,Virement,Espèces] %]
Les boutons radio portant le même nom forment un groupe — une seule option peut être sélectionnée à la fois.
Champs spécialisés
Champ numérique
[% data_form_field_number_w100_h30 %]
[% data_form_field_number_age_w80_h30_min18_max120 %]
[% data_form_field_number_quantity_w60_h30_min1_max99 %]
Champ date
[% data_form_field_date_w150_h30_format_dd_mm_yyyy %]
[% data_form_field_date_birthdate_w150_h30_format_dd_mm_yyyy_required %]
Formats disponibles :
format_dd_mm_yyyy— JJ/MM/AAAA (européen)format_mm_dd_yyyy— MM/JJ/AAAA (américain)format_yyyy_mm_dd— AAAA-MM-JJ (ISO)
Champ peigne (pour les codes)
[% data_form_field_text_zipcode_w150_h30_max5_comb %]
[% data_form_field_text_serial_w200_h30_max10_comb %]
Utilisez pour : codes postaux, numéros de série, codes de vérification. Chaque caractère a sa propre case visuelle.
Champs sans bordure
[% data_form_field_text_w300_h30_noborder %]
[% data_form_field_text_user_id_w200_h30_invisible_readonly %]
Utilisez pour des formulaires élégants sans rectangles noirs, des champs de métadonnées invisibles, ou des valeurs pré-remplies. L’option noborder met la bordure à 0 et l’arrière-plan en transparent tout en gardant le champ fonctionnel.
Technique des lignes pointillées : combinez un marqueur en blanc, noborder, et des lignes pointillées en dessous :
<p style="color: white;">[% data_form_field_text_email_w350_h30_noborder_email %]</p>
<p style="border-bottom: 1px dotted #999; width: 350px;"></p>
Le marqueur blanc est invisible dans le PDF, les lignes pointillées guident l’utilisateur, et le champ généré est transparent et fonctionnel.
Options des champs
Dimensions
Requises pour un rendu correct :
| Option | Description |
|---|---|
w{largeur} | Largeur en pixels |
h{hauteur} | Hauteur en pixels |
Tailles recommandées :
| Type de champ | Largeur | Hauteur |
|---|---|---|
| Nom court | 150–250 px | 30 px |
| 300–400 px | 30 px | |
| Adresse | 400–500 px | 30 px |
| Zone de texte | 400–600 px | 80–150 px |
| Case à cocher | 20 px | 20 px |
| Liste déroulante | 200–300 px | 30 px |
| Date | 120–150 px | 30 px |
| Nombre | 60–100 px | 30 px |
État du champ
| Option | Description |
|---|---|
required | Champ obligatoire |
mandatory | Alias de required |
readonly | Lecture seule (non modifiable) |
Contraintes
| Option | Description |
|---|---|
max{nombre} | Longueur maximale (texte) ou valeur maximale (nombre) |
min{nombre} | Valeur minimale (nombre uniquement) |
Alignement et style
| Option | Description |
|---|---|
left | Texte aligné à gauche (par défaut) |
center | Texte centré |
right | Texte aligné à droite |
font{taille} | Taille de police (10, 12, 14, etc.) |
Valeurs par défaut
Pré-remplissez un champ avec default_{valeur}. Remplacez les espaces par des tirets bas :
[% data_form_field_text_country_w200_h30_default_France %]
[% data_form_field_text_w300_h30_default_Entrez_votre_nom %]
Noms de champs personnalisés
Le premier élément non reconnu dans le marqueur devient le nom du champ :
[% data_form_field_text_firstname_w200_h30 %]
Ici firstname est le nom du champ. Utilisez des noms descriptifs en snake_case (user_email plutôt que email1) pour faciliter le traitement des données.
Exemples complets
Formulaire de contact
<h1>Formulaire de contact</h1>
<p>Nom : [% data_form_field_text_lastname_w300_h30_required %]</p>
<p>Prénom : [% data_form_field_text_firstname_w300_h30_required %]</p>
<p>E-mail : [% data_form_field_text_email_w350_h30_required_email %]</p>
<p>Téléphone : [% data_form_field_text_phone_w200_h30_phone %]</p>
<p>Message :</p>
<p>[% data_form_field_textarea_message_w500_h120_required_max1000 %]</p>
<p>☐ J'accepte d'être contacté(e) [% data_form_field_checkbox_accept_w20_h20 %]</p>
Formulaire d’inscription
<h1>Formulaire d'inscription</h1>
<h2>Informations personnelles</h2>
<p>Civilité : [% data_form_field_dropdown_civility_w100_h30_options[M.,Mme] %]</p>
<p>Nom : [% data_form_field_text_lastname_w250_h30_required %]</p>
<p>Prénom : [% data_form_field_text_firstname_w250_h30_required %]</p>
<p>Date de naissance : [% data_form_field_date_birthdate_w150_h30_format_dd_mm_yyyy %]</p>
<p>Âge : [% data_form_field_number_age_w80_h30_min18_max120 %]</p>
<h2>Contact</h2>
<p>E-mail : [% data_form_field_text_email_w350_h30_required_email %]</p>
<p>Téléphone : [% data_form_field_text_phone_w200_h30_phone %]</p>
<h2>Adresse</h2>
<p>Rue : [% data_form_field_text_address_w450_h30_required %]</p>
<p>Code postal : [% data_form_field_text_zipcode_w120_h30_max5_comb %]</p>
<p>Ville : [% data_form_field_text_city_w250_h30_required %]</p>
<p>Pays : [% data_form_field_dropdown_country_w250_h30_options[France,Belgique,Suisse,Canada] %]</p>
<h2>Conditions</h2>
<p>☐ J'accepte les conditions [% data_form_field_checkbox_accept_terms_w20_h20_required %]</p>
<p>☐ S'inscrire à la newsletter [% data_form_field_checkbox_newsletter_w20_h20 %]</p>
Dépannage
Marqueur non détecté
Le marqueur reste visible dans le PDF final. Vérifiez :
- Le préfixe est exactement
data_form_field(pasform_fieldnidata_field) - Les délimiteurs sont
[%et%](pas{%%}ni d’autres crochets) - Il n’y a pas de saut de ligne à l’intérieur du marqueur
Champ mal positionné
Ajustez les dimensions w et h et assurez-vous qu’il y a suffisamment d’espace dans le modèle autour du marqueur.
Liste déroulante ou radio sans options
Les listes déroulantes et les boutons radio nécessitent le paramètre options[...]. Sans lui, le champ n’est pas créé.
[% data_form_field_dropdown_country_w250_h30_options[France,Belgique,Suisse] %]
Bonnes pratiques
- Commencez simple — testez avec 2 ou 3 champs avant de construire un formulaire complet
- Nommez vos champs — utilisez des noms descriptifs pour faciliter le traitement des données
- Testez en prévisualisation — vérifiez toujours votre modèle avant de générer des documents
- Utilisez des valeurs par défaut — pré-remplissez les champs courants pour réduire l’effort de saisie
- Masquez les marqueurs visuellement — donnez au marqueur la même couleur que l’arrière-plan pour le rendre invisible sous le champ :
<span style="color: white;">[% data_form_field_text_name_w300_h30 %]</span> - Combinez les styles de bordure — utilisez des bordures classiques pour les champs obligatoires et
noborderpour les champs secondaires afin de créer une hiérarchie visuelle
Limitations
- Les champs de signature ne sont pas pris en charge en tant que champs de formulaire interactifs
- La validation complexe au-delà des types de base (e-mail, téléphone) est limitée
- Les champs fonctionnent au mieux avec le moteur PDF v5
Pages associées
- Mise en page — contrôler la taille des pages et les marges
- CSS personnalisé — styliser vos formulaires
- Référence API Templates — documentation API pour les paramètres de modèle
Questions fréquentes
- PDFMonkey peut-il générer des formulaires PDF à remplir ?
- Oui. Activez l'option Formulaires PDF dans les paramètres de votre modèle, puis ajoutez la syntaxe de marqueurs dans votre HTML. PDFMonkey détecte les marqueurs et les convertit en champs interactifs AcroForm dans le PDF généré.
- Quels types de champs de formulaire PDFMonkey prend-il en charge ?
- PDFMonkey prend en charge les champs texte, zones de texte multiligne, cases à cocher, listes déroulantes, boutons radio, champs numériques, champs de date et champs peigne. Chaque type de champ accepte des options de dimensions, validation, alignement et valeurs par défaut.
- Les champs de formulaire PDF fonctionnent-ils avec l'API ?
- Oui. Activez les formulaires via l'API en définissant use_forms: true dans les paramètres de votre modèle. La syntaxe de marqueurs dans le HTML du modèle est traitée lors de la génération, produisant des champs interactifs dans le PDF de sortie.