← Back to Open-Source PDF Software

Open-Source PDF Software Capable of Converting PDFs to Images

Rasterize PDF pages to image files

36 tools

Command Line

Poppler

CliLibrary

PDF rendering library and command-line suite (pdftotext, pdfimages, pdftoppm, pdftocairo, pdftohtml, pdftops, pdfinfo, pdffonts, pdfdetach, pdfattach, pdfseparate, pdfunite, pdfsig) covering text/image extraction, page rendering, format conversion, metadata, attachments, and signature verification.

Command Line

Xpdf

CliGui

PDF viewer plus command-line tools (pdftotext, pdftops, pdftoppm, pdftopng, pdftohtml, pdfinfo, pdfimages, pdffonts, pdfdetach) for viewing PDFs and converting them to text, PostScript, image, or HTML, plus metadata, image, font, and attachment extraction.

Command Line

Ghostscript

CliLibrary

PostScript and PDF interpreter/renderer from Artifex: converts PostScript/PDF to images, text, DOCX, PCL, and XPS; compresses PDFs while preserving quality; converts to/validates PDF/A; adds an OCR text layer to scanned pages; imposition (N-up), ICC color management, and ZUGFeRD/Factur-X e-invoicing support.

Command Line

MuPDF

CliGuiLibrary

Lightweight C library, viewer, and CLI toolset for PDF, XPS, and e-book formats: renders and extracts text/images/metadata/structured content; creates, splits, merges, and compresses PDFs; adds annotations (highlights, stamps, shapes); permanently redacts content; digitally signs documents; converts between PDF, SVG, PNG, HTML, and PostScript; and embeds into web pages/apps.

C++

wkhtmltoimage

CliLibrary

Headless, command-line tool (and C library) that renders HTML into image files using the Qt WebKit rendering engine, without requiring a display server. Can capture live URLs or local HTML.

DepreciatedStale
C++

xournalpp

Gui

Handwriting notetaking application (GTK3) that annotates on top of PDFs: highlight, underline, or strike through selected/copied PDF background text, follow links in the background PDF, and export annotated notes to SVG, PNG, or PDF from the GUI or command line. Supports pen/stylus input (e.g. Wacom tablets).

C++

GSview

Gui

Open-source graphical front-end for Ghostscript on Windows/Linux/macOS: views and navigates PostScript and PDF files, and converts sequences of PDF pages to image files (from bitmap through TIFF-pack formats) at selectable resolutions.

Stale
Java

Apache XML Graphics FOP

Library

Print formatter driven by XSL Formatting Objects (XSL-FO): reads an FO tree (often produced via XSLT from semantic XML) and renders it to PDF (its primary target, targeting the PDF 1.4 spec), plus PostScript, PCL, AFP, PNG, RTF, TXT, and other outputs. Handles multi-page tables, footnotes, static page regions, and external graphics; usable standalone, embedded, via servlet, or via an Ant task.

Java

Apache PDFBox

CliLibrary

Java library and CLI toolset covering PDF creation from scratch (with embedded fonts/images); Unicode text extraction; splitting and merging; form field extraction and filling; PDF/A-1b validation via Preflight; rendering pages to PNG/JPEG; printing via the Java printing API; and digital signing.

Java

Flying Saucer

Library

Renders well-formed XML/XHTML using CSS 2.1 layout/formatting to Swing panels, images, or PDF (via an OpenPDF-based renderer, or by delegating to a headless Chrome shell for modern HTML5/CSS3 support); also offers SWT output for Eclipse-based apps.

Java

neoFlyingSaucer

Library

Pure-Java HTML/CSS-to-PDF/image renderer, a modernization of Flying Saucer.

DepreciatedStale
Java

Open HTML to PDF

Library

Renders a practical subset of XML/XHTML/HTML5 with CSS 2.1+ (incl. CSS3 transforms, gradients, multiple backgrounds) to PDF or images, with SVG and MathML plugin support, accessible/tagged PDF output (Section 508, PDF/UA, WCAG 2.0), PDF/A compliance, font fallback and embedding, RTL/bidi text, footnotes, and file embedding via link download attributes.

Stale
JavaScript

DeckTape

Cli

Puppeteer-based (headless Chrome) command-line tool that exports HTML slide presentations to high-quality PDF, with native support for 13 frameworks (reveal.js, impress.js, remark, Bespoke.js, deck.js, etc.) plus a generic mode for others; can also capture slides as PNG/JPG images, export slide ranges, and set PDF metadata.

JavaScript

Electron-PDF

Cli

CLI tool and Node.js API (built on Electron/Chromium) that converts URLs, HTML files, or Markdown files to PDF or PNG, with custom CSS injection, page size/orientation/margin control, print-background support, custom request headers, and batch/concurrent job handling.

JavaScript

html-pdf-chrome

Library

Node.js library that renders HTML (local strings or remote URLs) to PDF using headless Chrome/Chromium, or exports as PNG/JPEG/WebP screenshots; supports templated headers/footers, custom HTTP headers, configurable viewport/device-scale, and multiple render-completion triggers (callbacks, DOM events, timers).

JavaScript

node-html-pdf

Library

PhantomJS-based library that converts HTML to PDF, PNG, or JPEG via a file/stream/buffer API, with paper size, orientation, margin, zoom, and header/footer options.

DepreciatedStale
JavaScript

scissors

Driver

Node.js wrapper around PDFtk, Ghostscript, and ImageMagick for PDF manipulation: split/select/reorder/reverse pages, filter even/odd pages, join multiple PDFs, rotate (90/180/270/360°), crop (noted as unreliable), extract text and embedded images, extract metadata/properties, and render pages to PNG at a given DPI.

JavaScript

url-to-pdf-api

Server

Microservice (Puppeteer/headless Chrome) that converts URLs or posted HTML into PDFs or PNG/JPEG screenshots, with configurable viewport, PDF page size/orientation/margins/scale, header/footer templates, page-range selection, cookies/headers, SPA network-idle waiting, and optional API-key auth; deployable via Heroku or Docker.

Stale
JavaScript

zerox

Library

OCR/document-ingestion library (Node/TypeScript and Python implementations) that converts PDFs, Word/Excel/PowerPoint files, and images to page images, then sends each to a vision-language model (OpenAI, Azure OpenAI, AWS Bedrock, Google Gemini, or Vertex AI) to produce Markdown, preserving tables/charts; supports structured JSON-schema extraction, page selection, concurrent processing, and orientation/edge correction.

JavaScript

pdf-img-convert

Library

Node.js module that converts PDF files into image buffers (PNG) without touching the filesystem.

JavaScript

pdf2pic

Library

Node.js utility for converting PDF pages to image formats, with output directly to file, base64, or buffer.

PHP

PHPPdf

Cli

Converts XML (or Markdown) documents to PDF or images (JPEG/PNG via GD/Imagick/Gmagick) with HTML-like tags (div, p, table, headings, lists, images, links); supports auto-breakable/fixed pages, multi-column layouts, headers/footers/watermarks, page numbering, metadata, internal/external links, bookmarks, sticky notes, barcodes (via Zend), simple pie charts, borders, backgrounds, rotation/transparency, and stylesheets; usable via web or CLI, with Symfony2 integration.

Stale
PHP

browsershot

DriverLibrary

PHP package that drives headless Chrome (via Puppeteer) to convert a URL, HTML string, or local HTML file into a PDF or image; can also extract the rendered HTML body after JavaScript execution and list all network requests the page triggered.

PHP

Snappy

DriverLibrary

PHP wrapper around wkhtmltopdf/wkhtmltoimage that generates PDFs or image snapshots/thumbnails from URLs or HTML, merges multiple URLs into a single PDF, supports XSL-based tables of contents, and passes through wkhtmltox options (page size, margins, cookies, JS); includes Symfony, Laravel, and Zend Framework integrations.

PHP

pdf-to-image

DriverLibrary

Converts PDFs (via ImageMagick + Ghostscript) to JPG/JPEG/PNG/WebP images: render specific or all pages, control quality/DPI/dimensions/background color, read page count and page dimensions, and handle password-protected PDFs (requires ImageMagick 7).

PHP

laravel-snappy

Library

Laravel wrapper around the Snappy library: generates PDFs or images from HTML strings, files, or Laravel views, with output to file/browser/download, wkhtmltopdf/wkhtmltoimage option passthrough (paper size, orientation, margins), and a fake mode for testing without real rendering.

Python

pdf-diff

Library

Compares the text layers of two PDFs and outputs the bounding boxes of changed text as JSON, then rasterizes the changed pages to a PNG with red outlines drawn around the differences.

Python

pdf2image

Library

Wraps Poppler's `pdftoppm`/`pdftocairo` to convert PDFs (whole documents or page ranges) into PIL Image objects: PPM/JPEG/PNG output, multi-threaded batch conversion, grayscale mode, custom sizing, and password-protected PDF support.

Stale
Python

pypdfium2

BindingsLibrary

Python ctypes bindings to Google's PDFium: renders pages to images, extracts text, reads metadata/bookmarks/page properties, creates new PDFs and inserts images/pages, and searches for text — with both convenience helper classes and raw PDFium API access.

R

pdftools

BindingsLibrary

R bindings for extracting content from PDFs: `pdf_text()` for per-page text, `pdf_info()` for metadata (author, creation date, tags), `pdf_toc()` for table of contents/section headers, `pdf_fonts()` for font info, embedded-attachment access, and `pdf_render_page()` to rasterize pages to bitmap (e.g. PNG/WEBP). Does not handle table extraction (recommends the `tabulizer`/`tabulapdf` package) or OCR of scanned text (recommends the `tesseract` package).

Ruby

Grover

DriverLibraryPlugin

Ruby gem that uses Puppeteer/headless Chromium (or Firefox) to convert URLs, inline HTML, local files, or Rails view templates into PDF, PNG, or JPEG: configurable page layout/margins/viewport, cookies/headers, CSS/JS injection, cover pages, HTTP basic auth, remote-browser connections, wait conditions (network idle, element visibility), and Rack middleware for URL-extension-triggered conversion.

Ruby

FerrumPdf

Library

Rails-oriented gem (headless Chrome via Ferrum, no Node.js dependency) that renders HTML/URLs to PDF (`render ferrum_pdf: {}`) with paper size/margin/orientation/scale options and dynamic headers/footers, or captures PNG/JPEG screenshots (`render ferrum_screenshot: {}`) of the full page, viewport, or a CSS-selected element.

Ruby

RGhost

Library

Ghostscript-based document API that generates documents programmatically and converts between PDF, PS, GIF, TIF, PNG, and JPG, with support for EPS templates and optimizations for handling large documents.

Stale
Ruby

Docsplit

CliLibrary

CLI utility and Ruby library that extracts searchable UTF-8 plain text from documents, generates page images and thumbnails in any format, splits documents into single-page or full PDFs, and extracts metadata (title, author, page count).

Ruby

Grim

Library

Ruby gem (using ImageMagick and Ghostscript) that extracts a PDF page as an image (e.g. PNG) or as page text, reports total page count, and iterates all pages in batch, with configurable image width/density/quality/colorspace/alpha and custom processor paths.

Stale
Scala

PDFFigures 2.0

Library

Extracts figures, tables, captions, figure names/numbers, section titles, and in-figure text from scholarly (computer science) PDFs, with page location and bounding boxes; renders extracted figures as raster (PNG/JPEG) or vector (SVG/PS/EPS, via pdftocairo) images; supports multi-threaded batch processing and includes debugging visualization tools.

Stale