Friday, May 22, 2026Today's Paper

Omni Apps

How to Convert PDF to Image in Linux: The Ultimate CLI Guide
May 21, 2026 · 11 min read

How to Convert PDF to Image in Linux: The Ultimate CLI Guide

Master the best ways to convert PDF to image in Linux. Learn how to use pdftoppm, fix ImageMagick security errors, and convert images back to PDF easily.

May 21, 2026 · 11 min read
LinuxCommand LineDocument Management

Whether you are a system administrator automating a server workflow, a software developer building a document pipeline, or a desktop user managing scanned documents, knowing how to convert PDF to image in Linux is an essential skill. PDFs are incredible for maintaining a consistent layout across different devices, but they are not always ideal for web display, quick previews, or embedded media pipelines. In those situations, converting your document into formats like PNG, JPEG, or TIFF is the ideal solution.

In this comprehensive guide, we will explore the absolute best terminal utilities available on Linux to handle these transformations. We will cover standard command-line tools like pdftoppm, look at configuring ImageMagick to bypass frustrating security errors, show you how to reverse the process to convert image to pdf in Linux, and dive into advanced batch processing scripts. Let's get started.

1. The Superior Solution: Converting PDF to Image with pdftoppm

When most users look to convert a PDF file into an image format on Linux, they immediately think of ImageMagick's convert command. However, there is a far more efficient, native, and robust tool already built for this exact purpose: pdftoppm.

Part of the poppler-utils (or poppler-tools) package, pdftoppm is specifically engineered to render PDF files into various raster image formats (PNG, JPEG, TIFF, and PPM). Because it is built directly on top of the Poppler PDF rendering library, it renders vector graphics, gradients, and custom fonts with incredible accuracy, high speed, and minimal memory usage.

Installing Poppler Utilities

Most modern Linux distributions come with poppler-utils pre-installed. If it is missing from your system, you can easily install it using your distribution's package manager:

  • Ubuntu / Debian / Linux Mint: sudo apt update && sudo apt install poppler-utils
  • Fedora / Red Hat / CentOS: sudo dnf install poppler-utils
  • Arch Linux / Manjaro: sudo pacman -S poppler
  • openSUSE: sudo zypper install poppler-tools

Basic Conversion Commands

Once installed, you can perform conversions immediately. To convert a multi-page PDF into PNG images, use the following syntax:

pdftoppm -png input.pdf output_destination

In this command, pdftoppm reads input.pdf and outputs a numbered series of PNG files, such as output_destination-1.png, output_destination-2.png, and so on. If you prefer JPEG format, simply swap the flag:

pdftoppm -jpeg input.pdf output_destination

Adjusting Quality and Resolution (DPI)

By default, pdftoppm renders images at 150 DPI (dots per inch). While 150 DPI is fine for quick previews on a standard monitor, it can look blurry on high-resolution screens or if you intend to print the image. To achieve crisp, professional-grade images, you should specify a higher resolution using the -r flag. A value of 300 DPI is generally considered standard for print and high-density screens:

pdftoppm -png -r 300 input.pdf output_destination

If you need to control the horizontal and vertical resolution independently, you can use the -rx and -ry flags respectively:

pdftoppm -png -rx 300 -ry 300 input.pdf output_destination

Converting Specific Pages and Ranges

If you have a 100-page document but only need pages 5 through 10, processing the entire document is a waste of CPU cycles and disk space. You can use the -f (first page) and -l (last page) flags to isolate your conversion:

pdftoppm -png -f 5 -l 10 -r 300 input.pdf output_destination

Converting a Single Page (Without Numbering)

By default, pdftoppm appends -1, -2 to the output file names. If you are converting exactly one page and want the output file to match your exact specified name without any suffix, use the -singlefile flag:

pdftoppm -png -f 1 -singlefile input.pdf exact_filename

This will generate a file named exactly exact_filename.png instead of exact_filename-1.png.

2. Using ImageMagick and Resolving the Security Policy Error

ImageMagick is a legendary CLI utility for editing, composing, and converting bitmap images. Historically, developers relied heavily on ImageMagick's convert command for PDF operations. However, modern users often encounter a frustrating roadblock when using ImageMagick to convert pdf to image in Linux.

The Common ImageMagick Error

When you run a standard conversion command like:

convert -density 300 input.pdf output.png

You are highly likely to see the following error output on modern Linux distributions:

convert-im6.q16: attempt to perform an operation not allowed by the security policy 'PDF' @ error/constitute.c/IsCoderAuthorized/421.

Why This Happens

This error is not a bug. It is a deliberate security restriction implemented by system maintainers. ImageMagick does not natively parse PDF files; instead, it delegates that task to an external interpreter called Ghostscript. Over the years, Ghostscript has suffered several high-profile security vulnerabilities. Because many server environments automatically process user-uploaded images and documents using ImageMagick, package maintainers on Ubuntu, Debian, Red Hat, and other distros decided to block PDF, PostScript (PS), EPS, and XPS rendering by default in ImageMagick's global policy file to protect systems from malicious exploit files.

How to Fix the Security Policy Safely

If you are on a private machine or a secure server where you trust the source of the PDF files, you can modify ImageMagick's configuration file to re-enable PDF reading and writing permissions. First, locate the ImageMagick policy.xml file. Depending on your Linux distribution and installed ImageMagick version (6 or 7), it will typically be found in one of these directories:

  • /etc/ImageMagick-6/policy.xml
  • /etc/ImageMagick-7/policy.xml
  • /etc/ImageMagick/policy.xml

Open the file in a text editor with root privileges (using nano or vim):

sudo nano /etc/ImageMagick-6/policy.xml

Scroll through the document until you find a line that looks like this:

<policy domain="coder" rights="none" pattern="PDF" />

To allow ImageMagick to both read and write PDF documents, modify the rights attribute from "none" to "read|write":

<policy domain="coder" rights="read|write" pattern="PDF" />

If you also see lines blocking PS, EPS, or XPS and you require those formats, you can modify them similarly. Save the file (in nano, press Ctrl+O then Enter, and exit with Ctrl+X). Now, your convert commands will run without any security policy warnings!

Optimal ImageMagick Conversion Syntax

Once the policy is updated, you can convert PDFs. However, you must pay close attention to your command structure. ImageMagick rasterizes vector files. If you run a simple convert input.pdf output.png command, the output will look pixelated because ImageMagick will render the PDF at a default 72 DPI and then scale it up. To ensure a high-quality conversion, you must specify the -density flag before the input file. This tells ImageMagick to render the PDF pages at a higher density from the start:

convert -density 300 input.pdf -quality 90 output-%03d.png

  • -density 300: Renders the PDF pages at 300 DPI.
  • input.pdf: The path to your input document.
  • -quality 90: Sets the compression level (mainly useful for JPEG outputs, where 100 is lossless and lower numbers compress the file further).
  • output-%03d.png: Specifies the output file naming convention. The %03d formatting tells ImageMagick to output three-digit, zero-padded numbers (e.g., output-001.png, output-002.png), keeping your directory files perfectly ordered.

3. Reversing the Process: How to Convert Image to PDF in Linux

In many document management workflows, you will eventually need to do the exact opposite: take single or multiple images (scans, photos, screenshots) and combine them back into a single PDF. When you need to convert image to pdf in Linux, you have two main approaches.

Method A: The Gold Standard — img2pdf (Lossless & Lightning Fast)

While ImageMagick can convert images to PDF, it is often not the best tool for the job. ImageMagick decompresses the raster data and re-compresses it into the PDF wrapper. This results in two major disadvantages: a loss in image quality (due to double-compression) and massive, bloated PDF file sizes.

The tool img2pdf solves this entirely. It is designed to embed images directly into a PDF container without any re-encoding. This means the conversion is 100% lossless, executes almost instantaneously, and results in the smallest possible file size.

To install img2pdf on Debian/Ubuntu-based systems, run:

sudo apt install img2pdf

To convert a single JPEG image into a PDF document, run:

img2pdf photo.jpg -o document.pdf

To combine multiple images into a single, multi-page PDF document, pass them as a list. The order of the files in your command will dictate their page order in the resulting PDF:

img2pdf page1.jpg page2.jpg page3.png -o combined_scans.pdf

If you have a directory full of sequentially numbered images and want to merge them all, you can use wildcards:

img2pdf *.jpg -o portfolio.pdf

Method B: Using ImageMagick's Convert Tool

If you already have ImageMagick installed and have configured its security policy to write PDFs, you can use the convert command to create a PDF from images. This is particularly useful if you want to apply resizing, color adjustments, or rotate the images on the fly during the compilation process. To compile a series of JPEGs into a single PDF, run:

convert image1.jpg image2.jpg image3.jpg output_document.pdf

To compile all images matching a pattern while resizing them to a standard layout width (for example, 1200 pixels) to keep file size down, run:

convert *.jpg -resize 1200x output_document.pdf

Note: If you encounter the same policy error discussed in Section 2 during this step, it is because your /etc/ImageMagick/policy.xml is blocking write operations for the PDF format. Refer back to Section 2 to update the rights to read|write or use img2pdf instead.

4. Advanced Command-Line Techniques and Alternative Tools

To truly master document processing in Linux, it helps to understand some of the more niche, powerful alternative tools and scripting patterns that allow you to automate large-scale conversions.

High-Performance Conversions with Ghostscript

Both ImageMagick and Poppler rely on Ghostscript behind the scenes for certain complex rendering pipelines. You can invoke Ghostscript (gs) directly to convert PDFs to images. While its syntax is admittedly dense, direct invocation is incredibly fast and offers granular control over rendering parameters, making it popular for high-volume backend web servers. To convert a PDF to a series of high-quality JPEG images using Ghostscript, run:

gs -sDEVICE=jpeg -o output_page_%03d.jpg -dJPEGQ=95 -r300 input.pdf

  • -sDEVICE=jpeg: Tells Ghostscript to output standard JPEGs. (You can change this to png16m for 24-bit color PNGs).
  • -o output_page_%03d.jpg: Automatically sets the output path and naming convention while preventing the interactive prompt.
  • -dJPEGQ=95: Sets the JPEG compression quality to 95%.
  • -r300: Sets the rendering resolution to 300 DPI.

pdftocairo: The Vector & Modern Alternative

Another excellent utility bundled within the poppler-utils suite is pdftocairo. Unlike pdftoppm which uses Poppler's native rasterizer, pdftocairo leverages the Cairo 2D graphics library. This makes it exceptionally good at converting PDF pages not just to PNG and JPEG, but also to vector formats like SVG, EPS, or PostScript:

pdftocairo input.pdf -png -r 300

To convert a PDF page directly into a scalable vector graphics (SVG) file:

pdftocairo input.pdf -svg -f 1 -l 1 output.svg

Batch Scripting: Converting Directories of PDFs

If you have a folder filled with multiple PDF files and you want to convert every single one of them to images, writing commands one-by-one is tedious. You can write a simple Bash loop to automate this process. Create a shell script or run this one-liner directly in your terminal to create a separate subdirectory for each PDF and extract its pages as PNGs:

for file in *.pdf; do
  # Get the filename without the .pdf extension
  base_name="${file%.pdf}"
  
  # Create a directory to keep output tidy
  mkdir -p "${base_name}_images"
  
  # Convert the file
  pdftoppm -png -r 300 "$file" "${base_name}_images/page"
done

This script handles spaces in filenames safely by wrapping variables in double quotes, and creates beautifully organized output subdirectories.

5. Frequently Asked Questions (FAQ)

Q1: Why are my converted images so blurry or pixelated?

This occurs because the tool you are using is defaulting to a low rendering resolution (usually 72 or 150 DPI). To fix this, always explicitly define the resolution. For pdftoppm, append -r 300 to your command. For ImageMagick, ensure you define -density 300 before you specify the input PDF file name.

Q2: What is the difference between rendering a page as an image and extracting embedded images?

Rendering a page (using pdftoppm or convert) takes the entire layout—including text, margins, shapes, and background colors—and takes a "screenshot" of the full page. If you instead want to extract the raw original images (like photos or logo files) that are embedded inside the PDF without rendering the rest of the text, use the pdfimages tool:

pdfimages -png input.pdf extracted_img_prefix

Q3: Why does ImageMagick give me a 'not authorized' error?

This is due to security policies in /etc/ImageMagick/policy.xml configured to block PDF rendering due to legacy vulnerabilities in Ghostscript. You can fix this by changing the rights attribute from "none" to "read|write" for the PDF coder, or simply use pdftoppm which does not share these vulnerabilities.

Q4: How do I convert PDF to SVG in Linux?

Use pdftocairo with the -svg flag. For example: pdftocairo -svg input.pdf output_prefix. If you only want to convert the first page, append -f 1 -l 1 to your command.

Wrapping Up

Converting documents between different formats is a daily task for many Linux professionals. While ImageMagick remains a versatile and powerful standard, utilizing specialized tools like pdftoppm for rendering PDF pages to images and img2pdf for converting images back to PDFs yields cleaner results, faster execution, and drastically lower file sizes without security policy headaches.

By adding these lightweight command-line utilities to your toolkit, you can build highly optimized local scripts or server-side automation pipelines to manipulate document formats effortlessly. Save this guide for your next terminal session, and enjoy a seamless document conversion workflow!

Related articles
How to Reduce PDF to 1 MB Online (Without Losing Quality)
How to Reduce PDF to 1 MB Online (Without Losing Quality)
Need to reduce PDF to 1 MB online for an important upload? Learn how to compress files to 1MB, 2MB, or 5MB safely without losing image quality.
May 22, 2026 · 14 min read
Read →
How to Run a Terminal Ping Test: Step-by-Step Guide
How to Run a Terminal Ping Test: Step-by-Step Guide
Master the terminal ping test on macOS, Linux, and Windows. Stop infinite runs, troubleshoot latency, detect packet loss, and optimize your network connection.
May 22, 2026 · 14 min read
Read →
Online PDF File Merger Free: Combine Large Documents Safely
Online PDF File Merger Free: Combine Large Documents Safely
Looking for an online pdf file merger free of limits? Combine and merge big files safely without expensive software or hidden sign-ups.
May 22, 2026 · 12 min read
Read →
How to Decrypt PDF Password Online Safely: The Ultimate Guide
How to Decrypt PDF Password Online Safely: The Ultimate Guide
Looking to decrypt PDF password online? Learn how to safely remove passwords, bypass restrictions, and protect your private data with our expert guide.
May 22, 2026 · 15 min read
Read →
Split PDF Page Wise: The Ultimate Free & Premium Guide
Split PDF Page Wise: The Ultimate Free & Premium Guide
Learn how to split PDF page wise using 5 highly secure, free, and pro methods. Stop risking data privacy and automate your document workflow easily.
May 22, 2026 · 15 min read
Read →
How to Merge PDF Same Page Size: Standardize Combined Pages
How to Merge PDF Same Page Size: Standardize Combined Pages
Need to merge PDF files and make all pages the same size? Learn how to combine PDFs with uniform page sizes online, in Acrobat, or for free offline.
May 22, 2026 · 12 min read
Read →
How to Merge PDF Sheets into One Document (Step-by-Step)
How to Merge PDF Sheets into One Document (Step-by-Step)
Learn how to merge pdf sheets effortlessly. Whether you are combining multiple files, putting pages side-by-side, or exporting Excel tabs, here is how.
May 21, 2026 · 13 min read
Read →
How to Save Unlocked PDF Files: 5 Free and Easy Ways
How to Save Unlocked PDF Files: 5 Free and Easy Ways
Tired of security prompts? Learn how to save unlocked PDF files, bypass print limits, and unlock PDF and save documents easily on Windows, Mac, or mobile.
May 21, 2026 · 12 min read
Read →
How to Scan Merge PDF Documents: Free Mobile & Desktop Guides
How to Scan Merge PDF Documents: Free Mobile & Desktop Guides
Learn how to scan merge pdf files easily. Our step-by-step guide covers Adobe Scan premium workarounds, Windows, macOS, and mobile-native methods.
May 21, 2026 · 14 min read
Read →
How to Use PDF to Excel Soda Tools for Flawless Conversions
How to Use PDF to Excel Soda Tools for Flawless Conversions
Learn how to use the PDF to Excel Soda converter online or on desktop. Extract table data, preserve layout structures, and utilize advanced OCR features.
May 21, 2026 · 14 min read
Read →
Related articles
Related articles