GhostScriptのないサーバでPDFのサムネイルを生成したい
-
「メディアのアップロード」でPDFファイルを追加する際に、その1ページ目をサムネイルとして生成したいです。
プラグインはいろいろありますが、使用するサーバにGhostScriptが入っていないので、使えるものが見つかりません。
いろいろと検索して切りはりして、下記のコードをfunctions.phpに追記してみました。/* PDFからサムネイルを生成 --------------------------------------------------------- */ add_filter( 'wp_generate_attachment_metadata', 'create_pdf_thumbnail', 10, 2 ); function create_pdf_thumbnail( $metadata, $attachment_id ) { //Get the attachment/post object $attachment_obj = get_post( $attachment_id ); //Check for mime type pdf if( 'application/pdf' == get_post_mime_type( $attachment_obj ) ) { //Get attachment URL $attachment_url = wp_get_attachment_url($attachment_id); //Get attachment path /some/folder/on/server/wp-content/uploads/yourfile.pdf $attachment_path = get_attached_file($attachment_id ); //By adding [0] the first page gets selected, important because otherwise multi paged files wont't work $pdf_source = $attachment_path.'[0]'; //Thumbnail format $tn_format = 'png'; //Thumbnail output as path + format $thumb_out = $attachment_path.'.'.$tn_format; //Thumbnail URL $thumb_url = $attachment_url.'.'.$tn_format; //Setup various variables $width = '300'; $height = '300'; $quality = '90'; $dpi = '72'; $resize = $width.'x'.$height; $density = $dpi.'x'.$dpi; //Create the thumbnail passthru("/usr/bin/convert -resize $width -density $dpi -quality $quality $pdf_source $thumb_out"); } }
テストサーバ(GhostScriptが入っている)では意図通り、
PDFファイルと同じディレクトリにサムネイルのjpgが生成されるのですが、
本番サーバ(GhostScriptが入っていない)では何も起こりません。FITWebハイパーサーバシェアードブロンズプラン
PHPバージョン5.3.3
ImageMagick(6.5.4.7)です。
質問は、
- そもそもGhostScriptなしでPDFからサムネイルを生成できるのかどうか。
- 私の書いたコードにはGhostScriptが必要な部分があるのかどうか。
- 拡張モジュールimagickを使ってPDFのサムネイルを生成することにもトライしてみましたが、下記のように書くと、テストでも本番でも Fatal error: Class ‘Imagick’ not found in ~ と表示されます。これは、Imagick拡張モジュールはインストールされていないという理解でよいでしょうか?それとも、何か設定が間違っているでしょうか?
$im = new Imagick($file_url.'[0]');
PHPがあまり分かっていないため、要領を得ない部分があるかと思いますが、よろしくお願いいたします。
1件の返信を表示中 - 1 - 1件目 (全1件中)
1件の返信を表示中 - 1 - 1件目 (全1件中)
- トピック「GhostScriptのないサーバでPDFのサムネイルを生成したい」には新たに返信することはできません。