Generar documentos (múltiples)
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.
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
/api/v2/GenerateDocumentMultiplehttps://api.pdf4me.com/api/v2/GenerateDocumentMultipleEl nombre del punto final es GenerarDocumentoMúltiple (singular Documento), no GenerarDocumentosMúltiples.
Datos importantes que no debes perderte
Documentos de salida[]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.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)
| Tema | Múltiple | Soltero |
|---|---|---|
| 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 de variantes (relevante para Postman)
Plantilla (templateFileData)
| Código | Fuente | Valor del cartero | También se requiere |
|---|---|---|---|
| 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 |
Datos del documento
| Código | Fuente | Campo API | Valor del cartero |
|---|---|---|---|
| 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 |
Utilice cualquiera de los dos textoDatosDocumento o archivo de datos del documento (omitir el campo no utilizado).
templateFileType → allowed outputType
tipoArchivoDePlantilla | Permitido tipo de salida |
|---|---|
Docx | PDF, Docx, xlsx |
PDF | PDF, Docx, xlsx |
HTML | HTML only |
API campos corporales
Siempre enviado
| Campo | Requerido | 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 |
Datos del documento (una ruta)
| Campo | Requerido cuando | 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 | Cuando | Por defecto |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
Reglas de validación
| Controlar | Detalle |
|---|---|
| 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. |
Forma de datos de múltiples registros
Para JSON, utilice una matriz de objetos (un objeto por documento generado):
[
]
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
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
| Campo | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Salida 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 |
*Solo cuando tipo de salida es PDF.