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

Image vers PDF

Combinez une ou plusieurs images en un document PDF. Prend en charge plusieurs tailles de page, orientations, marges, et le ciblage facultatif de la taille de fichier via l'ajustement de la qualité.

Point de terminaison de l'API

POST /api/v1/tools/image/image-to-pdf

Accepte des données de formulaire multipart avec une ou plusieurs images et un champ JSON settings.

Paramètres

ParamètreTypeRequisPar défautDescription
pageSizestringNon"A4"Taille de page : A4, Letter, A3, A5
orientationstringNon"portrait"Orientation de la page : portrait ou landscape
marginnumberNon20Marge de page en points (0-500)
targetSizeobjectNon-Contrainte de taille de fichier cible (voir ci-dessous)
collatebooleanNontrueCombiner toutes les images en un seul PDF. Si false, crée un PDF par image.

Objet Target Size

ChampTypeRequisDescription
valuenumberOuiValeur de la taille cible
unitstringOuiUnité : KB ou MB

La taille cible minimale est de 50 Ko.

Exemple de requête

PDF multi-images de base :

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}'

Avec taille de fichier cible :

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 par image :

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}'

Exemple de réponse (regroupée)

json
{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/images.pdf",
  "originalSize": 5000000,
  "processedSize": 1200000,
  "pages": 3
}

Exemple de réponse (non regroupée)

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
}

Exemple de réponse (avec taille cible)

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
  }
}

Notes

  • Les images sont centrées sur la page et mises à l'échelle pour tenir dans les marges tout en préservant le rapport d'aspect. Les images ne sont jamais agrandies.
  • Lorsque collate vaut false, chaque image devient un fichier PDF distinct, et le téléchargement est une archive ZIP contenant tous les PDF.
  • La fonction de taille cible utilise une recherche binaire itérative sur les niveaux de qualité JPEG (10-95) pour trouver la meilleure qualité qui tienne dans le budget.
  • Les images transparentes sont aplaties sur du blanc avant d'être intégrées au PDF.
  • Formats d'entrée pris en charge : JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW, PSD, SVG, et plus.
  • L'orientation EXIF est appliquée automatiquement avant l'intégration.