lukasss93 / pdf-to-ppm
PHP wrapper for the pdftoppm command which is part of poppler-utils.
Fund package maintenance!
Lukasss93
Installs: 2 658
Dependents: 0
Suggesters: 0
Security: 0
Stars: 8
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.3
- alchemy/binary-driver: ^5.2
- psr/log: ^1.1
Requires (Dev)
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-10-21 21:28:04 UTC
README
Convert a pdf to an image
PHP wrapper for the pdftoppm command which
is part of poppler-utils.
Requirements
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
Installation
You can install the package via composer:
composer require lukasss93/pdf-to-ppm
Usage
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);
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:
$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
Testing
composer test
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email lucapatera@outlook.it instead of using the issue tracker.
License
The MIT License (MIT). Please see LICENSE.md file for more information.