超簡単! Xpdfを使ってPDFからサムネイル画像を作る方法

こんにちは。コバヤシです。

今回はXpdfを利用してPDFからサムネイル画像を作成する方法について書きたいと思います。

Xpdfとは

XpdfはオープンソースのPDFビューアーで、PDFからテキストに変換したり、画像に変換するツールが含まれています。
PDFからのサムネイル作成にはImageMagickがよく使われますが、今回はXpdfを使用します。
Xpdfの方が高速のようです。

www.xpdfreader.com

Xpdfをインストールする

sudo yum install - y xpdf

※CentOS

サムネイルを作成する

インストールしたら、execコマンドでPDFからサムネイルを作成するコマンドを実行します。

<?php

pdftoppm -png  xxxxx.pdf > ooooo

これだけでPDFから画像が生成されます。 上記であれば、出力される画像のファイル名はooooo-ページ番号.pngとなります。

画像形式は以下を指定可能です。

パラメータ 説明
-png PNG形式で出力します
-jpeg JPEG形式で出力します
-tiff TIFF形式で出力します
<?php

pdftoppm -png -f 1 -l 1 xxxxx.pdf > ooooo.jpg

ページを指定して出力する場合は上記のようにします。

パラメータ 説明
-f 出力開始ページ
-l 出力終了ページ
<?php

pdftoppm -png -singlefile xxxxx.pdf > ooooo.jpg

先頭ページだけであれば「singlefile」を指定してもOKです。

パラメータ 説明
-singlefile 先頭ページを出力
<?php

pdftoppm -png -singlefile -scale-to 400 xxxxx.pdf > ooooo.jpg

画像サイズも指定できます。

パラメータ 説明
-scale-to 縦か横の大きい方を指定のサイズに変更。(アスペクト比維持)
-scale-to-x 横のサイズ
-scale-to-y 縦のサイズ

ただ、Xpdfはリサイズが得意ではないようです。試した限りでは、かなりガタガタになりました。
リサイズ処理は別にやった方が良いと思います。

より高画質なサムネイルを作成する為に、ImageMagickでppmからjpegへの変換をする

Xpdfでppmを作成し、作成したppmファイルをImageMagickでjpegに変換すると高画質になるという情報があったので 試してみたのですが、データが悪かったのか画質の変化はよくわかりませんでした。。。
コマンドだけ載せておきます。

時間があったら再度試してみたいと思います。

<?php

pdftoppm -singlefile  xxxxx.pdf > ooooo.ppm // Xpdfでppmファイルを作成
convert ooooo.ppm ooooo.jpg // ppmをImageMagickでjpegに変換

まとめ

Xpdfを入れるだけで、簡単にPDFから画像を作成できるようになります。
ImageMagickほど機能は豊富ではありませんが、単にPDFから画像を作成したいだけであれば十分かと思います。
PDFから画像を作る案件がありましたら、是非お試しください。