PHPでPDFのサムネイル画像を作成するためのメモ。。。(._.)φ
ImageMagickとimagickモジュールの使える環境であれば、下記のようなコードでサムネイルを作成することができます。
$im = new Imagick(); $im->readImage( 'src.pdf' ); $im->setImageIndex( 0 ); // ページ番号を指定 $im->thumbnailImage( 400, 400, true ); // 縦横400ピクセルに収まるサムネイル $im->sharpenImage( 0, 1 ); $im->writeImage( 'res.jpg' ); $im->destroy();
サーバーの仕様・制限等によって、ImageMagickはインストールされているけどimagickは使えない(インストールもできない)といった場合は、PHPのsystem関数で「convert」コマンドを実行することでも、同様の処理が可能です。
system( "convert src.pdf -resize 400x400 -unsharp -quality 90 res.jpg" );
上の例では、PDFの全ページのサムネイルが作成されます。(出力ファイル名として「res.jpg」を指定した場合、res-0.jpg、res-1.jpg、res-2.jpg、・・・の形で作成されます。)
特定のページのサムネイルだけが欲しい時は、source.pdf[0]のような形で、PDFのページ番号(最初のページは「0」)を指定すればOKです。
system( "convert src.pdf[0] -resize 400x400 -unsharp -quality 90 res.jpg" );