PDF Converter

Upload Images

Drag & drop images or click to browse

PNG, JPG, JPEG (max 20MB each, up to 50 files)

Options

About the PDF Converter

The PDF Converter combines JPEG and PNG images into a single multi-page PDF — entirely in your browser via jsPDF. Drop up to 50 images (20 MB each), drag to reorder pages, configure page size / orientation / margin / image fit, and download. No upload, no rate limits, no signups. The PDFs you create are yours and stay on your device unless you explicitly download or share them.

Updated: May 8, 2026

How to use the converter

  • Drag-and-drop one or many JPEG / PNG images onto the upload area (or click to browse). Each file may be up to 20 MB; up to 50 files per batch.
  • Drag thumbnails to reorder — the order in the grid is the page order in the output PDF. Hover any thumbnail to remove it.
  • Configure output options: page size (A4, Letter, Legal), orientation (portrait or landscape), margin (none / 10 mm / 20 mm), and image fit (Fit, Fill, Stretch).
  • Click Convert to PDF to build the file. Progress is shown live; the PDF downloads automatically as `converted.pdf` when ready.
  • Use the Try Sample Images button to load three procedurally-generated test images for a quick end-to-end check.

Common use cases

  • Receipt or invoice generation — paste customer info and line items, generate a PDF for email delivery.
  • Photo album / portfolio creation — combine a folder of high-resolution images into a multi-page PDF for sharing or printing.
  • Documentation export — paste markdown-rendered HTML for archival as a PDF that survives URL link rot.
  • Form filling preparation — generate a printable form template before scanning back to PDF after pen-fills.
  • Quick report generation from API output — convert JSON-rendered HTML tables into a PDF for stakeholder reviews.

Privacy and security

jsPDF and pdf-lib are pure JavaScript libraries bundled into the page. The PDF generation pipeline — image decoding, text layout, font embedding, page composition — runs entirely client-side. Your source content (images, text, HTML) never leaves the browser. The downloaded PDF is generated locally and saved via the browser's standard download dialog. Disconnect from the network and the converter still works.

Tips and pitfalls

  • Image DPI matters. The converter places images at their pixel dimensions; for print quality at A4, an image should be at least 2480×3508 px (300 dpi). For screen viewing 1240×1754 (150 dpi) is enough.
  • Standard 14 fonts only. Helvetica, Times, Courier, Symbol, Zapf Dingbats are the PDF standard 14 — supported everywhere without font embedding. Custom fonts require embedding (larger file size, licensing concerns).
  • CJK, emoji, and accented characters need a custom font. The standard fonts cover Latin-1 only. To render 한글, 中文, or 日本語 you must embed a font that contains those glyphs (Noto Sans CJK is a common choice; the converter supports it via the Custom Font option).
  • HTML rendering is basic. Complex CSS (flexbox, grid, custom positioning) is not supported — for pixel-perfect HTML-to-PDF, use a server-side renderer (Puppeteer + Chromium) instead. The converter handles standard markdown-shaped HTML well.
  • Large files. 100+ image batches may exceed browser memory. Break into smaller batches and use the PDF Merger to combine the resulting PDFs.

Frequently Asked Questions

Which image formats are supported?
JPEG, PNG, WebP, and GIF. JPEG is most efficient for photos; PNG for screenshots and images with transparency; WebP for the best size/quality trade-off when supported. The converter auto-detects format from the file extension and MIME type.
Can I make the PDF searchable?
For text and HTML input — yes, automatically. The text is encoded as searchable text in the PDF. For image input — the PDF contains the image bitmap, not text; OCR is required for searchability. Use a separate OCR tool (Tesseract, cloud OCR services) to add a text layer.
How do I add CJK characters?
Toggle "Custom Font" and upload a TTF/OTF font containing the glyphs you need (Noto Sans CJK, Source Han Sans). The converter embeds the font subset for the characters you actually used, keeping file size reasonable.
Is the PDF/A standard supported?
Not directly — PDF/A (archival PDF) requires specific structural and metadata constraints that pdf-lib does not enforce by default. Use a dedicated PDF/A converter (Ghostscript, Adobe Acrobat) for compliance-mandated archival.
Can I encrypt or password-protect the PDF?
pdf-lib supports basic password encryption via the encrypt() method. The current version of this tool does not expose that option; if you need encrypted PDFs for sensitive content, use a dedicated PDF encryption tool after generation. For higher-security scenarios, consider PGP-encrypting the PDF instead.
How big can the source content be?
Single-image source: 50 MB practical limit (browser memory). Multi-image batches: ~300 MB total before memory pressure. Text/HTML source: effectively unbounded. For very large generation pipelines, server-side tools (wkhtmltopdf, Puppeteer) are more appropriate.
Will my PDF render the same in every viewer?
For text and standard fonts: yes, by design (PDF is a fixed-layout format). For embedded custom fonts: yes if the font is properly embedded. For complex content: minor rendering differences occur between Acrobat, browsers (Chrome's built-in viewer), macOS Preview, and mobile readers.
Can I extract text from an existing PDF here?
Not in this tool — this is a generator. For extraction use the PDF Merger Splitter (for splitting) or a dedicated extractor like pdf.js text-extraction APIs. For OCR on scanned PDFs, use Tesseract.js or a cloud OCR.