Convert JPG or PNG to PDF

Combine one or more images into a single PDF, in the order you choose. Nothing is uploaded, it all happens on your device.

Click to choose images, or drag and drop them here

JPG, PNG, and most other image formats. Stays on your device, nothing is uploaded.

Are my images uploaded anywhere?

No. Conversion happens entirely inside your browser using JavaScript. Your files never leave your device or touch a server.

Can I choose the order of the pages?

Yes. Add your images, then use the up and down buttons on each row to arrange them in the order you want before converting.

What page size should I pick?

"Fit to image" makes each page match that image's own proportions, which is usually best for scans and screenshots. A4 or US Letter fit the image within a standard page, centered, which is often better for printing.

What image formats are supported?

JPG and PNG are handled natively. Other formats your browser can display, like WebP, are automatically converted first.

Does converting reduce image quality?

JPG and PNG images are embedded as-is in most cases. Some images need to be re-encoded to be embeddable (a few JPEG variants, or non-JPG/PNG formats), those are converted losslessly to PNG first.

How it works

PDF has native support for exactly two image formats this tool cares about: JPEG (stored with the DCTDecode filter) and PNG-style raw pixel data. So for a standard JPG, pdf-lib takes your file's bytes and embeds them into the PDF completely unchanged, no decoding, no re-encoding, zero quality loss, and the PDF ends up roughly the size of the JPEGs that went in. PNGs are unpacked into the raw pixel form PDF expects, which is also lossless. Each image then becomes one page with a drawImage instruction placing it.

Formats PDF can't hold directly, WebP, GIF, BMP, and a few awkward JPEG variants like progressive JPEGs that pdf-lib can't parse, take a fallback path: the browser decodes the image with createImageBitmap(), draws it to a canvas, and re-exports it as PNG before embedding. That conversion is pixel-for-pixel lossless, though the resulting file can be larger than the original (a re-encoded photo stored as PNG is bulkier than its JPEG source).

Page sizing works in PDF points, 72 per inch. "Fit to image" treats your image as 96 DPI screen pixels and sizes the page to match it exactly, best for screenshots and scans. A4 and Letter modes keep a standard page, shrink the image proportionally to fit inside a half-inch margin, and center it, which prints more predictably.

Your photos never leave your machine. Watch the Network tab in DevTools while converting: the images are read locally, assembled into a PDF in memory by pdf-lib, and downloaded from a blob. Nothing is transmitted, which matters when the images are ID scans or personal documents.