Gerar documento (único)
PDF4me Gerar documento (único) gera um único documento mesclando um modelo (Word, HTML, ou PDF) com uma carga útil de dados (JSON, XML, ou CSV) em um REST chamada. O modelo pode ser Base64, um público URLou cru HTMLOs dados podem ser texto embutido, um Base64arquivo codificado, ou um URLRetorna o resultado renderizado. PDF, Docx, ou HTML como binário (200) ou via um Location-cabeçalho da pesquisa URL (202).
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
/api/v2/GenerateDocumentSinglehttps://api.pdf4me.com/api/v2/GenerateDocumentSingleFatos importantes que você não deve perder
textoDoDocumento ou arquivo de dados do documentotextoDoDocumento para em linha JSON / XML / CSV. Usar arquivo de dados do documento para um Base64-arquivo de dados codificado ou um público URL.PDF ou DocxO HTML aceita HTML Somente PDF. Aceita PDF Apenas. A grafia exata das letras maiúsculas e minúsculas é importante.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é 200 com o arquivo renderizado (padrão) pdf4meAsyncRequest padrão).HTTP configurar
Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/GenerateDocumentSingle
Tipo de conteúdo: aplicativo/json
Autorização: Básico <seu PDF4me API chave>
Enviar IsAsync: verdadeiro no corpo. 200 Retorna os bytes do arquivo renderizado. 202 retorna um Localização cabeçalho com uma enquete URL; GET que URL com o mesmo cabeçalho de autorização até 200.
Matriz variante (relevante para o Postman)
Selecione uma variante de modelo (T1 / T2 / T3) e uma variante de dados (D1 / D2 / D3). Seis combinações abrangem todas as chamadas.
Modelo (templateFileData)
| Código | Fonte | Valor do carteiro em dados do arquivo de modelo | Também necessário |
|---|---|---|---|
| T1 | Base64 | Base64 template file (strip data:...;base64, prefix if present) | templateFileName |
| T2 | URL | Full HTTPS URL string (not downloaded by the API request body) | templateFileName |
| T3 | HTML code | Base64-encoded UTF-8 HTML: Buffer.from(html, "utf8").toString("base64") | templateFileName, templateFileType: HTML |
Dados do documento (um de dois) API campos)
| Código | Fonte | Campo da API | Valor do carteiro |
|---|---|---|---|
| D1 | Text | documentDataText | Raw JSON / XML / CSV string |
| D2 | Base64 | documentDataFile | Base64 of the data file (strip data-URL prefix if present) |
| D3 | URL | documentDataFile | Full HTTPS URL to .json / .xml / .csv |
Regra: exatamente um de textoDoDocumento ou arquivo de dados do documento Deve ser definido. Omita o campo não utilizado do corpo.
Combinações comuns
| # | Modelo | Dados | Uso típico |
|---|---|---|---|
| 1 | T1 Docx base64 | D1 JSON text | Word mail-merge to PDF |
| 2 | T2 Docx URL | D3 JSON URL | Hosted template + hosted data |
| 3 | T3 HTML | D1 JSON text | HTML mustache rendered to HTML / PDF |
| 4 | T1 PDF form | D2 JSON base64 | PDF template + encoded data file |
| 5 | T2 MailMerge URL | D1 XML text | Word merge fields + inline XML |
templateFileType → tipo de saída permitido
tipoDeArquivoDeModelo | Permitido tipo de saída | Notas |
|---|---|---|
Docx | PDF, Docx | PDF4me Word template |
MailMerge | PDF, Docx | Mail merge Word |
GoogleDocs | PDF, Docx | Google Docs export style |
HTML | HTML only | Mustache in HTML |
PDF | PDF only | PDF form / template |
API campos corporais
Sempre enviado
| Campo | Obrigatório | Tipo | Notas |
|---|---|---|---|
templateFileType | Yes | string | Docx, HTML, PDF, MailMerge, GoogleDocs |
templateFileName | Yes | string | With extension, e.g. template.docx, template.html, template.pdf |
templateFileData | Yes | string | Base64 template, or template URL string |
documentDataType | Yes | string | Json, XML, or Csv (exact casing) |
outputType | Yes | string | PDF, Docx, or HTML (see allowed-output table above) |
IsAsync | Yes | boolean | true |
Dados do documento (um caminho)
| Campo | Necessário quando | Tipo | Notas |
|---|---|---|---|
documentDataText | D1 (text) | string | Valid JSON when documentDataType is Json; XML must look like XML; CSV non-empty |
documentDataFile | D2 or D3 | string | Base64 data file or URL to data file |
Opcional
| Campo | Quando | Padrão |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
documentDataFile | D1 text path is used | Omitted |
documentDataText | D2 or D3 path is used | Omitted |
Regras de validação
| Verificar | Detalhe |
|---|---|
| Template URL | Non-empty, valid URL. |
| Template base64 | Non-empty after optional data-URL strip. |
| HTML code | Only when templateFileType is HTML. Empty is rejected. Auto-wraps <html> if missing. |
| JSON text | Must parse successfully with JSON.parse. |
| XML text | Must start with < and contain >. |
| CSV text | Non-empty after trim. |
| Either data source | documentDataFile or documentDataText is required. |
Exemplos de espaço reservado
| Item | Exemplo |
|---|---|
| Template URL (Docx) | https://example.com/template.docx |
| Template name | template.docx / template.html / template.pdf |
| Data URL (JSON) | https://example.com/data.json |
| Data file name | data.json |
| JSON text | {"name": "John Doe", "email": "[email protected]", "items": [{"product": "Widget", "price": 29.99}]} |
| XML text | <?xml version="1.0"?><root><name>John Doe</name></root> |
| CSV text | name,email\nJohn Doe,[email protected] |
| HTML template | <!DOCTYPE html>...{{title}}... |
Exemplos de cargas úteis
1. Modelo do Word (base64) + JSON texto → PDF
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataText": "{\"name\": \"John Doe\", \"email\": \"[email protected]\", \"items\": [{\"product\": \"Widget\", \"price\": 29.99}]}",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
2. Modelo do Word (URL) + JSON dados (URL) → PDF
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataFile": "https://example.com/data.json",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
3. Modelo do Word (base64) + JSON dados (base64) → Saída em formato de palavra
documentDataFile contém base64 do JSON bytes do arquivo (não o objeto analisado).
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "eyJuYW1lIjogIkpvaG4gRG9lIn0=",
"outputType": "Docx",
"IsAsync": true
}
4. HTML modelo (base64 de HTML arquivo) + JSON texto → HTML
Para cru HTML No Postman, envie a mesma carga útil. n8n O nó faria: codificado em base64 HTML em templateFileData.
{
"templateFileType": "HTML",
"templateFileName": "template.html",
"templateFileData": "PCFET0NUWVBFIGh0bWw+...",
"documentDataType": "Json",
"documentDataText": "{\"title\": \"Invoice\", \"heading\": \"Hello\", \"content\": \"World\"}",
"outputType": "HTML",
"IsAsync": true
}
5. Mala direta (URL) + XML texto → PDF
{
"templateFileType": "MailMerge",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "XML",
"documentDataText": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><name>John Doe</name><email>[email protected]</email></root>",
"outputType": "PDF",
"IsAsync": true
}
6. PDF Modelo de formulário (base64) + CSV texto → PDF (editável)
{
"templateFileType": "PDF",
"templateFileName": "template.pdf",
"templateFileData": "JVBERi0xLjQKJcfsj6IK...",
"documentDataType": "Csv",
"outputType": "PDF",
"KeepPdfEditable": true,
"IsAsync": true
}
7. Estilo do Google Docs (base64) + JSON URL → Docx
{
"templateFileType": "GoogleDocs",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "https://example.com/data.json",
"outputType": "Docx",
"IsAsync": true
}
Dicas de coleta do carteiro
exemplo de curl
curl -X POST https://api.pdf4me.com/api/v2/GenerateDocumentSingle \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataFile": "https://example.com/data.json",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}' \
--output generated.pdf
Referência rápida: obrigatório vs. opcional por variante
| Campo | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Qualquer PDF fora |
|---|---|---|---|---|---|
templateFileType | Req | Req | Req | Req | Req |
templateFileName | Req | Req | Req | Req | Req |
templateFileData | Req (b64) | Req (URL) | Req (b64) | Req (b64 HTML) | Req |
documentDataType | Req | Req | Req | Req | Req |
outputType | Req | Req | Req | Req | Req |
documentDataText | Req | Omit | Omit | Req | Omit |
documentDataFile | Omit | Req (URL) | Req (b64) | Omit | Omit |
IsAsync | Req | Req | Req | Req | Req |
KeepPdfEditable | Opt | Opt | Opt | N/A* | Opt if PDF |
*ManterPdfEditável só se aplica quando tipo de saída é PDF; o API força falso caso contrário.