Laravel - convert pdf to image

Laravel - convert pdf to image

Published at - Aug 27, 2021

Convert a pdf to an image

This package provides an easy to work with the class to convert PDF's to images.


You should have Imagick and Ghostscript installed.


The package can be installed via composer:

composer require spatie/pdf-to-image


Converting a pdf to an image is easy.

$pdf = new Spatie\PdfToImage\Pdf($pathToPdf);

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.

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); //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 quality of compression from 0 to 100:

$pdf->setCompressionQuality(100); // sets the compression quality to maximum

Issues regarding Ghostscript

This package uses Ghostscript through Imagick. For this to work Ghostscript's gs command should be accessible from the PHP process. For the PHP CLI process (e.g. Laravel's asynchronous jobs, commands, etc...) this is usually already the case.

However, for PHP on FPM (e.g. when running this package "in the browser"), you might run into the following problem:

Uncaught ImagickException: FailedToExecuteCommand 'gs'

This can be fixed by adding the following line at the end of your php-fpm.conf file and restarting PHP FPM. If you're unsure where the php-fpm.conf file is located you can check phpinfo(). If you are using Laravel Valet the php-fpm.conf file will be located in the /usr/local/etc/php/YOUR-PHP-VERSION directory.

env[PATH] = /usr/local/bin:/usr/bin:/bin

This will instruct PHP FPM to look for the gs binary in the right places.

About author

Harendra Kanojiya

Hello, I am Harendra Kumar Kanojiya - Owner of this website and a Fullstack web developer. I have expertise in full-stack web development using Angular, PHP, Node JS, Python, Laravel, Codeigniter and, Other web technologies. I also love to write blogs on the latest web technology to keep me and others updated. Thank you for reading the articles.

Related Posts -

Laravel backup – A modern backup solution for Laravel apps
Laravel backup – A mo ...

This Laravel package creates a backup of your application. The backup ...

Selenium for Laravel
Selenium for Laravel ...

Table of Contents Key Points:Requirements:Installation guide:Create fir...

Laravel real-time chat application
Laravel real-time chat appl ...

Laravel Realtime ChatBuild Status Code Climate A realtime chat sample w...

A mail driver to quickly preview mail
A mail driver to quickly pr ...

Table of Contents InstallationConfiguring the mail transportRegisterin...

How to deploy my own laravel 8 project to ubuntu with nginx
How to deploy my own larave ...

LaraSail is a CLI tool for Laravel to help you Sail the Servers of the Digi...

Follow Us

Follow us on facebook Click Here

Facebook QR
Scan from mobile
Join our telegram channel Click Here
Telegram QR
Scan from mobile