Pular para o conteúdo principal

Gerar documentos (múltiplos)

O que este endpoint faz

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.

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/GenerateDocumentMultiple

O nome do endpoint é GerarDocumentoMúltiplo (singular Documento), não GerarDocumentosMúltiplos.

Fatos importantes que você não deve perder

Um modelo, vários registros
Enviar um JSON matriz (ou registro repetido) XML) em sua carga útil de dados. O mecanismo renderiza um documento de saída para cada elemento da matriz e os retorna juntos.
A resposta geralmente é JSON documentosDeSaída[]
Cada entrada possui um 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.
Diferenças em relação ao Single: não permite arquivos CSV ou XLSX, e há menos tipos de modelo.
Tipos de modelo limitados a 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ópicoMúltiplosSolteiro
Endpoint/api/v2/GenerateDocumentMultiple/api/v2/GenerateDocumentSingle
templateFileTypeDocx, HTML, PDF onlyAlso MailMerge, GoogleDocs
documentDataTypeJson, XML onlyAlso Csv
outputTypePDF, Docx, xlsx (Word/PDF), HTMLNo xlsx
Data shapeTypically array of records (one doc per row)Usually one object
outputFileNameIntegration-UI only (output naming)Not in API body either

Matriz variante (relevante para o Postman)

Modelo (templateFileData)

CódigoFonteValor do carteiroTambém necessário
T1Base64Base64 template (strip data:...;base64, prefix if present)templateFileName
T2URLHTTPS URL stringtemplateFileName
T3HTML codeBase64(UTF-8 HTML): Buffer.from(html, "utf8").toString("base64")templateFileName, templateFileType: HTML

Dados do documento

CódigoFonteCampo da APIValor do carteiro
D1TextdocumentDataTextJSON array (or XML with multiple records)
D2Base64documentDataFileBase64 of the .json / .xml file
D3URLdocumentDataFileURL 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

tipoDeArquivoDeModeloPermitido tipo de saída
DocxPDF, Docx, xlsx
PDFPDF, Docx, xlsx
HTMLHTML only

API campos corporais

Sempre enviado

CampoObrigatórioTipoNotas
templateFileTypeYesstringDocx, HTML, PDF
templateFileNameYesstringe.g. template.docx, template.html, template.pdf
templateFileDataYesstringBase64 template, or template URL
documentDataTypeYesstringJson or XML (exact casing)
outputTypeYesstringPDF, Docx, xlsx, or HTML
IsAsyncYesbooleantrue

Dados do documento (um caminho)

CampoNecessário quandoTipoNotas
documentDataTextD1stringValid JSON (JSON.parse) or XML-like for XML
documentDataFileD2 or D3stringBase64 data file or URL

Opcional

CampoQuandoPadrão
KeepPdfEditableoutputType is PDFfalse

Regras de validação

VerificarDetalhe
Template URL / base64Same rules as Single.
HTML codeOnly when templateFileType is HTML.
JSON textMust parse with JSON.parse.
XML textLooser than Single (no strict tag check); send XML the template expects.
Data sourcedocumentDataFile or documentDataText is required.

Formato de dados de múltiplos registros

Para JSON, utilize um array de objetos (um objeto por documento gerado):

[
{ "name": "Alice", "email": "[email protected]" },
{ "name": "Bob", "email": "[email protected]" }
]

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

Array data
Prefer a JSON array in documentDataText when documentDataType is Json and you expect more than one file.
Filename match
Match the extension in templateFileName to templateFileType.
Base64 of file
For D2, base64-encode the whole data file (not each row separately).
Decode response
If the response is JSON, decode each outputDocuments[].streamFile (or fileContent / content / data) from base64.
Endpoint name
Endpoint name is GenerateDocumentMultiple (singular Document), not GenerateDocumentsMultiple.

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

CampoT1+D1T2+D3T1+D2T3+D1Saída em PDF
templateFileTypeReqReqReqReqReq
templateFileNameReqReqReqReqReq
templateFileDataReq (b64)Req (URL)Req (b64)Req (b64)Req
documentDataTypeReqReqReqReqReq
outputTypeReqReqReqReqReq
documentDataTextReqOmitOmitReqOmit
documentDataFileOmitReqReqOmitOmit
IsAsyncReqReqReqReqReq
KeepPdfEditableOptOptOptN/A*Opt

*Somente quando tipo de saída é PDF.

Exemplos de código

Perguntas frequentes

How is Multiple different from Single?+
Different endpoint (/api/v2/GenerateDocumentMultiple), fewer template types (Docx, HTML, PDF only), no CSV, can output xlsx, and expects array-shaped data to produce one document per record in a single call.
What does the response look like?+
Typically a JSON object with outputDocuments[], each containing fileName and streamFile (base64). Some responses may use fileContent, content, or data as the field name. Decode each base64 string to save the file.
Which output types are allowed?+
Docx and PDF templates accept PDF, Docx, or xlsx. HTML template accepts HTML only.
Does HTML output produce multiple files?+
Yes when the engine renders one HTML document per input record. The response still uses the outputDocuments[] shape.
What is the maximum array size?+
No published hard cap. Large batches usually push you onto the async path (202 + Location poll). For very large workloads, split into multiple calls of a few hundred records each.
Why is the endpoint name singular Document?+
The path is /api/v2/GenerateDocumentMultiple, not GenerateDocumentsMultiple. A common typo. The plural version returns 404.
Does KeepPdfEditable work for xlsx or HTML output?+
No. It only applies when outputType is PDF. For other outputs the API ignores it.
Can I mix multiple template files in one call?+
No. One call uses one template. To render the same data set against multiple templates, issue one call per template.

Ações relacionadas

A mesma tarefa em outras plataformas.

Obtenha ajuda