PDFを画像ファイル(JPEG,PNGなど)に変換してサーバーに保存させる方法を探していたらImageMagickを使うと簡単にできることが分かったのでやり方をメモ。
拡張モジュールImagickがインストールされているか確認してください。
インストールされていない場合は、下記のインストールを参考にしてください。
PHPからImageMagick (PECL::Imagick)を使う:インストールメモ
動かなければインストールしてください。
"Postscript delegate failed" などのエラーが出たらgsコマンドへのパスを
確認してください。私の場合は、以下の方と同じ現象になりました。
【ImageMagick】PDF→JPGへの変換エラー
これで、PDFファイルをサーバーにアップロードして画像を生成させればPDFをサムネイルで表示させることができます。
拡張モジュールImagickがインストールされているか確認してください。
インストールされていない場合は、下記のインストールを参考にしてください。
PDFファイルの全ページを画像に変換する
$im = new Imagick();
//画像を生成したいPDFを読み込む
$im->readImage('hoge.pdf');
//ページ数を取得する
$totalPage = $im->getImageScene();
for ($i = 0; $i <= $totalPage; $i++) {
//PDFのページ
$im->setImageIndex($i);
//サムネイルサイズ 640pxに収める
$im->thumbnailImage(640, 640, true);
//シャープ
$im->sharpenImage(0, 1);
//生成
$im->writeImage('out_' . $i . '.jpg');
}
$im->destroy();
PDFファイルの指定ページのみを画像に変換する
$im = new Imagick();
//画像を生成したいPDFを読み込む
$im->readImage('hoge.pdf');
//特定のPDFのページ 0が表紙
$im->setImageIndex(ページを指定);
//サムネイルサイズ 640pxに収める
$im->thumbnailImage(640, 640, true);
//シャープ
$im->sharpenImage(0, 1);
//生成
$im->writeImage('out_' . $i . '.jpg');
$im->destroy();
PECL::Imagickインストール
ImagickインストールPHPからImageMagick (PECL::Imagick)を使う:インストールメモ
上手くできない場合
ghostscript が動作するか確認してください。動かなければインストールしてください。
"Postscript delegate failed" などのエラーが出たらgsコマンドへのパスを
確認してください。私の場合は、以下の方と同じ現象になりました。
【ImageMagick】PDF→JPGへの変換エラー
これで、PDFファイルをサーバーにアップロードして画像を生成させればPDFをサムネイルで表示させることができます。