This page was machine-translated. Spotted a mistake?Help improve it.
Skip to content

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ámetroTipoObligatorioPredeterminadoDescripción
pageSizestringNo"A4"Tamaño de página: A4, Letter, A3, A5
orientationstringNo"portrait"Orientación de la página: portrait o landscape
marginnumberNo20Margen de la página en puntos (0-500)
targetSizeobjectNo-Restricción de tamaño de archivo objetivo (ver más abajo)
collatebooleanNotrueCombinar todas las imágenes en un solo PDF. Si es false, crea un PDF por imagen.

Objeto de tamaño objetivo

CampoTipoObligatorioDescripción
valuenumberValor del tamaño objetivo
unitstringUnidad: 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 collate es false, 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.