Pular para o conteúdo principal

Preencha um PDF Forma

O que este endpoint faz

PDF4me Preencha um formulário em PDF Preenche os campos do AcroForm em um PDF modelo com valores de um JSON objeto em um único REST ligar. Enviar o modelo como Base64 ou um público URL, envie os valores dos campos como uma string. matriz de dadose receba o preenchido PDF como bytes binários (200) ou por meio de uma consulta ao cabeçalho Location. URL (202). Alternar ManterPdfEditável Para fornecer um formulário reeditável ou um registro estático simplificado.

Artigos relacionados no blogue
Ainda não há nenhuma publicação no blogue sobre esta funcionalidade — em breve.
Entretanto, explore o blogue da PDF4me para encontrar tutoriais e fluxos de trabalho para todas as plataformas.
Visite o blogue

Autenticando seu API Solicitar

Todo PDF4me REST A chamada deve incluir o seu API chave no Authorization Defina o cabeçalho como autenticação básica. Obtenha ou altere sua chave no painel do desenvolvedor.

Ponto final

PUBLICAR/api/v2/PreencherFormulárioPDF

Fatos importantes que você não deve perder

matriz de dados é uma STRING, não um objeto
O API espera uma stringificada JSONSempre envolva o conteúdo do seu formulário em JSON.stringify({...}) Antes de publicar. O envio de um objeto aninhado retorna um erro de desserialização.
As chaves devem corresponder exatamente aos nomes dos campos do AcroForm.
Os nomes dos campos diferenciam maiúsculas de minúsculas. Inspecione o modelo com o Adobe Acrobat. Preparar formulário Ou então, chame primeiro o endpoint Extract Form Data para obter uma lista limpa de todos os campos preenchíveis.
Async retorna 202 + cabeçalho Location
Com IsAsync: verdadeiro o API Pode responder com o código 202 e um cabeçalho de localização. GET que URL (mesma autorização) até que retorne 200 com o PDF binário. Padrão PDF4me padrão assíncrono (pdf4meAsyncRequest).

HTTP configurar

Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/FillPdfForm
Tipo de conteúdo: aplicativo/json
Autorização: Básico <seu PDF4me API chave>

Enviar IsAsync: verdadeiro no corpo. 200 retorna o preenchido PDF como bytes binários. 202 retorna um Localização cabeçalho com uma enquete URL; GET que URL com o mesmo cabeçalho de autorização até que retorne 200 com o PDF binário (mesma convenção que pdf4meAsyncRequest).

Matriz variante (relevante para o Postman)

Três variantes de entrada abrangem todas as chamadas do Postman / curl / SDK. Escolha a variante que corresponde ao seu caso. PDF Modelo e dados de formulário em tempo real.

VarianteModelo PDF (Conteúdo do documento modelo)Campos do formulárioCampos obrigatórios da API
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 campos corporais

Sempre enviado

CampoObrigatórioTipoPadrão / notas
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.

*templateDocName Deve sempre ser definido na solicitação; escolha um nome de arquivo adequado para que os nomes dos arquivos de saída sejam legíveis posteriormente.

Quando a entrada do formulário é JSON

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

Regras de dados de formulário (JSON caminho)

RegraDetalhe
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).

Exemplos de cargas úteis

Variante A. PDF Base64 + formulário JSON

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

matriz de dados Deve ser uma string, não uma lista aninhada. JSON objeto:
"dataArray": "{"firstname":"John","lastname":"Doe"}"

Variante B. URL do PDF + formulário 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 + formulário a partir de JSON em base64

Espaço reservado no repositório: eyJmaXJzdG5hbWUiOiJKb2huIn0={"firstname":"John"}.

Equivalente API corpo após decodificar o formulário JSON:

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

Opcional. Mantenha o formulário editável.

{
"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
}

Dicas de coleta do carteiro

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.

exemplo de 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

Referência rápida: obrigatório vs. opcional (Postman)

CampoA (PDF b64)B (URL do PDF)C (formulário 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

Exemplos de código

Perguntas frequentes

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.

Ações relacionadas

A mesma tarefa em outras plataformas.

Obtenha ajuda