Combine one or more images into a single PDF. Each image becomes one page, in the order you choose. Works with any image format your browser can decode (JPG, PNG, WebP, GIF, BMP, and often HEIC); the tool converts non-native formats to JPEG automatically via canvas. Everything runs in your browser — no upload, no server, no file retention.
Two page-size modes
Fit to image — each PDF page’s dimensions match its image exactly (converted from pixels to PDF points at 72 DPI). The image fills the page with no margin. This is the best choice when you want to preserve images at their native size without arbitrary whitespace. A 1920×1080 screenshot becomes a PDF page exactly that size.
A4 or Letter — every page is a standard sheet (A4 = 210 × 297 mm, Letter = 8.5 × 11 in). The image is fit inside with aspect ratio preserved, centred on the page, with a half-inch margin. Use this for photos meant to print at standard sheet size, or documents going into a print workflow.
Example: resume photos
You have a scanned signature page as a JPG and a separate scanned ID as a PNG. Drop both in, reorder if needed, pick “Fit to image”, Convert. Two-page PDF ready to attach to an online form.
Example: photo album
Drop 12 vacation photos into the drop zone. Pick “A4” so the pages are a standard size suitable for viewing or printing. Convert. Single 12-page PDF where each page is A4 with the photo centred and a half-inch margin — much better than sending 12 separate photo attachments.
Example: converting screenshots
You took 20 screenshots during a workflow and want to share them in order. Drop them all in (they’ll probably appear alphabetically; use the arrows to get the right order), pick “Fit to image” so each screenshot is a page at native resolution, Convert. Share the single PDF.
How the conversion works under the hood
pdf-lib natively embeds JPG and PNG byte streams — no decoding needed, so those formats pass through losslessly. For WebP, GIF, BMP, and anything else the browser understands, the tool decodes via createImageBitmap, redraws onto a canvas, and exports as JPEG at 92% quality before handing to pdf-lib. This conversion adds a small amount of processing time and loses some bits compared to the original, but the quality loss is imperceptible for photographic content.
If you care about perfect fidelity, feed the tool JPG or PNG directly. For the common case (photo archives, screenshot collections, scanned pages), the WebP→JPEG auto-conversion is invisible.
Privacy
All processing runs in your browser. The images never leave your device. pdf-lib is loaded lazily on your first Convert click — about 400 KB, cached thereafter — so the page itself stays fast for people who only read the explainer without converting.
What this tool does not do
It doesn’t split multi-page TIFFs. Multi-page TIFF support in browsers is essentially nonexistent without a WASM decoder; feed the tool one image per page.
It doesn’t OCR images to text. For that, use the image OCR tool. This converter produces PDFs where the images are images — not searchable text.
It doesn’t compress the output beyond pdf-lib’s native behaviour. If the resulting PDF is large, the bottleneck is the source image sizes. Compress your images (smaller resolution or lower JPEG quality) with the image compressor or shrink dimensions with the image resizer before conversion.
It doesn’t add metadata like title, author, or keywords. The output has basic producer/creator metadata but no user-configurable fields.
It doesn’t watermark or annotate. For overlays and annotations, use a PDF editor after conversion.