ruby で出来たので、php でもできるかなと思って調べてみたら。
<?php <?php $imagick = new Imagick(); $imagick->readImage('myfile.pdf[0]'); $imagick = $imagick->flattenImages(); $imagick->writeImage('pageone.jpg'); ?>
php のマニュアルにバッチリなコードが書いてあった。
でも動かすの大変だった。
php-magick で pdf を処理するには gsが必要なんだが、gs が入っててもコマンドラインオプションがあわなくて起動しなくて、解決方法を探してる間に時間が過ぎてしまった。
apt で入れた php-magick ではpdf が扱えない。
モジュールの依存関係、とくにphp はちょっとめんどくさいのでpecl 経由入れて解決させるしかないと思うけど、apt で使えないのは不便極まりないな。。。
エラー
PHP Fatal error: Uncaught exception 'ImagickException' with message 'FailedToExecuteCommand `"gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r72x72" "-sOutputFile=/tmp/magick-31919s74grPtp69Oe%d" "-f/tmp/magick-31919cbojU1OZVN2V" "-f/tmp/magick-31919lAaYk4BJvvgD"' (-1) @ error/delegate.c/ExternalDelegateCommand/461' in /home/takuya/test.php:7 Stack trace: #0 /home/takuya/test.php(7): Imagick->readimage('out.pdf') #1 {main} thrown in /home/takuya/test.php on line 7