Saltar al contenido principal

Generar documentos (múltiples)

Lo que hace este punto final

PDF4me Generar documentos (múltiples) convierte muchos documentos en uno REST Llamar. Enviar una sola palabra, HTML, o PDF plantilla (Base64, URLo crudo HTML) más una serie de registros (JSON o XML, como texto, Base64 archivo, o URL). Devuelve un JSON lista de archivos generados (una entrada por registro) como Base64 en outputDocuments[].streamFileo un único valor binario dependiendo de la respuesta.

Entradas de blog relacionadas
Aún no hay ninguna entrada de blog sobre esta función; estará disponible próximamente.
Mientras tanto, echa un vistazo al blog de PDF4me para encontrar tutoriales y flujos de trabajo para todas las plataformas.
Visita el blog

Autenticando su API Pedido

Cada PDF4me REST La llamada debe incluir su API clave en el Authorization Encabezado como autenticación básica. Obtenga o cambie su clave desde el panel de desarrollador.

Punto final

CORREO/api/v2/GenerateDocumentMultiple

El nombre del punto final es GenerarDocumentoMúltiple (singular Documento), no GenerarDocumentosMúltiples.

Datos importantes que no debes perderte

Una plantilla, muchos registros
Enviar un JSON matriz (o registro repetitivo) XML) en su carga útil de datos. El motor genera un documento de salida por cada elemento de la matriz y los devuelve juntos.
La respuesta suele ser JSON Documentos de salida[]
Cada entrada tiene una Nombre del archivo y una base64 archivo de transmisión (a veces Contenido del archivo, contenido, o datos). Decodifica cada cadena base64 para guardar el archivo.
Difiere de Single: no admite CSV ni XLSX, y tiene menos tipos de plantillas.
Tipos de plantillas limitados a Documento, HTML, PDF. Tipos de datos limitados a Json, XML. La salida añade xlsx para Word / PDF plantillas.

HTTP configuración

Método: CORREO
URL: https://api.pdf4me.com/api/v2/GenerateDocumentMultiple
Tipo de contenido: aplicación/json
Autorización: Básico <tu PDF4me API clave>

Enviar IsAsync: true en el cuerpo. 200 puede regresar JSON con Documentos de salida[] o un único archivo binario. 202 devuelve un Ubicación encabezado con una encuesta URL.

Diferencias vs Generar documento (único)

TemaMúltipleSoltero
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 de variantes (relevante para Postman)

Plantilla (templateFileData)

CódigoFuenteValor del carteroTambién se requiere
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

Datos del documento

CódigoFuenteCampo APIValor del cartero
D1TextdocumentDataTextJSON array (or XML with multiple records)
D2Base64documentDataFileBase64 of the .json / .xml file
D3URLdocumentDataFileURL to the data file

Utilice cualquiera de los dos textoDatosDocumento o archivo de datos del documento (omitir el campo no utilizado).

templateFileType → allowed outputType

tipoArchivoDePlantillaPermitido tipo de salida
DocxPDF, Docx, xlsx
PDFPDF, Docx, xlsx
HTMLHTML only

API campos corporales

Siempre enviado

CampoRequeridoTipoNotas
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

Datos del documento (una ruta)

CampoRequerido cuandoTipoNotas
documentDataTextD1stringValid JSON (JSON.parse) or XML-like for XML
documentDataFileD2 or D3stringBase64 data file or URL

Opcional

CampoCuandoPor defecto
KeepPdfEditableoutputType is PDFfalse

Reglas de validación

ControlarDetalle
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.

Forma de datos de múltiples registros

Para JSON, utilice una matriz de objetos (un objeto por documento generado):

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

Para XML, utilice una estructura que su plantilla espere para filas repetidas (la misma idea que la combinación de correspondencia). API solo comprueba que JSON analiza; el motor determina cuántos documentos se producen.

API respuesta (Cartero)

A menudo JSON como este:

{
"outputDocuments": [
{
"fileName": "document1.pdf",
"streamFile": "<base64>"
}
]
}

El nombre del campo también puede aparecer como fileContent, content, o data. Decodifica cada uno Base64 cadena para guardar cada archivo.

Cargas útiles de ejemplo

1. Plantilla de Word (base64) + JSON matriz (texto) → múltiple 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. Plantilla de Word (URL) + JSON datos (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. Plantilla de Word (base64) + JSON archivo (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 plantilla (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 plantilla (URL) + XML (texto) → múltiple 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. Plantilla de 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
}

Consejos para el cobro de carteros

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.

Ejemplo 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

Referencia rápida: obligatorio vs. opcional por variante

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

*Solo cuando tipo de salida es PDF.

Ejemplos de código

Preguntas frecuentes

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.

Acciones relacionadas

La misma tarea en otras plataformas.

Obtén ayuda