Search K
Imagen a PDF
Combina una o varias imágenes en un documento PDF. Admite varios tamaños de página, orientaciones, márgenes y, opcionalmente, ajuste al tamaño de archivo objetivo mediante el ajuste de la calidad.
Endpoint de la API
POST /api/v1/tools/image/image-to-pdf
Acepta datos de formulario multipart con uno o varios archivos de imagen y un campo JSON settings.
Parámetros
| Parámetro | Tipo | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|---|
| pageSize | string | No | "A4" | Tamaño de página: A4, Letter, A3, A5 |
| orientation | string | No | "portrait" | Orientación de la página: portrait o landscape |
| margin | number | No | 20 | Margen de la página en puntos (0-500) |
| targetSize | object | No | - | Restricción de tamaño de archivo objetivo (ver más abajo) |
| collate | boolean | No | true | Combinar todas las imágenes en un solo PDF. Si es false, crea un PDF por imagen. |
Objeto de tamaño objetivo
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| value | number | Sí | Valor del tamaño objetivo |
| unit | string | Sí | Unidad: KB o MB |
El tamaño objetivo mínimo es 50 KB.
Ejemplo de solicitud
PDF básico con varias imágenes:
bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "[email protected]" \
-F "[email protected]" \
-F "[email protected]" \
-F 'settings={"pageSize": "A4", "orientation": "portrait", "margin": 20}'Con tamaño de archivo objetivo:
bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "[email protected]" \
-F "[email protected]" \
-F 'settings={"pageSize": "Letter", "targetSize": {"value": 2, "unit": "MB"}}'Un PDF por imagen:
bash
curl -X POST http://localhost:1349/api/v1/tools/image/image-to-pdf \
-H "Authorization: Bearer si_your-api-key" \
-F "[email protected]" \
-F "[email protected]" \
-F 'settings={"collate": false}'Ejemplo de respuesta (combinado)
json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.pdf",
"originalSize": 5000000,
"processedSize": 1200000,
"pages": 3
}Ejemplo de respuesta (sin combinar)
json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.zip",
"originalSize": 5000000,
"processedSize": 2400000,
"pages": 2,
"collated": false
}Ejemplo de respuesta (con tamaño objetivo)
json
{
"jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.pdf",
"originalSize": 10000000,
"processedSize": 2000000,
"pages": 5,
"compression": {
"targetRequested": 2097152,
"targetMet": true,
"jpegQuality": 72
}
}Notas
- Las imágenes se centran en la página y se escalan para caber dentro de los márgenes conservando la relación de aspecto. Las imágenes nunca se amplían.
- Cuando
collateesfalse, cada imagen se convierte en un archivo PDF independiente, y la descarga es un archivo ZIP que contiene todos los PDF. - La función de tamaño objetivo usa una búsqueda binaria iterativa sobre los niveles de calidad JPEG (10-95) para encontrar la mejor calidad que quepa dentro del límite.
- Las imágenes transparentes se aplanan a blanco antes de incrustarse en el PDF.
- Formatos de entrada admitidos: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW, PSD, SVG y más.
- La orientación EXIF se aplica automáticamente antes de incrustar.
