Rotar páginas de un PDF
Rotar páginas es una API que gira las páginas de un PDF 90, 180 o 270 grados, todas o solo las que elijas. Perfecto para corregir escaneos torcidos desde n8n, Make o Zapier, sin montar servidores.
Cómo funciona
Le mandas un PDF y un ángulo de giro, y te devuelve el mismo PDF con las páginas rotadas. Por defecto gira todas las páginas 90°, pero puedes elegir el ángulo y solo algunas páginas. No guarda nada: se genera al momento.
La rotación se suma a la que ya tuviera cada página (si una página ya estaba girada 90° y le pides otros 90°, queda a 180°): es el comportamiento intuitivo de "rótala un poco más".
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 rotado directamente. En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/pdf-rotate - Send Query Parameters: actívalo y añade
angle=90(ypagessi solo quieres rotar algunas, ver la tabla). - 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
La salida del nodo ya es el PDF rotado como archivo: conéctalo directamente a Drive, email, Telegram…
En Make (módulo HTTP → Make a request): mismo método y URL, en Query String añade angle, en Headers las dos cabeceras, y el PDF como dato binario en el cuerpo.
En resumen: POST a …/pdf-rotate, angle (y opcionalmente pages) como Query Parameters, cabeceras x-api-key y Content-Type: application/pdf, el PDF como Body binario, Response Format en File.
Opciones (en Query Parameters)
| Opción | Por defecto | Para qué sirve |
|---|---|---|
angle | 90 | Grados de giro: 90, 180 o 270 (también vale 0, que no gira nada). |
pages | todas | Qué páginas rotar, ej. 1-3,5. Si lo omites, rota el PDF entero. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/pdf-rotate - 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 rotado; con JSON devuelve base64 en el campopdf. Añadeoutput=pdfpara forzar el binario, ooutput=jsonpara forzar el base64. - Rotación: es ADITIVA sobre la que ya tuviera cada página, no absoluta.
- 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 rotación = 1 crédito.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
angle | 90 | Múltiplo de 90: 0, 90, 180 o 270. Cualquier otro valor → 400 (sin redondeo silencioso). |
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. |
output | según modo | pdf (binario) o json (base64). |
Ejemplos
curl (PDF a pelo, guarda el PDF rotado):
curl -X POST "https://api.cofferdock.com/pdf-rotate?angle=90&pages=1-3" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/pdf" \
--data-binary @documento.pdf \
-o rotado.pdf
JavaScript (Node 18+):
const fs = require('fs');
const r = await fetch('https://api.cofferdock.com/pdf-rotate?angle=180', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf' },
body: fs.readFileSync('documento.pdf'),
});
const buffer = Buffer.from(await r.arrayBuffer());
fs.writeFileSync('rotado.pdf', buffer);
Python:
import requests
r = requests.post(
'https://api.cofferdock.com/pdf-rotate',
params={'angle': 180},
headers={'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/pdf'},
data=open('documento.pdf', 'rb').read(),
)
open('rotado.pdf', 'wb').write(r.content)
Modo JSON (respuesta en base64)
Con Content-Type: application/json, el PDF va en file (base64) y las opciones en el mismo objeto:
{ "file": "JVBERi0xLjQ…", "angle": 90, "pages": "1-3" }
→ { "success": true, "pdf": "JVBERi0xLjQ…", "mime_type": "application/pdf",
"meta": { "pages_rotated": 3, "angle": 90, "total_pages": 10, "used": 12, "remaining": 488 } }
Lo que recibes
El PDF rotado directamente, listo para guardar o enviar. (En modo JSON, el PDF llega en base64.)