This package provides an easy to work with class to convert pdf's to images.
You should have Imagick and Ghostscript installed.
The package can be installed via composer:
$ composer require allaniftrue/pdf-to-image
Converting a pdf to an image is easy.
$pdf = new Bnb\PdfToImage\Pdf($pathToPdf);
$pdf->saveImage($pathToWhereImageShouldBeStored);
If the path you pass to saveImage
has the extensions jpg
, jpeg
, or png
the image will be saved in that format.
Otherwise the output will be a jpg.
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); //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 configure custom settings (where page is the page number) :
$beforeImageReadSettings = function (\Imagick $imagick, $page) {
$imagick->setColorspace(\Imagick::COLORSPACE_SRGB);
return $imagick;
};
$beforeImageWriteSettings = function (\Imagick $imagick, $page) {
$imagick->resizeImage(1024, 1024, \Imagick::FILTER_LANCZOS, 0, true);
$imagick->setImageColorspace(\Imagick::COLORSPACE_GRAY);
return $imagick;
};
$pdf = new Pdf($this->testFile, $beforeImageReadSettings, $beforeImageWriteSettings)
->saveImage($pathToWhereImageShouldBeStored); //the output will be resized to a grayscale image with a best-fit dimension of 1024x1024
Please see CHANGELOG for more information what has changed recently.
$ composer test
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.