Skip to content

JPG to PDF Converter

Drop JPG, PNG or WebP files, drag to reorder, pick a page size and fit mode, then download. Everything runs in your browser — your images never leave your device.

JPG to PDF

Live · 100% in your browser
Upload
Drop JPG, PNG, or WebP here
or click to browse · paste with ⌘V / Ctrl+V
Page layout
Page size ?
Orientation ?
Margin 10 mm · ≈ 0.39 in
mm
0102550 mm
Image handling
Fit mode ?
Background ?
Output (optional)
File name .pdf is added automatically
.pdf
Your images never leave your device — everything is processed in your browser.

How It Works

This converter runs entirely in your browser using jsPDF. Your files are read with the local FileReader API, drawn into an in-memory PDF, and handed back to you as a download. Nothing is sent to a server — you can confirm by opening DevTools → Network while you convert.

Page size sets the physical dimensions of the output. A4 (210 × 297 mm) is the international default; Letter (8.5 × 11 in) is standard in the US and Canada. A3 is double A4, useful for spreads. A5 is half A4, good for handouts or booklets. Fit sizes each page to the image itself — no margins, no cropping, one page per image at its native aspect ratio.

Fit mode decides what happens when an image's aspect ratio doesn't match the page. Contain scales the image to fit inside the margins, preserving the full image and adding white space on the sides. Fill scales to cover the entire page area, cropping the overflow. Stretch distorts the image to fill exactly — rarely what you want unless your images already match the target ratio.

Orientation can be forced (portrait / landscape) or set to Auto, which chooses landscape for any image wider than it is tall. Auto is usually what you want when mixing phone photos with screenshots.

WebP images are transparently re-encoded as JPEG at 92% quality before embedding, because PDFs don't support WebP natively. PNG transparency is preserved. Margins apply to every page except in Fit mode.

Tips & Best Practices

Drag thumbnails in the queue to reorder pages. The order in the queue is the order in the PDF.
Rotate individual images from the thumbnail card if you have phone photos in the wrong orientation — rotation is applied to the PDF, not the source file.
Use Fit page size when each image should get its own page at its native size — perfect for scans, screenshots, or mixed-ratio photos.
For a printable booklet, choose A4 or Letter with a 10–15 mm margin and Contain fit. Printers reject images with zero margin on most home devices.
Paste an image directly with ⌘V / Ctrl+V to add it to the queue without touching the file picker.
WebP is re-encoded as JPEG at 92% quality because PDF does not support WebP natively. If you need lossless, convert to PNG first.
Everything runs in your browser — large batches (50+ high-res images) may be slow or use a lot of memory. Split into smaller PDFs if the page freezes.

Frequently Asked Questions

Are my images uploaded anywhere?

No. This tool runs entirely in your browser using FileReader and jsPDF. No images, filenames, or metadata are sent to any server. You can verify this by opening your browser DevTools, switching to the Network tab, and confirming that no requests are made when you generate the PDF.

JPG/JPEG, PNG, and WebP. PNG transparency is preserved in the output PDF. WebP is automatically re-encoded as JPEG at 92% quality because the PDF format does not natively support WebP. HEIC (iPhone) is not supported — convert to JPG first with an HEIC→JPG tool.

There is no hard cap, but your browser has to hold every image in memory while the PDF is built. In practice, 30–50 high-resolution photos is comfortable. Larger batches (100+ images, or images over 20 MP) may be slow or cause the page to freeze. Split the batch into several PDFs if you hit a limit.

Yes. Drag thumbnails in the queue to reorder. The order in the queue becomes the order of pages in the PDF. Use the rotate button on each thumbnail to fix sideways photos before generating.

No. EXIF metadata (camera, GPS, timestamp) is not carried into the PDF — only the pixel data is embedded. If you need to strip EXIF from the source images, this tool does that automatically as a side effect. If you need to keep EXIF, convert outside the browser.

Contain fits the whole image inside the page margins, adding white space if the aspect ratios do not match. Fill covers the entire page area, cropping any overflow. Stretch distorts the image to fill the page exactly, which is almost never what you want. For mixed photo sets, Contain is usually the right default.

Fit mode sizes each PDF page to match its source image exactly — no margins, no scaling. If your images have different dimensions, the PDF will have pages of different sizes. This is intentional and ideal for scans or screenshots where each page should print at its native size.

Not in this tool — jsPDF supports encryption but it is not exposed here to keep the UI simple. For a protected PDF, download the unprotected PDF and add a password with a local tool like Preview on macOS, qpdf, or Acrobat.