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 :

  1. Allez dans l’onglet Paramètres de votre modèle
  2. Activez l’option PDF Forms
  3. 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 fin
  • data_form_field — préfixe requis pour la détection
  • TYPE — 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] %]
Vous devez spécifier toutes les options dans le marqueur avec 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 :

OptionDescription
w{largeur}Largeur en pixels
h{hauteur}Hauteur en pixels

Tailles recommandées :

Type de champLargeurHauteur
Nom court150–250 px30 px
E-mail300–400 px30 px
Adresse400–500 px30 px
Zone de texte400–600 px80–150 px
Case à cocher20 px20 px
Liste déroulante200–300 px30 px
Date120–150 px30 px
Nombre60–100 px30 px

État du champ

OptionDescription
requiredChamp obligatoire
mandatoryAlias de required
readonlyLecture seule (non modifiable)

Contraintes

OptionDescription
max{nombre}Longueur maximale (texte) ou valeur maximale (nombre)
min{nombre}Valeur minimale (nombre uniquement)

Alignement et style

OptionDescription
leftTexte aligné à gauche (par défaut)
centerTexte centré
rightTexte 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 :

  1. Le préfixe est exactement data_form_field (pas form_field ni data_field)
  2. Les délimiteurs sont [% et %] (pas {% %} ni d’autres crochets)
  3. 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

  1. Commencez simple — testez avec 2 ou 3 champs avant de construire un formulaire complet
  2. Nommez vos champs — utilisez des noms descriptifs pour faciliter le traitement des données
  3. Testez en prévisualisation — vérifiez toujours votre modèle avant de générer des documents
  4. Utilisez des valeurs par défaut — pré-remplissez les champs courants pour réduire l’effort de saisie
  5. 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>
    
  6. Combinez les styles de bordure — utilisez des bordures classiques pour les champs obligatoires et noborder pour 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

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.