keptlocal
Files never leave your browser

JPG to PDF

Add JPG, PNG, or WebP images, arrange the order, choose a page size, and download a PDF instantly. Files never leave your device.

Drop images here, or

JPG, PNG, WebP supported. Files never leave your browser.

Add one or more images to get started.

How to convert images to PDF

  1. Drop your images into the zone above, or click to browse. JPG, PNG, and WebP are all accepted.
  2. Drag rows to set the order they will appear in the PDF — the top image becomes page 1.
  3. Choose a page size: A4 or Letter centre each image on a standard page with a small margin. Original sizes each page exactly to the image dimensions.
  4. Click Create PDF. The file downloads instantly to your device.

Everything runs in your browser using pdf-lib. No image is uploaded. Open DevTools (F12) → Network while converting to confirm zero upload requests.

When to convert images to PDF

  • Submitting scanned documents — many portals, banks, and government services require PDF uploads. Scanning produces JPG or PNG files; this tool bundles them into the format you actually need.
  • Sending a photo portfolio — a single PDF is easier to email, easier to print, and more professional than a folder of image files.
  • Combining whiteboard photos from a meeting — stack multiple photos into a single document that can be shared, archived, and searched.
  • Creating a photo book draft — rough out page order and sequence before handing off to a design tool.
  • Packaging screenshots as a report — attach a sequence of screenshots as a single PDF rather than a chain of inline images.
  • Converting iPhone screenshots to PDF for email — iOS exports screenshots as PNG; PDF is a more universally compatible format for formal correspondence.

How it works under the hood

pdf-lib is a JavaScript library that constructs PDF documents from scratch in the browser. For each image you add, it embeds the image data directly into the PDF's internal object structure — JPG bytes stay as JPG (no re-encoding), and PNG bytes stay as PNG. This means the embedded images are exactly as sharp as the originals.

WebP images are not natively supported by the PDF format, so the tool first draws the WebP to an off-screen HTML <canvas> and exports a lossless PNG, which pdf-lib then embeds. The visual result is identical to the source.

When you choose A4 or Letter, the tool auto-detects whether your image is portrait or landscape and rotates the page to match, then scales the image to fill the page with a small margin. When you choose Original, the page dimensions are set to the image's pixel width and height in points (1 point = 1/72 inch at 72 DPI effective). This preserves the image at exactly its native resolution.

Limits and what to expect

  • HEIC (iPhone photos): HEIC is not supported directly. Use your phone's camera settings to export as JPG, or convert HEIC to JPG using our Convert Image tool (coming soon).
  • File size: JPG and PNG bytes are embedded as-is, so the output PDF will be roughly the sum of the input image sizes plus a small PDF overhead. Ten 2 MB JPGs produce roughly a 20 MB PDF.
  • Very large images: images above 20 MP may be slow to process and embed. Performance depends on your device's available RAM.
  • Colour profiles: embedded ICC colour profiles in PNG files are preserved. JPG colour profiles are carried through without modification.
  • Browser support: requires modern browser with WebAssembly. Chrome 90+, Firefox 90+, Safari 15+, Edge 90+.

Privacy: what happens to your images

Your images are read into browser memory using the File API and processed entirely in JavaScript. They are never sent to a server, never stored in any cloud, and never visible to anyone but you. The converted PDF is assembled in memory and downloaded directly — the data stays local from start to finish.

This is especially relevant for sensitive images: ID documents, medical scans, financial statements, personal photos. With upload-based tools you are trusting the provider's infrastructure and retention policy. With keptlocal the question does not arise.

Frequently asked questions

Are my images uploaded to a server?
No. keptlocal converts images to PDF entirely in your browser using pdf-lib. Your files never leave your device — open DevTools → Network while converting to confirm there are no upload requests.
Which image formats are supported?
JPG, JPEG, PNG, and WebP. For WebP, the tool converts via the Canvas API before embedding, so the output quality matches the source. HEIC files (iPhone photos) need to be converted to JPG first.
What page size should I choose?
A4 and Letter centre and scale your image to fill a standard page with a small margin — good for documents you plan to print or share formally. Original sizes each page exactly to the image dimensions, ideal for photo archives or portfolios.
Can I reorder images before converting?
Yes — drag rows in the list to reorder them. The images appear in the PDF in the order shown.
Is there a limit on number of images or file size?
No hard limit. The practical ceiling is your device's RAM. Hundreds of images work fine on most modern laptops.
Will image quality be preserved?
Yes. pdf-lib embeds JPG and PNG bytes directly into the PDF without re-encoding. WebP images are converted to PNG losslessly before embedding.