Gerar documentos (múltiplos)
PDF4me Gerar documentos (múltiplos) renderiza vários documentos em um só. REST Ligue. Envie uma única palavra. HTML, ou PDF modelo (Base64, URLou cru HTML) mais uma matriz de registros (JSON ou XML, como texto, Base64 arquivo, ou URL). Retorna um JSON lista de arquivos gerados (uma entrada por registro) como Base64 em outputDocuments[].streamFileou um único valor binário, dependendo da resposta.
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/GenerateDocumentMultiplehttps://api.pdf4me.com/api/v2/GenerateDocumentMultipleO nome do endpoint é GerarDocumentoMúltiplo (singular Documento), não GerarDocumentosMúltiplos.
Fatos importantes que você não deve perder
documentosDeSaída[]nome_do_arquivo e um base64 arquivo de fluxo (às vezes Conteúdo do arquivo, contente, ou dadosDecodifique cada string base64 para salvar o arquivo.Docx, HTML, PDFTipos de dados limitados a JSON, XML. A saída adiciona xlsx para Word / PDF modelos.HTTP configurar
Método: PUBLICAR
URL: https://api.pdf4me.com/api/v2/GenerateDocumentMultiple
Tipo de conteúdo: aplicativo/json
Autorização: Básico <seu PDF4me API chave>
Enviar IsAsync: verdadeiro no corpo. 200 pode retornar JSON com documentosDeSaída[] ou um único arquivo binário. 202 retorna um Localização cabeçalho com uma enquete URL.
Diferenças em relação à geração de documento (único)
| Tópico | Múltiplos | Solteiro |
|---|---|---|
| Endpoint | /api/v2/GenerateDocumentMultiple | /api/v2/GenerateDocumentSingle |
| templateFileType | Docx, HTML, PDF only | Also MailMerge, GoogleDocs |
| documentDataType | Json, XML only | Also Csv |
| outputType | PDF, Docx, xlsx (Word/PDF), HTML | No xlsx |
| Data shape | Typically array of records (one doc per row) | Usually one object |
| outputFileName | Integration-UI only (output naming) | Not in API body either |
Matriz variante (relevante para o Postman)
Modelo (templateFileData)
| Código | Fonte | Valor do carteiro | Também necessário |
|---|---|---|---|
| T1 | Base64 | Base64 template (strip data:...;base64, prefix if present) | templateFileName |
| T2 | URL | HTTPS URL string | templateFileName |
| T3 | HTML code | Base64(UTF-8 HTML): Buffer.from(html, "utf8").toString("base64") | templateFileName, templateFileType: HTML |
Dados do documento
| Código | Fonte | Campo da API | Valor do carteiro |
|---|---|---|---|
| D1 | Text | documentDataText | JSON array (or XML with multiple records) |
| D2 | Base64 | documentDataFile | Base64 of the .json / .xml file |
| D3 | URL | documentDataFile | URL to the data file |
Use qualquer um dos dois. textoDoDocumento ou arquivo de dados do documento (omitir o campo não utilizado).
templateFileType → tipo de saída permitido
tipoDeArquivoDeModelo | Permitido tipo de saída |
|---|---|
Docx | PDF, Docx, xlsx |
PDF | PDF, Docx, xlsx |
HTML | HTML only |
API campos corporais
Sempre enviado
| Campo | Obrigatório | Tipo | Notas |
|---|---|---|---|
templateFileType | Yes | string | Docx, HTML, PDF |
templateFileName | Yes | string | e.g. template.docx, template.html, template.pdf |
templateFileData | Yes | string | Base64 template, or template URL |
documentDataType | Yes | string | Json or XML (exact casing) |
outputType | Yes | string | PDF, Docx, xlsx, or HTML |
IsAsync | Yes | boolean | true |
Dados do documento (um caminho)
| Campo | Necessário quando | Tipo | Notas |
|---|---|---|---|
documentDataText | D1 | string | Valid JSON (JSON.parse) or XML-like for XML |
documentDataFile | D2 or D3 | string | Base64 data file or URL |
Opcional
| Campo | Quando | Padrão |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
Regras de validação
| Verificar | Detalhe |
|---|---|
| Template URL / base64 | Same rules as Single. |
| HTML code | Only when templateFileType is HTML. |
| JSON text | Must parse with JSON.parse. |
| XML text | Looser than Single (no strict tag check); send XML the template expects. |
| Data source | documentDataFile or documentDataText is required. |
Formato de dados de múltiplos registros
Para JSON, utilize um array de objetos (um objeto por documento gerado):
[
]
Para XMLUse uma estrutura que seu modelo espera para linhas repetidas (mesma ideia da mala direta). API verifica apenas se JSON A análise sintática é feita pelo mecanismo de processamento; ele determina quantos documentos são produzidos.
API resposta (Carteiro)
Geralmente JSON, como:
{
"outputDocuments": [
{
"fileName": "document1.pdf",
"streamFile": "<base64>"
}
]
}
O nome do campo também pode aparecer como fileContent, content, ou dataDecodifique cada um Base64 sequência para salvar cada arquivo.
Exemplos de cargas úteis
1. Modelo do Word (base64) + JSON matriz (texto) → múltiplo PDFs
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataText": "[{\"name\": \"Alice\", \"email\": \"[email protected]\"}, {\"name\": \"Bob\", \"email\": \"[email protected]\"}]",
"outputType": "PDF",
"KeepPdfEditable": false,
"IsAsync": true
}
2. Modelo do Word (URL) + JSON dados (URL) → PDFs
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "https://example.com/template.docx",
"documentDataType": "Json",
"documentDataFile": "https://example.com/customers.json",
"outputType": "PDF",
"IsAsync": true
}
3. Modelo do Word (base64) + JSON Arquivo (base64) → Excel (xlsx)
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "W3sibmFtZSI6ICJBbGljZSJ9LCB7Im5hbWUiOiAiQm9iIn1d",
"outputType": "xlsx",
"IsAsync": true
}
(documentDataFile = base64 de [{"name":"Alice"},{"name":"Bob"}].)
4. HTML modelo (base64) + JSON matriz (texto) → HTML
{
"templateFileType": "HTML",
"templateFileName": "template.html",
"templateFileData": "PCFET0NUWVBFIGh0bWw+...",
"documentDataType": "Json",
"documentDataText": "[{\"title\": \"Invoice 1\", \"heading\": \"Hello\", \"content\": \"A\"}, {\"title\": \"Invoice 2\", \"heading\": \"Hi\", \"content\": \"B\"}]",
"outputType": "HTML",
"IsAsync": true
}
5. PDF modelo (URL) + XML (texto) → múltiplo PDFs
{
"templateFileType": "PDF",
"templateFileName": "template.pdf",
"templateFileData": "https://example.com/template.pdf",
"documentDataType": "XML",
"documentDataText": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><records><record><name>Alice</name></record><record><name>Bob</name></record></records>",
"outputType": "PDF",
"KeepPdfEditable": true,
"IsAsync": true
}
6. Modelo do Word (base64) + XML (URL) → Word (Docx)
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "XML",
"documentDataFile": "https://example.com/data.xml",
"outputType": "Docx",
"IsAsync": true
}
Dicas de coleta do carteiro
exemplo de curl
curl -X POST https://api.pdf4me.com/api/v2/GenerateDocumentMultiple \
-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",
"documentDataText": "[{\"name\":\"Alice\"},{\"name\":\"Bob\"}]",
"outputType": "PDF",
"IsAsync": true
}' \
--output response.json
Referência rápida: obrigatório vs. opcional por variante
| Campo | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Saída em PDF |
|---|---|---|---|---|---|
templateFileType | Req | Req | Req | Req | Req |
templateFileName | Req | Req | Req | Req | Req |
templateFileData | Req (b64) | Req (URL) | Req (b64) | Req (b64) | Req |
documentDataType | Req | Req | Req | Req | Req |
outputType | Req | Req | Req | Req | Req |
documentDataText | Req | Omit | Omit | Req | Omit |
documentDataFile | Omit | Req | Req | Omit | Omit |
IsAsync | Req | Req | Req | Req | Req |
KeepPdfEditable | Opt | Opt | Opt | N/A* | Opt |
*Somente quando tipo de saída é PDF.