Image to PDF
Combine multiple JPG and PNG images into a single PDF document.
Reviewed by Aygul Dovletova · Last reviewed
Drop images here or click to upload
Supports JPG and PNG
How to Use the Image to PDF Converter
- Drag one or more JPEG or PNG files into the dropzone, or click to browse. The file picker allows multi-select; the dropzone accepts arbitrary batches.
- Reorder the pages using the up and down arrows beside each thumbnail. The PDF will be assembled in exactly the order shown.
- Add more images at any point by dropping another batch or clicking the picker again. Duplicates are allowed.
- Click "Create PDF and Download". Each image is embedded at its native dimensions as a full page in the generated PDF.
- Review the downloaded file. Every page matches one source image; no resizing, no white margins, no re-compression - the original JPEG or PNG bytes are embedded verbatim.
How the Merge Works
PDF is a structured document format (ISO 32000-2) built around a list of page objects, each with a content stream, a media box defining dimensions, and referenced resource objects for fonts and images. Embedding an image in PDF does not re-encode it: JPEG data can be written directly with a DCTDecode filter, and PNG becomes a pair of FlateDecode streams for the pixel data and alpha mask. The pdf-lib library we use implements this embedding in pure JavaScript, so the whole assembly runs in your browser without a native PDF engine.
For each uploaded image, pdf-lib inspects the header, chooses the right embedding path (doc.embedJpg for JPEG, doc.embedPng for PNG), creates a new page sized to match the image dimensions exactly, and draws the image to fill that page. The result is a document where every page has the same pixel count as the source image - a 4000x3000 photo produces a 4000x3000-point page, which renders at the native resolution in any PDF reader. The final PDF is serialized to a Uint8Array, wrapped in a Blob, and offered as a download via URL.createObjectURL.
Real Workflows for Image-to-PDF
- Bundling a stack of scanned receipts into a single attachment for an expense report, where PDF is the only accepted format.
- Combining a multi-page scanned contract (photographed page by page) back into a single document before sending for signature.
- Assembling a portfolio or moodboard from individual image files into a PDF you can print or email.
- Submitting a homework assignment where the instructor requires one PDF per submission but you captured the pages as phone photos.
- Creating a PDF gallery of product shots for a wholesale catalog in lieu of a real publishing workflow.
- Archiving a sequence of UI screenshots into a PDF for a bug report where scrollable evidence matters.
Edge Cases and Caveats
- PNG transparency becomes solid. Some PDF readers render PNG transparency inconsistently. For predictable output, flatten transparent PNGs onto a solid background before adding them - the Image Format Converter does this if you convert to JPEG first.
- Only JPEG and PNG are accepted. pdf-lib\'s direct embedding API supports those two formats; WebP and GIF must be converted first. Drop them through the Image Format Converter, then bring the JPEG or PNG output here.
- Page size equals image size. If you want standard Letter or A4 pages with margins, resize all images to those dimensions (e.g., 2550x3300 for Letter at 300 DPI) before merging. This tool intentionally keeps the one-to-one mapping for fidelity.
- Very large input sets are slow. Embedding 100 high-res photos can take several seconds and briefly spike memory. For massive batches, a command-line pipeline is more efficient.
- No OCR or text extraction. The PDF contains image pages only. Searchable text would require an OCR pass (Tesseract, Adobe Acrobat Pro) as a separate step.
What Makes a PDF a PDF
PDF was invented by Adobe in 1993 and standardized as ISO 32000-1 in 2008, with ISO 32000-2 (PDF 2.0) published in 2017. The format defines a hierarchy of objects: the Catalog at the root, a Pages tree listing individual page objects, each page with a MediaBox rectangle in user-space units (1/72 inch per unit by convention), and content streams describing what to draw. Images are stored as XObjects with a subtype /Image, referenced from the page\'s resource dictionary, and drawn with the "Do" operator. Compression filters (DCTDecode for JPEG, FlateDecode for PNG-style, JBIG2Decode for bitmap, JPXDecode for JPEG 2000) wrap the image bytes. The format\'s genius is that it is both human-readable text at the top level (you can open a PDF in a text editor and see %PDF-1.7) and structured enough to be machine-parsed into exact visual fidelity.
Browser Builder vs. Desktop and CLI Tools
For a handful of images assembled one time, the browser is faster than any alternative: drop, reorder, click, download. For batch jobs, the command line wins: img2pdf *.jpg -o out.pdf from the img2pdf Python tool produces nearly identical output at shell-scripting speed. ImageMagick\'s magick *.jpg out.pdf also works but re-encodes images through its own internal pipeline, which can unnecessarily inflate file size. Ghostscript, PyPDF, pikepdf, and qpdf are the heavy-hitter PDF manipulation tools for more complex operations like merging existing PDFs, splitting pages, or rotating. Adobe Acrobat, Preview on macOS, and PDF24 on Windows all bundle image-to-PDF as a standard feature. This tool is the right choice when privacy matters and the input count is modest; for a hundred files or scripted workflows, go command-line.
Frequently Asked Questions
Does this tool send my images to a server?
No. Everything happens in the browser. The pdf-lib JavaScript library embeds each image directly into a PDF object tree built in memory, and the final document is serialized to a Blob and downloaded via an object URL. None of the image data or the generated PDF leaves your device. DevTools Network panel stays silent through the whole process.
Will image quality drop when the PDF is generated?
No. JPEG files are embedded with their original DCT-compressed bytes intact - no re-encoding - so there is no additional loss. PNG files are embedded as FlateDecode streams preserving every pixel. The resulting PDF contains the same pixel data as the source images. The file size is roughly the sum of the input sizes plus a small PDF structural overhead.
Why is only JPEG and PNG supported?
PDF's native image filters are DCTDecode (JPEG), FlateDecode (PNG-style), JBIG2Decode, and JPXDecode (JPEG 2000). pdf-lib directly embeds JPEG and PNG without re-encoding. WebP, GIF, AVIF, and HEIC would require either re-encoding through Canvas (losing the advantage of direct embedding) or JPEG 2000 conversion. For those formats, convert to JPEG or PNG first using the Image Format Converter, then bring the result here.
Can I set a custom page size like Letter or A4?
Not directly - each PDF page matches the dimensions of its source image in points (1 point = 1/72 inch). For Letter-sized pages (8.5 x 11 inches), resize all images to 612 x 792 pixels with the Image Resizer first. For A4 (210 x 297 mm), use 595 x 842 pixels. At 300 DPI print resolution, use 2550 x 3300 for Letter and 2480 x 3508 for A4.
Can the output PDF be searched with text?
No. This tool produces an image-only PDF, where the "content" is rendered pixels. To make it searchable, run an OCR pass afterward with Tesseract (<code>tesseract input.pdf output pdf</code>), Adobe Acrobat Pro's Recognize Text, or an online OCR tool. OCR adds an invisible text layer aligned to the image content, making ctrl-F work across the document.
Is there a practical limit on how many images I can merge?
The tool does not impose a hard cap, but memory and time grow linearly with the input. Ten to twenty phone photos merges in under a second. A hundred files can take several seconds, and two hundred large images may trigger browser memory pressure on a budget phone. For scripting batches of hundreds of files, <code>img2pdf</code> on the command line is faster and has no memory cap beyond available RAM.
Can I reorder pages after generating the PDF?
Not once the PDF is downloaded, not with this tool. The UI handles reordering before generation via the up/down arrows next to each thumbnail. If you need to reorder pages in an existing PDF, use PDF24, Smallpdf, or a command-line tool like <code>pdftk input.pdf cat 2 1 3 output out.pdf</code> to reshuffle pages.
Will the PDF have embedded searchable metadata?
The generated PDF contains minimal metadata: a creation date and the author string set by pdf-lib. No EXIF data from the source images is carried over - it is stripped during embedding. If you want title, author, or subject metadata set, use the pdf-lib API directly via your own script, or edit the PDF after generation with a tool like Acrobat or PDFtk.
Why do some PDF readers show my transparent PNG with a black background?
PDF transparency (through soft masks in the XObject) is supported by all modern readers but implemented inconsistently in older ones. Some interpret the alpha channel as "blend with page background" (correct), others ignore it and render opaque. For maximum compatibility, flatten transparent PNGs onto a white background before merging, or use JPEG inputs only.
Does the order of images in the dropzone match the page order?
Yes. Files are processed in the order they appear in the thumbnail list, top to bottom. Drag and drop does not guarantee a particular order across browsers, so always verify the list matches your intent before clicking "Create PDF". Use the up/down arrows to adjust any page out of sequence.
Is this an images to single PDF converter, or does it produce one PDF per image?
It is an images to single PDF converter. Every uploaded JPEG or PNG becomes a page in one combined output document; you do not get one PDF per image. To get one PDF per image, run the tool once per file. To merge separately created PDFs into a single PDF afterward, use the dedicated PDF Merger tool elsewhere on the site.
More PDF Tools
PDF Compressor
Compress PDFs with Ghostscript image downsampling. Pick a quality preset. Files auto-deleted after 15 minutes.
Open toolPDF Merge (Server-Side)
Merge up to 20 PDFs into a single document on our EU servers using qpdf. Files auto-deleted after 15 minutes. Handles large or password-cleared inputs the in-browser merger cannot.
Open toolPDF Merger
Merge multiple PDF files into a single document with drag-and-drop reordering.
Open toolPDF Page Reorder
Rearrange pages in a PDF document with a visual drag-and-drop interface.
Open toolPDF Password Protect
Add AES-256 password protection to PDF files via qpdf. Files auto-deleted after 15 minutes.
Open toolPDF Rotate (Server-Side)
Rotate every page of a PDF, or just a selected range, by 90, 180, or 270 degrees on our EU servers. qpdf-based, metadata preserved. Auto-deleted after 15 minutes.
Open tool