Aller au contenu principal

Remplissez un PDF Formulaire

Que fait ce point de terminaison ?

PDF4me Remplir un formulaire PDF remplit les champs AcroForm dans un PDF modèle avec des valeurs provenant d'un JSON objet dans un seul REST appel. Envoyez le modèle comme Base64 ou un public URL, envoyez les valeurs du champ sous forme de chaîne de caractères tableau de donnéeset recevez le formulaire rempli PDF sous forme d'octets binaires (200) ou via une requête d'en-tête Location URL (202). Basculer Conserver le PDF modifiable pour fournir un formulaire modifiable ou un enregistrement statique aplati.

Articles de blog connexes
Il n'y a pas encore d'article de blog consacré à cette fonctionnalité — à venir prochainement.
En attendant, n'hésitez pas à consulter le blog de PDF4me pour découvrir des tutoriels et des procédures de travail adaptés à toutes les plateformes.
Consultez le blog

Authentification de votre API Demande

Chaque PDF4me REST L'appel doit inclure votre API clé dans le Authorization En-tête : Authentification de base. Récupérez ou renouvelez votre clé depuis le tableau de bord développeur.

Point de terminaison

POSTE/api/v2/RemplirPdfForm

Informations importantes à ne pas manquer

tableau de données est une chaîne de caractères, pas un objet
Le API attend une chaîne de caractères JSONEnveloppez toujours la charge utile de votre formulaire dans JSON.stringify({...}) Avant l'envoi. L'envoi d'un objet imbriqué renvoie une erreur de désérialisation.
Les clés doivent correspondre exactement aux noms des champs AcroForm.
Les noms de champs sont sensibles à la casse. Examinez le modèle avec Adobe Acrobat. Préparer le formulaire ou appelez d'abord le point de terminaison Extract Form Data pour obtenir une liste propre de tous les champs remplissables.
Async renvoie 202 + en-tête Location
Avec IsAsync : vrai le API peut répondre 202 et un en-tête Location. GET que URL (même autorisation) jusqu'à ce qu'elle renvoie 200 avec le PDF binaire. Standard PDF4me modèle asynchrone (pdf4meAsyncRequest).

HTTP installation

Méthode: POSTE
URL: https://api.pdf4me.com/api/v2/FillPdfForm
Type de contenu : application/json
Autorisation: Basique <votre PDF4me API clé>

Envoyer IsAsync : vrai dans le corps. 200 renvoie le rempli PDF sous forme d'octets binaires. 202 renvoie un Emplacement En-tête avec un sondage URL; GET que URL avec le même en-tête d'autorisation jusqu'à ce qu'il renvoie 200 avec le PDF binaire (même convention que pdf4meAsyncRequest).

Matrice des variantes (pertinente pour Postman)

Trois variantes de saisie couvrent tous les appels Postman / curl / SDK. Choisissez la variante qui correspond à votre situation. PDF Les données du modèle et du formulaire sont en direct.

VarianteModèle PDF (templateDocContent)Champs de formulaireChamps API obligatoires
ABase64 PDFJSON object → stringify → dataArrayAll rows in the JSON-form table below.
BPublic PDF URLJSON object → stringify → dataArraySame as A; templateDocContent is the URL string.
CBase64 PDFBase64-encoded JSON file → decode → stringify into dataArraySame as A; build dataArray from the decoded JSON.

API champs corporels

Toujours envoyé

ChampRequisTaperPar défaut / notes
templateDocNameYes*stringFilename of the template, e.g. template.pdf. Derived from the source URL filename or defaulted to template.pdf. Used for downstream output naming.
templateDocContentYesstringBase64-encoded PDF (no data: prefix) OR a publicly reachable https URL to the PDF.
KeepPdfEditableNobooleanDefault false. Set true to keep AcroForm fields editable in the output PDF; false flattens the form into static text.
IsAsyncYesbooleanDefault true. Toggles the 200 / 202 + Location async pattern.

*nom_du_modèle doit toujours être spécifié dans la requête ; choisissez un nom de fichier pertinent afin que les noms des fichiers de sortie soient clairs en aval.

Lorsque l'entrée du formulaire est JSON

ChampRequisTaperNotes
dataArrayYesstringJSON.stringify({ ... }). Keys = AcroForm field names; values = strings to fill.
inputDataTypeYesstringAlways "json" for this path.
outputTypeYesstringAlways "pdf".

Règles relatives aux données de formulaire (JSON chemin)

RègleDétail
ShapeSingle object: {"fieldName": "value", ...}.
Not allowedEmpty array, or an array of multiple objects.
Base64 form inputDecode the UTF-8 JSON file, then JSON.stringify into dataArray. In Postman: put the decoded-then-stringified result directly into dataArray.
Data URLStrip the data:...;base64, prefix if present (applies to the PDF Base64 in templateDocContent).

Exemples de charges utiles

Variante A. PDF Base64 + formulaire JSON

{
"templateDocName": "application-form.pdf",
"templateDocContent": "JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"dataArray": "{\"firstname\": \"John\", \"lastname\": \"Doe\", \"email\": \"[email protected]\"}",
"inputDataType": "json",
"outputType": "pdf",
"KeepPdfEditable": false,
"IsAsync": true
}

tableau de données doit être une chaîne de caractères, et non une chaîne imbriquée JSON objet:
"dataArray": "{"firstname":"John","lastname":"Doe"}"

Variante B. URL du PDF + formulaire JSON

{
"templateDocName": "application-form.pdf",
"templateDocContent": "https://example.com/forms/application-form.pdf",
"dataArray": "{\"firstname\": \"John\", \"lastname\": \"Doe\", \"email\": \"[email protected]\"}",
"inputDataType": "json",
"outputType": "pdf",
"KeepPdfEditable": false,
"IsAsync": true
}

Variante C. PDF Base64 + formulaire à partir de JSON Base64

Espace réservé dans le dépôt : eyJmaXJzdG5hbWUiOiJKb2huIn0={"firstname":"John"}.

Équivalent API corps après avoir décodé le formulaire JSON:

{
"templateDocName": "application-form.pdf",
"templateDocContent": "JVBERi0xLjQKJcfsj6IKNSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZw...",
"dataArray": "{\"firstname\": \"John\"}",
"inputDataType": "json",
"outputType": "pdf",
"KeepPdfEditable": false,
"IsAsync": true
}

Facultatif. Conserver le formulaire modifiable.

{
"templateDocName": "application-form.pdf",
"templateDocContent": "https://example.com/forms/application-form.pdf",
"dataArray": "{\"firstname\": \"John\", \"lastname\": \"Doe\"}",
"inputDataType": "json",
"outputType": "pdf",
"KeepPdfEditable": true,
"IsAsync": true
}

Conseils pour la collecte par le facteur

Headers
Content-Type: application/json + Authorization: Basic <apiKey>.
Body
raw JSON. Copy one of the variant payloads above.
Response
Save as .pdf when status is 200 and the body is binary. If 202, GET the Location URL with the same Authorization until 200.
Field names
Must exactly match AcroForm names in the template. Use the Extract Form Data endpoint or a PDF editor if you are unsure.

Exemple curl

curl -X POST https://api.pdf4me.com/api/v2/FillPdfForm \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"templateDocName": "application-form.pdf",
"templateDocContent": "https://example.com/forms/application-form.pdf",
"dataArray": "{\"firstname\":\"John\",\"lastname\":\"Doe\"}",
"inputDataType": "json",
"outputType": "pdf",
"KeepPdfEditable": false,
"IsAsync": true
}' \
--output filled-form.pdf

Référence rapide : obligatoire vs facultatif (Postman)

ChampA (PDF b64)B (URL du PDF)C (formulaire b64 → JSON)
templateDocNameRequiredRequiredRequired
templateDocContentRequired (b64)Required (URL)Required (b64)
dataArrayRequiredRequiredRequired (from decoded JSON)
inputDataTypeRequired (json)Required (json)Required (json)
outputTypeRequired (pdf)Required (pdf)Required (pdf)
IsAsyncRequired (true)Required (true)Required (true)
KeepPdfEditableOptionalOptionalOptional

Exemples de code

FAQ

Why must dataArray be a stringified JSON, not a nested object?+
The API contract defines dataArray as a string field. The engine parses the string server-side. Sending a nested object returns a deserialization error. Always wrap your form values with JSON.stringify before posting.
What happens when KeepPdfEditable is true?+
The output PDF retains its AcroForm field definitions so the recipient can re-edit values in any PDF viewer. KeepPdfEditable false (the default) flattens the form into static text, useful for delivering a locked record of what was submitted.
How do I know the exact AcroForm field names?+
Open the template in Adobe Acrobat (Prepare Form), use any PDF editor with field inspection, or call the PDF4me Extract Form Data endpoint first. Keys in your dataArray JSON must match those names exactly, including case.
When should I use Variant B (PDF URL) over Variant A (Base64)?+
Use Variant B when the template is already hosted at a publicly reachable HTTPS URL. It avoids the Base64 size bloat (~33%) and is the simplest path for templates pinned in S3, CDN, or your own static asset host. Use Variant A when the template is private or local.
How does the async flow work?+
Send IsAsync true. If the API returns 200, the PDF binary is in the body. If it returns 202, read the Location response header for a poll URL. GET that URL with the same Authorization header. Continue polling (commonly 10s intervals up to 15 retries) until it returns 200 with the PDF.
Can I send an array of multiple form-data objects?+
No. The REST contract requires a single object inside dataArray (after JSON.stringify). To fill many forms, call the endpoint once per form.
My PDF Base64 has a data: prefix. Do I strip it?+
Yes. The API expects raw Base64 in templateDocContent. Strip any data:application/pdf;base64, prefix before posting.
How do I get back something other than PDF?+
You cannot. outputType is fixed to pdf for this endpoint. To rasterize the filled PDF into PNG / JPEG, chain a downstream PDF4me Convert PDF to Image call.

Actions connexes

Même tâche sur d'autres plateformes

Obtenez de l'aide