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

Image to PDF

Gabungkan satu atau lebih gambar menjadi dokumen PDF. Mendukung beberapa ukuran halaman, orientasi, margin, dan penargetan ukuran file opsional melalui penyesuaian kualitas.

API Endpoint

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

Menerima multipart form data dengan satu atau lebih file gambar dan sebuah field JSON settings.

Parameters

ParameterTypeRequiredDefaultDescription
pageSizestringNo"A4"Ukuran halaman: A4, Letter, A3, A5
orientationstringNo"portrait"Orientasi halaman: portrait atau landscape
marginnumberNo20Margin halaman dalam poin (0-500)
targetSizeobjectNo-Batasan ukuran file target (lihat di bawah)
collatebooleanNotrueGabungkan semua gambar menjadi satu PDF. Bila false, membuat satu PDF per gambar.

Target Size Object

FieldTypeRequiredDescription
valuenumberYesNilai ukuran target
unitstringYesUnit: KB atau MB

Ukuran target minimum adalah 50 KB.

Example Request

PDF multi-gambar dasar:

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

Dengan target ukuran file:

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

Satu PDF per gambar:

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

Example Response (Collated)

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

Example Response (Non-Collated)

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
}

Example Response (With Target Size)

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

  • Gambar dipusatkan pada halaman dan diskalakan agar pas di dalam margin sambil mempertahankan rasio aspek. Gambar tidak pernah diperbesar.
  • Ketika collate adalah false, setiap gambar menjadi file PDF terpisah, dan unduhannya berupa arsip ZIP yang berisi semua PDF.
  • Fitur ukuran target menggunakan pencarian biner iteratif atas tingkat kualitas JPEG (10-95) untuk menemukan kualitas terbaik yang pas dalam anggaran.
  • Gambar transparan diratakan ke putih sebelum disematkan ke PDF.
  • Format input yang didukung: JPEG, PNG, WebP, AVIF, TIFF, GIF, HEIC, RAW, PSD, SVG, dan lainnya.
  • Orientasi EXIF diterapkan otomatis sebelum penyematan.