Recent Posts
- 10 Things To Do When Launching A Site
- Using PHP to connect to SFTP
- Asynchronous Virtual Pageviews with Google Analytics
- 5 Advanced Text Editing Keyboard Shortcuts
- Get the headers of a HTTP request with PHP
- How-to: Create PDF preview images in PHP – Part 2
- How-to: Create PDF preview images in PHP
- Quick Code: Get the domain name in JS
- Things to think about when designing a logo
- Javascript Array Functions
Topics
ImageXY
ImageXY - Mac OS X Batch Photo Resizer

Quickly and painlessly bulk resize images, change image formats and create web-friendly photos for your website.
Available on the Mac App Store!
How-to: Create PDF preview images in PHP
A few months ago I was looking to create screenshots of PDF documents on the fly so that a preview could be shown to users of a website before downloading or opening the file.
The solution to my problem was simple…so simple in fact that I can’t believe I haven’t done it before.
This works on all the major OS’s – Windows, linux and Mac – you will just have to download and install the correct packages for the machine you want to run it on. Mac users may find it easier to use a package management tool such as Fink to handle the installation.
Install GhostScript
Download and install GhostScript which is an interpreter for PostScript and PDF. If your installing on a Linux machine it is likely that you will already have this installed, so check before hand.
Install ImageMagick
Download and install ImageMagick which is an fully feature laden image manipulation suite which we will use to convert the PDF. Again if your running Linux you may already have this installed – so double check and/or upgrade.
ImageMagick is an amazing tool and can handle pretty much anything you could think of doing to an image, and it’s fully command line based so you can use it on the fly from within your scripts.
The PHP Code
The PHP code that we will use to convert the PDF to a png will make use of the ImageMagick software that we just installed and call it from within the PHP script using the exec() function.
exec('convert "document.pdf" -colorspace RGB -geometry 200 "document.png"');
This line will convert the whole PDF document into individual images for each page at 200px wide. To just create an image of the first page of the PDF we use the following:
exec('convert "document.pdf[0]" -colorspace RGB -geometry 200 "document.png"');
To get the second page you would just replace ‘[0]‘ with ‘[1]‘ etc.
For more options check out the ImageMagick help pages or simply run ‘convert’ from the command line and play about with the options.
If your not a fan of PNG’s then simply change the extension to your favorite image type and it will output the screenshot in that format.
The Result
UPDATE: There is an updated version of this post here.