Números de página en PDF
Números de página es una API que añade la numeración a un PDF que no la tiene. Perfecto para informes, contratos o dosieres generados desde n8n, Make o Zapier, sin montar servidores.
Cómo funciona
Le mandas un PDF y te devuelve el mismo PDF con el número añadido en cada página, abajo en el centro por defecto. Puedes elegir la posición, el formato del texto (solo el número, o "3 de 10"), desde qué número empezar y qué páginas numerar. No guarda nada.
Si eliges solo algunas páginas (para saltarte una portada, por ejemplo), la numeración empieza en el número inicial que elijas DESDE la primera página seleccionada: no usa el número real de esa página en el documento.
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 el PDF numerado directamente. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-page-numbers - Send Query Parameters: actívalo y añade lo que quieras cambiar, ej.
position=bottom-right(ver la tabla para el resto). - 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) - En Options → Response → Response Format: elige File
En Make (módulo HTTP → Make a request): mismo método y URL, opciones en Query String, las dos cabeceras, y el PDF como dato binario en el cuerpo.
Opciones (en Query Parameters)
| Opción | Por defecto | Para qué sirve |
|---|---|---|
position | bottom-center | bottom-center, bottom-left, bottom-right, top-center, top-left, top-right. |
format | {n} | Texto del número. Usa {n} para el número y {total} para el total de páginas, ej. Página {n} de {total}. |
start | 1 | Número de la primera página numerada. |
pages | todas | Qué páginas numerar, ej. 2-10 para saltarte la portada. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/pdf-page-numbers - 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: por defecto, con
application/pdfdevuelve el binario; con JSON devuelve base64 enpdf. Añadeoutput=pdfooutput=jsonpara forzarlo. - 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.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
position | bottom-center | 6 posiciones: combina top/bottom con left/center/right. |
format | {n} | Debe incluir {n} (sin él → 400). {total} es opcional y se refiere siempre al total de páginas del documento, no al número de páginas seleccionadas. |
start | 1 | Entero, 0–100000. |
pages | todas | Rango 1-indexado, ej. 2-10. La numeración es SECUENCIAL dentro de la selección: la primera página seleccionada recibe start, no su número real en el documento. |
font_size | 10 | 6–72. |
color | #000000 | Hex. |
margin | 24 | Puntos (0–200) desde el borde de la página. |
file | - | Solo en modo JSON: el PDF en base64. |
output | según modo | pdf (binario) o json (base64). |
Ejemplos
curl (PDF a pelo, formato "3 de 10"):
curl -X POST "https://api.cofferdock.com/pdf-page-numbers?format=%7Bn%7D%20de%20%7Btotal%7D" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/pdf" \
--data-binary @documento.pdf \
-o numerado.pdf
JavaScript (Node 18+, saltando la portada):
const fs = require('fs');
const params = new URLSearchParams({ pages: '2-10', start: '1', position: 'bottom-right' });
const r = await fetch(`https://api.cofferdock.com/pdf-page-numbers?${params}`, {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('documento.pdf'),
});
fs.writeFileSync('numerado.pdf', Buffer.from(await r.arrayBuffer()));
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/pdf-page-numbers',
params={'format': '{n} de {total}', 'position': 'bottom-center'},
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf'},
data=open('documento.pdf', 'rb').read(),
)
open('numerado.pdf', 'wb').write(r.content)
Modo JSON (respuesta en base64)
{ "file": "JVBERi0xLjQ…", "format": "{n}/{total}", "position": "bottom-right" }
→ { "success": true, "pdf": "JVBERi0xLjQ…", "mime_type": "application/pdf",
"meta": { "pages_numbered": 10, "format": "{n}/{total}", "total_pages": 10, "used": 12, "remaining": 488 } }
Lo que recibes
El PDF numerado directamente, listo para guardar o enviar. (En modo JSON, el PDF llega en base64.)