Développeurs & QA

L’éditeur de champs AcroForm gratuit pour les développeurs

Définissez et inspectez les définitions de champs AcroForm avec des noms de champ, des types et des valeurs par défaut exacts — puis exportez un PDF propre et standard que vous pouvez remplir programmatiquement avec pdf-lib, iText, PDFBox ou pdftk. Basé sur pdf-lib et PDF.js, il s’exécute entièrement dans votre navigateur. Sans backend, aucun téléversement, sans compte.

Ouvrez l’éditeur de champs — gratuit
  • Uniquement dans le navigateur
  • Sortie AcroForm standard
  • Basé sur pdf-lib + PDF.js
  • Sans compte
Un développeur travaillant à un bureau avec du code à l’écran, créant et inspectant des champs de formulaire PDF

Qu’est-ce que FormForge ?

FormForge est un éditeur de formulaires PDF gratuit et basé sur le navigateur qui transforme n’importe quel PDF en un formulaire remplissable — aucun téléversement, sans compte et sans installer de logiciel.

Prix
Gratuit
Compte obligatoire
Non
Où les fichiers sont traités
Localement dans votre navigateur
Format d’exportation
PDF remplissable (AcroForm)
Fonctionne hors ligne
Oui, une fois la page chargée
Le problème

Conçu pour les développeurs qui remplissent des PDF dans le code

Quiconque remplit, génère ou teste des PDF AcroForm de façon programmatique le sait : dessiner n’a jamais été le plus difficile — le difficile, c’est d’obtenir des noms de champ, des types et des valeurs par défaut exacts. Voici comment FormForge répond à chacun de ces points, sans rien promettre qu’il ne puisse tenir.

Le remplissage programmatique casse dès que les noms et les types de champ ne correspondent pas exactement.

Le panneau de propriétés vous donne un contrôle total sur le nom, le type, la valeur par défaut et l’indicateur de champ obligatoire de chaque champ. Ce que vous saisissez est exactement le nom partiel de champ écrit dans le PDF — sans préfixe ni renommage. Ainsi votre script pdf-lib ou PDFBox vise précisément la chaîne que vous voyez dans l’éditeur.

Vous devez inspecter un PDF tiers et découvrir les champs qu’il définit déjà.

Importez n’importe quel PDF existant : FormForge le rend avec PDF.js et affiche chaque champ sur le canevas. Vous pouvez ainsi lire et modifier le nom et le type de chaque champ avant d’écrire la moindre ligne de code de remplissage contre le formulaire d’un fournisseur.

Écrire du code de génération juste pour des fixtures de test à usage unique, c’est excessif.

Pour une fixture unique, l’éditeur visuel bat n’importe quel script de génération : placez les champs, définissez la configuration de cas limite dont vous avez besoin et exportez. Réservez la voie du code aux remplissages qui s’exécutent réellement en CI.

Vous ne faites pas confiance au premier « outil PDF gratuit » venu qui téléverse vos fichiers sur un serveur.

FormForge fonctionne exclusivement côté client — le rendu, l’édition et l’exportation s’exécutent entièrement dans l’onglet, et rien n’est téléversé. Il est basé sur pdf-lib pour l’exportation et PDF.js pour le rendu, vous pouvez donc raisonner exactement sur ce qu’il fait. Sans compte, sans serveur intermédiaire.

En pratique

Trois flux de travail pour les développeurs et la QA

De la création d’une fixture à l’inspection du formulaire d’un fournisseur en passant par la construction de cas limites délicats — chacun réalisé dans le navigateur et produisant un PDF AcroForm standard.

Éditeur FormForge ajoutant des champs de texte et numériques nommés à un modèle de facture pour le remplissage programmatique
1

Ajoutez des champs à un modèle, puis remplissez-le avec pdf-lib

Importez un modèle de facture, placez des champs de texte et numériques et nommez-les avec précision — invoice_number, client_name, amount_due. Exportez le PDF remplissable et lisez ces noms directement dans le script pdf-lib ci-dessous. Sans deviner les noms de champ.

Panneau de propriétés de FormForge affichant le nom et le type exacts d’un champ importé depuis le PDF d’un fournisseur
2

Importez le PDF d’un fournisseur pour découvrir ses noms de champ

Ouvrez le formulaire d’un tiers : FormForge le rend avec PDF.js et affiche chaque champ sur la page. Lisez le nom et le type exacts de chaque champ avant d’écrire du code de remplissage contre des définitions AcroForm qui ne sont pas les vôtres.

Aperçu FormForge d’une fixture de test de cas limite avec un groupe de boutons radio, une liste déroulante et un champ numérique obligatoire
3

Construisez des fixtures de test de cas limites

Créez les cas délicats dont votre suite de tests a besoin : un groupe de boutons radio avec plusieurs options, une liste déroulante avec une longue liste d’options, un champ numérique obligatoire, une valeur par défaut en lecture seule. Prévisualisez-le, exportez et versionnez la fixture dans vos données de test.

Copier-coller

Remplissez votre formulaire exporté avec pdf-lib

Exportez le formulaire depuis FormForge, puis ciblez les noms de champ exacts du panneau de propriétés. C’est du pdf-lib standard contre un AcroForm standard — les mêmes noms de champ fonctionnent avec iText, PDFBox ou pdftk.

fill-invoice.mjs
JavaScript
import { readFile, writeFile } from 'node:fs/promises'
import { PDFDocument } from 'pdf-lib'

// Le PDF remplissable que vous avez exporté depuis FormForge
const bytes = await readFile('invoice-form.pdf')
const pdfDoc = await PDFDocument.load(bytes)
const form = pdfDoc.getForm()

// Utilisez les noms de champ exacts affichés dans le panneau de propriétés de FormForge
form.getTextField('invoice_number').setText('INV-1042')
form.getTextField('client_name').setText('Acme Corp')
form.getTextField('amount_due').setText('1250.00')
form.getCheckBox('paid').check()
form.getDropdown('payment_terms').select('Net 30')

await writeFile('invoice-filled.pdf', await pdfDoc.save())

Vérifié : ce fragment a été exécuté avec pdf-lib 1.17 contre un formulaire créé via la voie d’exportation exacte de FormForge — les cinq valeurs de champ ont été conservées intactes. Les champs de date et numériques sont exportés comme des champs de texte standard, remplissez-les donc avec getTextField(name).setText(...). Pour un groupe de boutons radio, utilisez form.getRadioGroup(groupName).select(optionName).

Sous le capot

Sans magie — juste des AcroForms, pdf-lib et PDF.js

Ce public respecte le stack, voici donc exactement ce qui se passe. FormForge est une application côté client : votre PDF est chargé dans le navigateur, édité et exporté sans jamais toucher un serveur. Tout ce qui suit s’exécute dans votre onglet.

Champs AcroForm standard

Les champs sont des widgets AcroForm simples — texte, case à cocher, groupe de boutons radio, liste déroulante, plus date/numéro/signature construits sur des champs de texte. Sans XFA, sans couche propriétaire, n’importe quelle bibliothèque compatible AcroForm peut donc lire et remplir la sortie.

Exportation avec pdf-lib

À l’exportation, pdf-lib charge vos octets d’origine, supprime tout AcroForm préexistant et recrée chaque champ via createTextField / createCheckBox / createRadioGroup / createDropdown avec les noms exacts que vous avez définis. Les apparences sont générées, les champs se rendent donc avant même qu’un lecteur ne les touche.

Rendu avec PDF.js

La page que vous voyez et sur laquelle vous placez les champs est votre PDF réel rasterisé par PDF.js de Mozilla. Les positions des champs sont converties, à l’exportation, du canevas à l’écran vers l’espace utilisateur du PDF (origine en bas à gauche), donc là où vous placez est là où ça se pose.

Brouillons dans IndexedDB

Le travail en cours est enregistré automatiquement dans l’IndexedDB du navigateur (via idb) sur votre appareil — pas sur un serveur. Fermez l’onglet et votre brouillon est toujours là ; effacez les données du site et il disparaît. Le PDF exporté est l’artefact portable que vous conservez.

Côté client par conception

Vos PDF ne quittent jamais le navigateur

Les PDF de test contiennent souvent des données réelles ou réalistes — dossiers clients, modèles internes, mises en page de documents encore non publiées — qui n’ont rien à faire sur un serveur tiers. FormForge traite chaque PDF localement : le rendu, l’édition des champs et l’exportation s’exécutent dans l’onglet, et rien n’est téléversé. Il n’y a aucun compte qui stocke vos fichiers ni aucun serveur de fournisseur intermédiaire — ce que vous pouvez vérifier vous-même dans l’onglet réseau du navigateur. Pour un outil basé sur pdf-lib et PDF.js, ce n’est pas une affirmation marketing, c’est simplement la façon dont l’application est construite.

Traitement dans l’onglet

Le chargement, le rendu, l’édition et l’exportation se font côté client — sans aller-retour serveur pour le fichier.

Rien n’est téléversé

Ouvrez l’onglet réseau et vérifiez vous-même : les octets de votre PDF ne sont jamais transmis nulle part.

Stack ouvert et inspectable

Basé sur pdf-lib et PDF.js — des bibliothèques connues sur lesquelles vous pouvez raisonner, pas une boîte noire.

Lire la politique de confidentialité
Gratuit

Gratuit — parce qu’il n’y a aucun backend à payer

FormForge est gratuit précisément parce qu’il s’exécute entièrement dans votre navigateur : aucun serveur ne traite vos fichiers, il n’y a donc rien à mesurer ni à facturer. Sans compte, sans carte bancaire, sans licence par utilisateur, et tous les types de champ sont inclus. Pour être franc : nous ne pouvons pas promettre que cela reste gratuit indéfiniment, mais aujourd’hui il n’y a aucun coût, quota ni abonnement pour l’utiliser.

  • Sans compte
  • Aucun backend à facturer
  • Tous les types de champ inclus
  • Aucun quota de formulaires par mois
Ouvrez l’éditeur — gratuit
Foire aux questions

Questions des développeurs et de la QA

Puis-je contrôler les noms de champ exacts ?
Oui — c’est tout l’intérêt de l’outil. Le nom que vous saisissez dans le panneau de propriétés est écrit littéralement comme nom partiel du champ dans le PDF exporté ; FormForge n’ajoute pas de préfixe, d’espace de noms, et ne modifie rien. Ainsi la chaîne que vous voyez dans l’éditeur est exactement celle que vise votre code pdf-lib, iText, PDFBox ou pdftk. Ce contrôle sur les noms, les types et les valeurs par défaut est la fonctionnalité clé pour le remplissage programmatique.
Qu’exporte-t-il — AcroForm ou XFA ?
De l’AcroForm standard. Les champs sont créés avec pdf-lib comme des widgets AcroForm simples : texte, case à cocher, groupe de boutons radio et liste déroulante, avec date, numéro et signature construits sur des champs de texte. Il n’y a ni XFA ni couche propriétaire, la sortie est donc un PDF remplissable propre et largement compatible que n’importe quel lecteur ou bibliothèque compatible AcroForm peut lire.
Puis-je inspecter les champs d’un PDF existant ?
Oui. Importez n’importe quel PDF : FormForge le rend avec PDF.js et affiche les champs sur le canevas, où vous pouvez lire et modifier le nom et le type de chaque champ. C’est un moyen rapide de découvrir les noms de champ exacts que définit le formulaire d’un tiers ou d’un fournisseur avant d’écrire du code de remplissage contre lui. Si un champ utilise un type exotique que FormForge ne modélise pas, ré-exporter reconstruit le formulaire à partir des champs qu’il prend en charge — traitez donc l’inspection comme une lecture-et-reconstruction, pas comme un passage octet par octet.
La sortie est-elle compatible avec le remplissage via pdf-lib / iText / PDFBox ?
Oui. Comme les champs sont des champs AcroForm standard, n’importe quelle bibliothèque compatible AcroForm les remplit par leur nom. Avec pdf-lib, vous utilisez form.getTextField(name).setText(...), form.getCheckBox(name).check() et form.getDropdown(name).select(option) ; iText et PDFBox exposent les mêmes champs via leurs propres API. Nous avons vérifié un remplissage avec pdf-lib contre un formulaire créé via la voie d’exportation exacte de FormForge et toutes les valeurs ont été conservées intactes — le fragment fonctionnel est ci-dessus.
Comment remplir un champ numérique ou de date dans le code ?
Comme un champ de texte. FormForge exporte les champs de date et numériques comme des champs de texte AcroForm standard (aucune action de formatage JavaScript intégrée), remplissez-les donc avec form.getTextField(name).setText('2026-07-21') — la validation et le formatage restent à votre charge, dans le code ou dans le lecteur. Ainsi la sortie reste la plus portable possible entre bibliothèques et lecteurs.
Pourquoi est-ce gratuit ? (la réponse honnête)
Parce qu’il n’y a aucun backend. Chaque PDF est traité dans votre navigateur, il n’y a donc aucun serveur qui fait le travail ni rien à mesurer ou facturer — c’est précisément ce qui rend le « gratuit » durable ici, plutôt qu’un produit d’appel à perte. Il n’y a ni compte, ni carte bancaire, ni quota de formulaires par mois. En toute honnêteté : nous ne pouvons pas promettre que cela reste gratuit indéfiniment, mais pour l’utiliser aujourd’hui il n’y a vraiment aucun coût, vente incitative ni abonnement.

Créez maintenant votre premier AcroForm — gratuit

Gratuit. Uniquement côté client, sans compte, aucun téléversement. Basé sur pdf-lib et PDF.js — placez vos champs, nommez-les avec précision et exportez un PDF remplissable standard que vous pouvez remplir dans le code.

Ouvrez l’éditeur de champs — gratuit