Convertir PDF a imágenes
PDF a imágenes es una API que convierte cada página de un PDF en una imagen PNG. Perfecto para generar miniaturas o previsualizaciones desde n8n, Make o Zapier, sin montar servidores.
Cómo funciona
Le mandas un PDF y te devuelve un JSON con una imagen PNG por página, en base64. No guarda nada: se genera al momento.
Como el resultado son varias imágenes a la vez, la respuesta es siempre un JSON con un PNG en base64 por página (nunca una sola imagen suelta, aunque el PDF tenga 1 sola página).
Lo único que necesitas
- Tu API key. La creas en tu panel con "+ Crear llave". Se muestra una sola vez, así que cópiala y guárdala.
- En tu plataforma de automatización, un paso de tipo "HTTP Request" / "Hacer una petición HTTP" (lo tienen n8n, Make, Zapier, Pipedream…).
Cómo usarlo en n8n (paso a paso)
Le envías tu PDF tal cual (como archivo binario) y te devuelve las imágenes en JSON. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-to-images - Send Headers: actívalo y añade dos:
x-api-key= tu llave, yContent-Type=application/pdf - Send Body: actívalo → elige la opción para mandar un archivo binario (en n8n: "n8n Binary File", con la propiedad binaria de tu PDF, normalmente
data)
La respuesta trae { "images": [{ "page": 1, "png": "<base64>" }, …] }. Para guardar cada página como archivo suelto necesitas un paso extra que decodifique cada base64.
En Make (módulo HTTP → Make a request): mismo método y URL, las dos cabeceras, y el PDF como dato binario en el cuerpo.
Opciones (en Query Parameters o en el JSON)
| Opción | Por defecto | Para qué sirve |
|---|---|---|
scale | 1.5 | Calidad/tamaño de la imagen. Más alto = más nítido y más pesado. |
pages | todas | Qué páginas convertir, ej. 1-3,5. Si lo omites, convierte el PDF entero. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/pdf-to-images - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: el PDF va en el cuerpo como
application/pdf(a pelo) o comoapplication/jsoncon{ "file": "<base64>", ... }. - Salida: SIEMPRE JSON:
{ images: [{ page, png, width, height }, …] }. Formato de imagen: solo PNG. - Límites: PDF de entrada hasta 20 MB (50 MB en Business/Scale) en modo
application/pdf, o ~4 MB reales en JSON con base64. 30 peticiones/min por IP. 1 llamada = 1 crédito, sin importar cuántas páginas tenga el PDF.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
scale | 1.5 | 0.5–4. Factor de escala del renderizado (1 = tamaño "natural" en píxeles del PDF). |
pages | todas | Rango 1-indexado, ej. 1-3,5. Fuera del número real de páginas → 400. |
file | - | Solo en modo JSON: el PDF en base64. |
Ejemplos
curl (PDF a pelo):
curl -X POST "https://api.cofferdock.com/pdf-to-images?scale=2&pages=1-2" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/pdf" \
--data-binary @documento.pdf
JavaScript (Node 18+, guarda cada página como fichero):
const fs = require('fs');
const r = await fetch('https://api.cofferdock.com/pdf-to-images', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('documento.pdf'),
});
const j = await r.json();
for (const img of j.images) fs.writeFileSync(`pagina-${img.page}.png`, Buffer.from(img.png, 'base64'));
Python:
import requests, base64
r = requests.post(
'https://api.cofferdock.com/pdf-to-images',
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf'},
data=open('documento.pdf', 'rb').read(),
)
for img in r.json()['images']:
open(f'pagina-{img["page"]}.png', 'wb').write(base64.b64decode(img['png']))
Forma de la respuesta
{ "success": true,
"images": [
{ "page": 1, "png": "iVBORw0KGgo…", "width": 900, "height": 1263 },
{ "page": 2, "png": "iVBORw0KGgo…", "width": 900, "height": 1263 }
],
"meta": { "source_pages": 2, "images_created": 2, "used": 12, "remaining": 488 } }
Lo que recibes
Un JSON con una imagen PNG en base64 por cada página convertida.