Generar documento (único)
PDF4me Generar documento (único) genera un único documento mediante la fusión de una plantilla (Word, HTML, o PDF) con una carga útil de datos (JSON, XML, o CSV) en uno REST llamar. La plantilla puede ser Base64, un público URLo crudo HTML. Los datos pueden ser texto en línea, un Base64archivo codificado o un URL. Devuelve el renderizado PDF, Documento, o HTML como binario (200) o a través de un Location-encuesta de encabezado URL (202).
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/GenerateDocumentSinglehttps://api.pdf4me.com/api/v2/GenerateDocumentSingleDatos importantes que no debes perderte
textoDatosDocumento o archivo de datos del documentotextoDatosDocumento para en línea JSON / XML / CSV. Usar archivo de datos del documento por un Base64archivo de datos codificado o un archivo público URL.PDF o Documento. HTML acepta HTML solamente. PDF acepta PDF solamente. El tipo de carcasa exacto importa.IsAsync: true el API puede responder 202 y un encabezado Location. GET eso URL (misma autorización) hasta 200 con el archivo renderizado (estándar) pdf4meAsyncRequest patrón).HTTP configuración
Método: CORREO
URL: https://api.pdf4me.com/api/v2/GenerateDocumentSingle
Tipo de contenido: aplicación/json
Autorización: Básico <tu PDF4me API clave>
Enviar IsAsync: true en el cuerpo. 200 Devuelve los bytes del archivo renderizado. 202 devuelve un Ubicación encabezado con una encuesta URL; GET eso URL con el mismo encabezado de autorización hasta 200.
Matriz de variantes (relevante para Postman)
Seleccione una variante de plantilla (T1 / T2 / T3) y una variante de datos (D1 / D2 / D3). Seis combinaciones cubren todas las llamadas.
Plantilla (templateFileData)
| Código | Fuente | Valor del cartero en datos de archivo de plantilla | También se requiere |
|---|---|---|---|
| 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 |
Datos del documento (uno de dos API campos)
| Código | Fuente | Campo API | Valor del cartero |
|---|---|---|---|
| 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 |
Regla: exactamente uno de textoDatosDocumento o archivo de datos del documento Debe configurarse. Omita el campo no utilizado del cuerpo.
Combinaciones comunes
| # | Plantilla | Datos | 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 → allowed outputType
tipoArchivoDePlantilla | Permitido tipo de salida | 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 corporales
Siempre enviado
| Campo | Requerido | 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 |
Datos del documento (una ruta)
| Campo | Requerido cuando | 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 | Cuando | Por defecto |
|---|---|---|
KeepPdfEditable | outputType is PDF | false |
documentDataFile | D1 text path is used | Omitted |
documentDataText | D2 or D3 path is used | Omitted |
Reglas de validación
| Controlar | Detalle |
|---|---|
| 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. |
Ejemplos de marcador de posición
| Artículo | Ejemplo |
|---|---|
| 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}}... |
Cargas útiles de ejemplo
1. Plantilla de 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. Plantilla de Word (URL) + JSON datos (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. Plantilla de Word (base64) + JSON datos (base64) → Salida de palabras
documentDataFile contiene base64 de la JSON bytes del archivo (no el objeto analizado).
{
"templateFileType": "Docx",
"templateFileName": "template.docx",
"templateFileData": "UEsDBBQAAAAI...",
"documentDataType": "Json",
"documentDataFile": "eyJuYW1lIjogIkpvaG4gRG9lIn0=",
"outputType": "Docx",
"IsAsync": true
}
4. HTML plantilla (base64 de HTML archivo) + JSON texto → HTML
Para crudo HTML en Postman, envíe la misma carga útil n8n El nodo sería: codificado en base64 HTML en templateFileData.
{
"templateFileType": "HTML",
"templateFileName": "template.html",
"templateFileData": "PCFET0NUWVBFIGh0bWw+...",
"documentDataType": "Json",
"documentDataText": "{\"title\": \"Invoice\", \"heading\": \"Hello\", \"content\": \"World\"}",
"outputType": "HTML",
"IsAsync": true
}
5. Combinación de correspondencia (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 Plantilla de formulario (base64) + CSV texto → PDF (editable)
{
"templateFileType": "PDF",
"templateFileName": "template.pdf",
"templateFileData": "JVBERi0xLjQKJcfsj6IK...",
"documentDataType": "Csv",
"outputType": "PDF",
"KeepPdfEditable": true,
"IsAsync": true
}
7. Estilo de 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
}
Consejos para el cobro de carteros
Ejemplo 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
Referencia rápida: obligatorio vs. opcional por variante
| Campo | T1+D1 | T2+D3 | T1+D2 | T3+D1 | Cualquier PDF fuera |
|---|---|---|---|---|---|
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 |
*Conservar PDF editable solo se aplica cuando tipo de salida es PDF; el API fuerzas falsas de otro modo.