Processed on-device · jsPDF

Image to PDF Converter — preview, rotate, rename, and remove each image

Upload JPG, JPEG, PNG, WEBP, BMP, or GIF images and turn them into a PDF — merged into one, split into separate files, or grouped exactly how you want.

See how it works
Supports: JPG, JPEG, PNG, WEBP, BMP, GIF Rotate, delete, rename per image Single, separate, or custom-grouped PDFs In-browser processing
Built & maintained by Bhavin J. Sheth | Updated

The conversion console

Upload images, adjust each one, configure the layout, then convert.

Processed in your browser

Image layout and PDF compilation happen locally in this browser tab without uploading files to our servers.

Drag & drop images here

or browse files — select as many as you like

Up to 10MB per image. JPG, JPEG, PNG, WEBP, BMP, GIF.

Supported format capabilities

Direct control over every image and page

Supported formats and layout settings are optimized for clean client-side rendering.

What it does

  • Embeds JPG, JPEG, PNG, WEBP, BMP, and GIF files directly with native canvas decoding and correct aspect ratios.
  • Rotate, rename, or remove any image right from its own preview card before converting.
  • Choose one merged PDF, a separate PDF per image, or custom groups of your own choosing.
  • Auto-fit converts image pixels to page dimensions using a standard 96 DPI screen reference.

What it doesn't do

  • Doesn't preserve animation from a GIF — only its first frame appears, since a standard PDF page cannot display motion.
  • Doesn't accept images over 10MB each — very large source files should be resized or compressed first.
  • Doesn't add text overlays onto images from within this tool — that requires dedicated editing software.

Four steps from images to PDF

Upload, adjust, configure, then convert.

1

Upload images

Drag in JPG, JPEG, PNG, WEBP, BMP, or GIF files. Previews appear instantly.

Up to 10MB per image.
2

Adjust each image

Rotate a sideways photo, rename a file, or remove one you don't want — right from its card.

3

Configure the layout

Set page size, orientation, margins, and JPEG quality, then choose how to merge.

4

Convert and download

Rename the output if you'd like, then download individually or all at once.

Checked formats Client-side processing

What this converter is good for

Common tasks this tool handles well, plus cases where another tool is a better fit.

Situations where the Image to PDF converter fits, and situations needing a different tool
Use caseWhyFit
Turning scanned pages or photos into one PDFMerge every image into a single, correctly ordered document.Strong fit
Submitting several separate documents at onceCustom grouping creates exactly the PDFs you need from one batch.Strong fit
Fixing sideways or upside-down photos firstRotate each image individually before it goes into the PDF.Good fit
Keeping an animated GIF's motionOnly the first frame carries over — static PDF pages do not animate.Not a fit
Converting images larger than 10MB eachCompress or resize first with a dedicated image tool.Use Image Compressor first
Format and layout handling

Why the supported image formats work

Proper image decoding and canvas normalization ensure consistent PDF layout.

1

Native browser decoding handles format specifics

Instead of relying on rigid file header parsing, the tool utilizes the browser's native rendering pipeline to decode JPG, PNG, WEBP, BMP, and GIF images consistently.

2

Canvas normalization ensures reliable embedding

Any rotated images or custom JPEG compression steps are converted through standardized canvas buffers, guaranteeing that jsPDF receives valid image streams without corrupting layout geometries.

Result: BMP, GIF, JPEG, PNG, and WEBP render accurately in the PDF output without unexpected clipping or color distortion.
3

"Auto-fit" sizing uses a standard screen density

Converting pixel dimensions to physical print dimensions requires a density baseline. Auto-fit maps image pixels at 96 DPI (the standard display reference) to millimeter values.

When something doesn't work as expected

What's actually happening, and the fastest way through it.

Symptom
Why it happens
Fix

An image wasn't accepted

Either it's not one of the supported formats, or it's larger than 10MB.

Convert or compress it to JPG/PNG under 10MB first.

Custom grouping isn't creating groups

You need to tick the checkbox on each image you want grouped, then click "Group selected images."

Select at least one image's checkbox before clicking the group button.

My GIF looks frozen in the PDF

Expected — a static PDF page can only show one frame of an animated GIF.

The PDF uses a static frame from the GIF. If you need a specific frame, extract it with an image editor first, then convert that image.

"Auto-fit" pages look larger or smaller than expected

Auto-fit sizes the page to the image's pixel dimensions at a standard 96 DPI reference, not a physical print measurement.

Use a fixed page size like A4 if you need consistent, predictable dimensions.

Image not accepted

Why: Wrong format or over 10MB.

Fix: Convert/compress first.

Custom grouping not working

Why: No images selected via checkbox.

Fix: Tick boxes, then click Group.

GIF looks frozen

Why: PDF pages can't animate.

Fix: Extract the desired frame in an image tool first.

Auto-fit size looks off

Why: Uses a 96 DPI screen density baseline.

Fix: Use a fixed page size instead.

Getting the result you actually want

A few habits that make a real difference.

Fix rotation before converting

Rotating in the preview card is much faster than fixing a sideways page after the PDF is already made.

Use "Auto (match each image)" for mixed photos

If your images are a mix of portrait and landscape shots, this keeps every page oriented correctly.

Lower JPEG quality only when file size matters

92% is a balanced default — drop it only if you specifically need a smaller file and can accept some loss in sharpness.

Rename before downloading, not after

Set the final PDF name in the preview list — it's one click there versus renaming a downloaded file yourself.

Image to PDF FAQs

Common questions, answered plainly.

Is the Image to PDF Converter completely free?

Yes. The converter is free to use with no account required. Each image can be up to 10MB, and very large batches may be limited by your device's available memory.

How secure is my data during conversion?

Your selected images are processed in this browser session. This converter does not upload your image files to any external server for conversion.

What image formats are supported?

JPG, JPEG, PNG, WEBP, BMP, and GIF are all supported, verified directly by embedding each format and confirming accurate layout rendering.

Can I convert multiple images into one PDF?

Yes: merge every image into one PDF, create a separate PDF per image, or use custom grouping to create specific PDFs from chosen sets of images.

Can I rotate, delete, or rename images before converting?

Yes. Each uploaded image has its own preview card with Rotate, Rename, and Remove controls, so you can fix orientation or drop images you don't want before converting.

Does it work on mobile devices?

Yes, the converter is fully responsive across phones, tablets, and desktops.

Are there any file size or quantity limitations?

Each image can be up to 10MB. There is no hard cap on how many images you upload, but large batches depend on your browser's available memory.

Can I customize the PDF layout settings?

Yes: page orientation (portrait, landscape, or auto per image), page size (A4, Letter, auto-fit, or custom), margin size, and JPEG output quality.

Image to PDF Tutorial

Want to learn how image to PDF conversion works?

This converter works entirely inside your browser using JavaScript — no uploads, no server processing. I wrote a detailed tutorial explaining how images are laid out and embedded into a PDF directly in the browser.

🖼️

Published on freeCodeCamp

How to Build a Browser-Based Image to PDF Converter Using JavaScript

Learn how to lay out images on PDF pages using JavaScript, jsPDF, HTML canvas, client-side image handling, and browser-based file processing techniques.

Read Full Tutorial on freeCodeCamp