PDFドキュメントの一部を画像ファイルにレンダリングするには、どのようなライブラリ、拡張機能などが必要ですか?
私が見つけたほとんどの PHP PDF ライブラリは、PDF ドキュメントの作成を中心にしていますが、ドキュメントを Web での使用に適した画像形式にレンダリングする簡単な方法はありますか?
私たちの環境は LAMP スタックです。
あなたが必要ImageMagick
とし、GhostScript
<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
[0]
手段page 1
。_
なんらかの理由で ImageMagick を持っていない人のために、GhostScript と組み合わせて GD 関数も機能します。で Ghostscript コマンドを実行しexec()
て PDF を JPG に変換し、結果のファイルを で操作しますimagecreatefromjpeg()
。
次の Ghostscript コマンドを実行します。
exec('gs -dSAFER -dBATCH -sDEVICE=jpeg -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r300 -sOutputFile=whatever.jpg input.pdf')
操作するには、新しいプレースホルダー イメージを作成$newimage = imagecreatetruecolor(...)
し、現在のイメージを取り込みます。$image = imagecreatefromjpeg('whatever.jpg')
を使用imagecopyresampled()
して、サイズを変更したり、その他の組み込みの非imagemagick
コマンドをいくつでも変更できます。
を使用してページ数を取得することもできます
$im->getNumberImages();
次に、ループを使用してすべてのページのサムを作成できます。
'file.pdf['.$x.']'
Blob から PDF を読み込んでいる場合、最後のページではなく最初のページを取得する方法は次のとおりです。
$im->readimageblob($blob);
$im->setiteratorindex(0);
imagemagick に付属の「convert」ユーティリティを実行することもできます。
exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';
インストール完了!うまくいきました!
Windowsにimagemagickをベースインストールする場合があります。
使用中のphp (local)
呼び出しexec(<command line>)
例:
<?php
$pdf = "filename.pdf";
$info = pathinfo($pdf);
$file_name = basename($pdf,'.'.$info['extension']);
echo $file_name;
$pdf = "filename.pdf[0]";
exec("convert $pdf convert-img/$file_name.jpg");
?>
また、PHP Imagick クラスclass imagick
で使用することもできます
ありがとう、みんな助けてくれた!
これは、いくつかのプロジェクトで作成して使用した単純なクラスです。imagick
各ページのディスクへの書き込みをラップして処理するだけです。これを行う簡単な方法をまだ探している人がいれば、このリンクが役立つかもしれません。