PHP wrapper for the pdftoppm command which is part of poppler-utils.

Fund package maintenance!

v1.0.1 2021-02-08 01:49 UTC

This package is auto-updated.

Last update: 2022-05-08 04:28:48 UTC



68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6c756b6173737339332f7064662d746f2d70706d Packagist Version Packagist Downloads GitHub 68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f776f726b666c6f772f7374617475732f6c756b6173737339332f7064662d746f2d70706d2f72756e2d74657374732f6d6173746572 68747470733a2f2f696d672e736869656c64732e696f2f636f6465636f762f632f6769746875622f6c756b6173737339332f7064662d746f2d70706d3f746f6b656e3d50424f4d353446333857

Convert a pdf to an image
PHP wrapper for the pdftoppm command which is part of poppler-utils.


Behind the scenes this package leverages pdftoppm. You can verify if the binary installed on your system by issueing this command:

which pdftoppm

If it is installed it will return the path to the binary.

To install the binary you can use this command on Ubuntu or Debian:

apt-get install poppler-utils

On a mac you can install the binary using brew

brew install poppler

If you're on RedHat or CentOS use this:

yum install poppler-utils

Available packages:


You can install the package via composer:

composer require lukasss93/pdf-to-ppm


Converting a pdf to an image is easy.

use Lukasss93\PdfToPpm\PdfToPpm;

$pdf = PdfToPpm::create()->setPdf($pathToPdf);
$pdf->saveImage($pathToWhereImageShouldBeStored); // it will save the first page

If the path you pass to saveImage has the extensions ppm, jpg, png or tif the image will be saved in that format. Otherwise the output will be a jpg.

Converting all pdf pages:

use Lukasss93\PdfToPpm\PdfToPpm;

$pdf = PdfToPpm::create()->setPdf($pathToPdf);

Other methods

You can get the total number of pages in the pdf:

$pdf->getNumberOfPages(); //returns an int

By default the first page of the pdf will be rendered. If you want to render another page you can do so:

    ->saveImage($pathToWhereImageShouldBeStored); // it saves the second page

You can override the output format:

    ->saveImage($pathToWhereImageShouldBeStored); // the output wil be a png, no matter what

You can set the resolution (default: 144):

$pdf->setResolution(200); // sets the resolution

You can save image to grayscale:

$pdf->setGray(true); // sets the grayscale


composer test


Please see CHANGELOG for more information what has changed recently.


Please see CONTRIBUTING for details.


If you discover any security related issues, please email instead of using the issue tracker.


The MIT License (MIT). Please see file for more information.