Image to PDF Guide

2026-04-25·5 min read·Document

Image to PDF Basics

Image to PDF conversion transforms JPEG, PNG, BMP, and other image formats into PDF documents. Common use cases include: converting scanned documents into searchable PDFs, organizing photos taken with smartphones into documents, exporting design drafts as printable PDFs, and saving electronic receipts in a unified format. The advantage of PDF format lies in cross-platform consistency, multi-page support, and easy printing and sharing.

Factors to consider during conversion include: balancing image quality and file size, page dimensions (A4, Letter, or original size), image arrangement (single image per page or multiple images tiled), and metadata settings (title, author, creation time). High-quality conversion should maintain image clarity while generating reasonable file sizes.

Command-Line Conversion Methods

# Using ImageMagick for conversion

# Single image to PDF
convert image.jpg output.pdf

# Multiple images to PDF (one per page)
convert img1.jpg img2.png img3.jpg output.pdf

# Set page size to A4
convert -page A4 image.jpg output.pdf

# Set image quality (1-100)
convert -quality 90 image.jpg output.pdf

# Using Img2PDF (maintains original quality, no re-encoding)
img2pdf img1.jpg img2.png -o output.pdf

Programming Implementation

// Node.js using pdf-lib to create PDF
const { PDFDocument } = require('pdf-lib');
const fs = require('fs');

async function imagesToPDF(imageFiles, outputFile) {
  const pdf = await PDFDocument.create();

  for (const imageFile of imageFiles) {
    const imageBytes = fs.readFileSync(imageFile);
    const ext = imageFile.split('.').pop().toLowerCase();

    let image;
    if (ext === 'jpg' || ext === 'jpeg') {
      image = await pdf.embedJpg(imageBytes);
    } else if (ext === 'png') {
      image = await pdf.embedPng(imageBytes);
    }

    const page = pdf.addPage([image.width, image.height]);
    page.drawImage(image, {
      x: 0,
      y: 0,
      width: image.width,
      height: image.height
    });
  }

  const pdfBytes = await pdf.save();
  fs.writeFileSync(outputFile, pdfBytes);
}

Recommended Tools

ImageMagick is a powerful command-line image processing tool. pdf-lib is a JavaScript PDF generation library. img2pdf can maintain original image quality during conversion. Scan Tailor is a scanned document post-processing tool.