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: http://pkgs.org/download/poppler-utils
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);
$pdf->saveAllPagesAsImages($pathToWhereImageShouldBeStored);
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:
$pdf->setPage(2)
->saveImage($pathToWhereImageShouldBeStored); // it saves the second page
You can override the output format:
$pdf->setOutputFormat('png')
->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 lucapatera@outlook.it instead of using the issue tracker.
The MIT License (MIT). Please see LICENSE.md file for more information.