lukasss93/pdf-to-ppm

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

Fund package maintenance!
Lukasss93

v1.0.2 2022-06-01 21:04 UTC

This package is auto-updated.

Last update: 2024-12-21 21:52:49 UTC


README

Packagist Version Packagist Downloads GitHub

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.