# Changelog of JPG to PDF Converter - Photos and Scans (`marcel-rbro/jpg-to-pdf`) Actor

- **URL**: https://apify.com/marcel-rbro/jpg-to-pdf/changelog.md
- **Full Actor documentation**: https://apify.com/marcel-rbro/jpg-to-pdf.md

## Changelog

### 0.1 - unreleased

Initial version.

- Converts JPG, JPEG, PNG, WebP, TIFF, BMP, GIF, HEIC, HEIF and AVIF images to PDF with ImageMagick.
- Combines up to 100 images into a single multi-page PDF, one page per image, in the order supplied.
- Converts each image to its own PDF instead when `mergeIntoOne` is off, returning the batch as a ZIP
  under `OUTPUT` alongside one key-value record per PDF, with colliding output names de-duplicated.
- Isolates failures in that mode: an unconvertible image is recorded on its own dataset record with
  `ok: false` and the reason, and the rest of the batch still converts. Records are pushed as each
  image is dealt with, so a run that dies part-way keeps the results it already had. A combined run
  still stops on the first bad file, because one document cannot be partly right.
- Falls back to a JSON manifest of the results when a batch's output is too large to pack into an
  archive in memory, since the ZIP is assembled before it is uploaded.
- Bounds a run with the family's shared budgets - file count, total input bytes, one file's size,
  one image's pixels and the pixels across the run - each refused with the limit and the number that
  hit it, plus a timeout on every download so one unresponsive host cannot stall the batch.
- Accepts the source images as URLs (including the Apify Console file upload field) or, for a single
  image, as base64.
- Offers `auto` page sizing, which gives each page the image's own size and honours the resolution
  recorded in the file, alongside fixed A4, Letter and Legal pages with per-image orientation and an
  optional margin.
- Applies EXIF rotation, flattens transparency onto white, and stores the images either as JPEG at a
  chosen quality or losslessly.
- Reads each file's header to tell a JPEG from a PDF, an HTML error page, an SVG or the `.mov` half
  of a Live Photo, and fails with an explanation instead of an ImageMagick delegate error.
- Writes the result to the key-value store under both `OUTPUT` and its filename, and pushes one
  dataset record per conversion - one for a combined PDF, one per image for separate PDFs.
