Skip to main content

JPG to PDF converter

Turn JPG photos and scans into one PDF — page size, orientation, margin and image quality are yours to set, and the file never leaves this tab.

No watermarkFree & unlimited
All processing happens in your browser. No data is sent to any server.

A PDF page is a coordinate space with things drawn on it, and a JPEG is already a compressed image stream that PDF understands natively. That makes JPG to PDF the cleanest conversion in the family: at Maximum quality the JPEG bytes are copied into the PDF unchanged and a page is drawn around them, so there is no second round of compression and no visible loss. Everything you choose — A4 or Letter, portrait or landscape, how much white space to leave, whether the photo fits inside the margins or fills the page — changes the page geometry, not the picture. The order of the pages is the order of the list, and you can drag the thumbnails around until it is right.

Key facts about JPG to PDF converter

Key facts about JPG to PDF converter
What actually happensAt Maximum quality the JPEG stream is embedded byte-for-byte by pdf-lib (embedJpg) — no re-decode, no re-encode, no generation loss
Lower quality settingsLow 60, Medium 80 and High 92 re-encode each photo through a canvas first, which is how the PDF gets smaller than the sum of the JPGs
One page per imageEvery file becomes exactly one page, in list order; there is no multi-image-per-page layout here
Page sizesA4, US Letter, US Legal, A3, A5, Fit to image (the page takes the photo's pixel dimensions), or a custom box from 100 to 2000 pt
OrientationPortrait, Landscape, or Auto — Auto decides per photo, so a landscape shot gets a landscape page in the same document
MarginsNone (0 pt), Small (18 pt), Medium (36 pt), Large (54 pt) or a typed value; ignored when the page size is Fit to image
ScalingFit keeps the aspect ratio inside the margins, Fill covers the page and lets the edges run off it, Stretch distorts to the exact box, Original draws at 1 pixel per point
Optional title pageA first page carrying one line of Helvetica text, centred — useful when the PDF is going into a filing system
Page orderDrag a thumbnail, or use the up and down arrows that appear on hover
File-count limitNone is enforced. The real ceiling is memory: every image is held in the tab while the document is assembled
This page takes JPG onlyOther formats are rejected with a message rather than silently converted — use Images to PDF for a mixed folder
Not includedOCR, text layers, page numbering, compression of an existing PDF, or combining PDFs — those are separate tools

What happens to your file

The PDF is written by pdf-lib, a JavaScript library running in this tab. Your JPGs are read with the File API, handed to pdf-lib's JPEG embedder, and the finished document comes back as a Uint8Array that becomes a Blob and a temporary object URL for the download link. If you pick a quality below Maximum, the extra step is a 2D <canvas> in the same tab re-encoding the photo — still no network. There is no upload, no Pages Function, no queue and no server-side rendering, which you can verify by disconnecting from the internet after the page loads: the conversion still works. Nothing is stored between sessions; closing the tab discards the images and the generated PDF.

About this tool

  1. 1

    Add the JPGs

    Drop them in or browse. They are listed as thumbnails in the order they will appear in the PDF.

  2. 2

    Get the order right

    Drag a thumbnail to a new position, or hover it and use the up and down arrows. Remove a stray photo with the X.

  3. 3

    Choose the page size and orientation

    A4 or Letter for anything that will be printed, Fit to image when the PDF is only for screen and you want no border at all. Auto orientation is the right choice for a mixed set of portrait and landscape shots.

  4. 4

    Set the margin and scaling

    Margins live under Advanced options. Fit with a Small margin is the safe default for printing; Fill with no margin gives an edge-to-edge page and crops whatever does not fit.

  5. 5

    Decide on quality

    Leave it at Maximum to keep the original JPEG data. Drop to High or Medium only when the PDF has to clear an upload size limit — that setting is what re-encodes the photos.

  6. 6

    Create and check

    The PDF is previewed in the page. Scroll it before downloading: that is where a wrong orientation or an over-eager Fill crop shows up.

Specs & compatibility
Input.jpg and .jpeg (image/jpeg). Anything else is refused before the document is created
OutputA single application/pdf file, PDF 1.7, named jpg-to-pdf.pdf
Enginepdf-lib 1.17 — embedJpg for the byte-for-byte path, drawImage for the page geometry
Page unitsPDF points: 1 pt = 1/72 inch. A4 is 595.28 × 841.89 pt, Letter 612 × 792 pt
ColourThe JPEG's own colour data is preserved on the Maximum path; a re-encode goes through the canvas, which works in sRGB
Very large photosA re-encode is limited by the browser's canvas ceiling — roughly 16,384 px a side on Chromium, less on iPhone Safari. The Maximum path has no such limit
Browser supportChrome, Edge, Firefox and Safari on desktop and mobile; no extension or install
OfflineWorks with the network off once the page has loaded
  • Phone photos are usually 3–5 MB each. Twenty of them make a 60–100 MB PDF at Maximum quality; if that is too big for email, High is the first thing to try.
  • Scanning receipts? Fit to image plus no margin gives the smallest file, because no blank page area is drawn around them.
  • Auto orientation beats sorting your photos by shape — it picks per page, so a mixed set still prints without rotated blanks.
  • If a photo appears cropped, the scaling is on Fill. Fill deliberately covers the whole page and lets the overflow run past the page edge, where PDF viewers clip it.
  • The title page uses Helvetica and one line only — keep it short, as long text will run past the page instead of wrapping.
  • Photos from a camera may carry an EXIF rotation flag. The Maximum path embeds the file as stored, so if a photo lands sideways, rotate and re-save it before adding it here.
  • Byte-for-byte JPEG embedding at Maximum quality
  • A4, Letter, Legal, A3, A5, fit-to-image or custom page boxes
  • Portrait, landscape or per-image automatic orientation
  • Margin presets plus a typed value, and four scaling modes
  • Drag-to-reorder thumbnails with an optional title page
  • In-page PDF preview before you download
  • Turning a stack of phone photos of a signed document into one PDF an office will actually accept.
  • Building a print-ready A4 photo set where every page has the same margin.
  • Packaging receipt or expense photos into a single attachment for a claim.
  • Making a quick portfolio PDF from exported JPGs without opening a design application.
  • Assembling scanned book or note pages, in the right order, ready for an OCR step elsewhere.
  • Getting property or insurance documentation photos into the one format a claims portal takes.
Not at the Maximum setting, which is the default here. A PDF can carry a JPEG stream directly, so the file is copied into the document exactly as it is and a page is drawn around it — the pixels are identical to the ones you started with. Quality only enters the picture if you deliberately choose Low, Medium or High, which re-encode each photo through a canvas to make the PDF smaller. That is a real second round of JPEG compression, so use it when a size cap forces you to and leave it alone otherwise.
At Maximum quality it is roughly the sum of your JPGs plus a few kilobytes of document structure — a PDF is a container, not a compressor. Twenty 4 MB phone photos land near 80 MB. If that is too big, the quality presets are the lever: High (92) typically takes a third off with no visible difference on a screen, Medium (80) roughly halves it, and Low (60) is for when the only thing that matters is fitting under a limit.
No. This page writes one image per page, which is what people mean by JPG to PDF in almost every case: a document whose pages happen to be photographs. A contact-sheet layout — a grid of thumbnails on one page — is a different job with different controls, and doing it badly inside this tool would make the page-size and margin settings mean two different things.
That is the scaling mode. Fit scales the photo down until it sits entirely inside the margins, which never crops and never distorts. Fill scales it up until it covers the whole page area, so anything past the page edge is clipped by the viewer. Stretch forces the photo into the exact page box regardless of its aspect ratio, which distorts it. Original draws it at one pixel per point, which for a large photo means most of it hangs off the page. Fit is the setting you want unless you asked for something else.
No. pdf-lib builds the document in this browser tab, and the download is a local object URL. There is no endpoint receiving image data — the site's only server code is a small set of Pages Functions for network tools, and this is not one of them. Load the page, disconnect from the internet, and the conversion still completes.
Because it is the JPG page and the copy, the defaults and the quality behaviour are written for JPEG. A PNG belongs on the PNG to PDF page, where Maximum quality preserves transparency instead of flattening it; a HEIC photo or a mixed folder belongs on Images to PDF, which converts HEIC and accepts WebP, BMP, GIF and TIFF as well. Refusing here is deliberate: silently converting a format the page does not name would make the quality guarantee above untrue.
View all

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy