こんにちは。コバヤシです。
今回はXpdfを利用してPDFからサムネイル画像を作成する方法について書きたいと思います。
Xpdfとは
XpdfはオープンソースのPDFビューアーで、PDFからテキストに変換したり、画像に変換するツールが含まれています。
PDFからのサムネイル作成にはImageMagickがよく使われますが、今回はXpdfを使用します。
Xpdfの方が高速のようです。
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から画像を作る案件がありましたら、是非お試しください。