回答:
あなたが必要ImageMagick
とし、GhostScript
<?php
$im = new imagick('file.pdf[0]');
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
[0]
手段page 1
。
$im->thumbnailImage(1500, 0);
これは、jpg画像を幅1500に設定し、縮尺を保持します。ドキュメントを参照
何らかの理由でImageMagickを使用していない場合は、GD関数もGhostScriptと連携して機能します。で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
コマンドをいくつでも変更できます
gs
バイナリへのフルパスを指定する必要があるかもしれません。
something;rm -rf /
か?
を使用してページ数を取得することもできます
$im->getNumberImages();
次に、ループを使用してすべてのページのサムを作成できます。
'file.pdf['.$x.']'
php拡張モジュールImagickを使用します。ラスター出力画像の必要なサイズを制御するには、setResolution関数を使用します。
<?php
$im = new Imagick();
$im->setResolution(300, 300); //set the resolution of the resulting jpg
$im->readImage('file.pdf[0]'); //[0] for the first page
$im->setImageFormat('jpg');
header('Content-Type: image/jpeg');
echo $im;
?>
(Paolo Bergantinoの彼の回答とLuis Melgrattiの彼のコメントの拡張。画像をロードする前に解像度を設定する必要があります。)
blobからPDFをロードしている場合、これは最後のページではなく最初のページを取得する方法です。
$im->readimageblob($blob);
$im->setiteratorindex(0);
imagemagickに付属の 'convert'ユーティリティを実行してみることもできます。
exec("convert pdf_doc.pdf image.jpg");
echo 'image-0.jpg';
convert
バイナリへのフルパスを提供する必要があるかもしれません。
echo 'image-0.jpg';
文字列を返します。
私はの作者だのPDFlibでのGhostscript PHPのラッパー、このライブラリを使用する利点は、それがすでにテストされ、それは必要ありません。ImageMagic
GhostScript
コマンドは常にImageMagic
PDFの場合よりも高速であるため、GhostScriptラッパーまたは純粋なGhostScriptコマンドを使用する必要があります。
$pdflib = new ImalH\PDFLib\PDFLib();
$pdflib->setPdfPath($pdf_file_path);
$pdflib->setOutputPath($folder_path_for_images);
$pdflib->convert();
インストール済み!うまくいきました!
あなたは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
されるかもしれません
おかげでみんな助けてくれました!
別の考え方をすると、次のライブラリを使用して、JavaScriptを使用してPDFを画像に変換できます。
これは、私がいくつかのプロジェクトで作成して使用した単純なクラスです。ラップしてimagick
、各ページのディスクへの書き込みを処理します。これを行う簡単な方法をまだ探している人がいる場合は、このリンクが役に立ちます。
.jpg
拡張子を付けたいです。.htaccess AddHandlerメソッドを試しましたが、機能しませんでした。