8

imagick 3.0.1 と phmagick (http://www.francodacosta.com/phMagick/download) を使用しています。いずれにしても、PDF を JPEG に変換しようとすると、どちらも同じ種類のエラーが発生します。

例: Postscript delegate failed `/tmp/magick-bfxIrUJ5': No such file or directory @ error/pdf.c/ReadPDFImage/669

Ghostcript-9.05 (/usr/local/bin/gs で実行) を使用しています。また、ImageMagick-6.7.6-8 (/usr/local/bin/convert で実行)。

フォルダーのパーミッション (755) は既に確認済みです。ImageMagick はターミナルから素晴らしい働きをします。

たとえば、Imagick を使用する私の PHP は次のようになります。

//use imagick
$im = new imagick( '/pdf/553571072.pdf' );

// convert to jpg
$im->setImageColorspace(255);
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setImageFormat('jpeg');

//write image on server
$im->writeImage('/jpg/553571072.jpg');

ちなみに、Imagick は私の phpinfo() に表示されています。私はlinux/apache/amd64に取り組んでいます。

どんなアドバイスでも大歓迎です!

4

3 に答える 3

17

わかりました。Nuno Franco da Costa ( http://www.francodacosta.com/ ) の助けのおかげで、これは最終的に機能します。

問題は、GhostScript のパスがシェルでは問題ないのに、システムと PHP では間違っていたことです。これを修正するには、/usr/local/bin/gsファイルを にリンクする必要があります/usr/bin/gs

シェルから次の操作を行います。

[root@din ~]# convert -list configure | grep -i delegates
DELEGATES     bzlib fontconfig freetype jpeg jng png tiff x11 xml zlib

gsにファイルが既に存在するかどうかを確認します/usr/bin。その場合は、バックアップを作成します。
ない場合は、/usr/bin/gsこの手順をスキップできます

[root@din ~]# ls -l /usr/bin/gs
-rwxr-xr-x 1 root root 6024 Sep 30  2010 /usr/bin/gs
[root@din ~]# mv /usr/bin/gs /usr/bin/gs.orig

/usr/local/bin/gsからへのリンクを作成します/usr/bin/gs

[root@din ~]# sudo ln -s /usr/local/bin/gs /usr/bin

これで問題は解決するはずです。どうもありがとう。

于 2012-05-07T20:30:05.590 に答える
5

受け入れられた回答のコメントで、@HelloWorld (ありがとう!)によって提案された「純粋な PHP ソリューション」に貢献します。少し修正します。デフォルトの PATH を拡張する前に変数名を追加する
putenv( getenv('PATH') . ':/usr/local/bin' );必要があるため、機能しませんが
putenv( 'PATH=' . getenv('PATH') . ':/usr/local/bin' );

*評判が50ポイント未満で、適切な場所にコメントを追加できなかったため、新しい回答を作成する必要がありました:-)

于 2015-12-22T13:17:06.060 に答える