Problème avec Imagick et aussi avec phmagick: Postscript délégué d'échec / Aucun fichier ou répertoire
Je suis en utilisant imagick 3.0.1 et aussi phmagick (http://www.francodacosta.com/phMagick/download). Peu importe ce que, les deux me donnent le même type d'erreur quand j'essaie de convertir un PDF en JPEG.
Par exemple:
Postscript délégué a échoué `/tmp/magick-bfxIrUJ5': Aucun fichier ou répertoire @ error/pdf.c/ReadPDFImage/669
Je suis en utilisant Ghostcript-9.05 (en cours d'exécution sur le répertoire /usr/local/bin/gs).
Aussi ImageMagick-6.7.6-8 (en cours d'exécution sur le répertoire /usr/local/bin/convert).
J'ai déjà vérifié le dossier de l'autorisation (755). ImageMagick œuvres merveilleuses de Terminal.
Par exemple, mon PHP en utilisant Imagick:
//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');
Par la voie Imagick c'est à montrer dans mon phpinfo(). Je travaille sur linux/apache/amd64.
Tous les conseils seront très appréciés!
Est votre exemple de code à partir d'une application web, ou à partir de la ligne de commande? Et avez-vous vraiment lu à partir du dossier '/pdf' et de l'écriture dans le dossier '/jpg' c'est à dire ce sont à la fois à la racine du système de dépôt?
Après, Le code est à partir d'une application web, j'ai essayé aussi en utilisant le chemin complet du fichier '/var/vhost/...../pdf/', de même pour jpg. Les dossiers sont dans la base, de même que /css et /js. Mark, je ne comprends pas votre point de vue, je suis en cours d'exécution d'une application web sur un VPS. Merci les gars.
OriginalL'auteur Diego Sarmiento | 2012-05-04
Vous devez vous connecter pour publier un commentaire.
OK, cela fonctionne enfin, grâce à l'aide de Nuno Franco da Costa (http://www.francodacosta.com/).
Le problème était que mon GhostScript chemin était OK pour le Shell, mais c'était une erreur pour le Système et PHP. Pour corriger cela, vous devez lier votre
/usr/local/bin/gs
fichier à/usr/bin/gs
.Effectuer les opérations suivantes à partir de la Coque:
Vérifier pour voir si un
gs
fichier existe déjà dans/usr/bin
. Si c'est le cas, nous allons créer une copie de sauvegarde.Si il n'y a pas de
/usr/bin/gs
vous pouvez sauter cette étapeMaintenant créer le lien de
/usr/local/bin/gs
à/usr/bin/gs
Qui devrait résoudre le problème. Merci beaucoup les gars.
Je viens par cette réponse. Il existe une solution simple. Il suffit d'ajouter le chemin d'accès réel de la " gs " pour le php CHEMIN: putenv(getenv('CHEMIN').':/usr/local/bin')
OriginalL'auteur Diego Sarmiento
Mon contribuent à la "pure PHP solution" proposée par @HelloWorld (merci!) dans les commentaires de la accepté de répondre, un peu de correction: on doit ajouter le nom de la variable avant d'étendre le CHEMIN d'accès par défaut, de sorte
putenv( getenv('PATH') . ':/usr/local/bin' );
ne fonctionne pas, maisputenv( 'PATH=' . getenv('PATH') . ':/usr/local/bin' );
sera*j'ai moins de 50 points de réputation, ne pouvait pas ajouter mon commentaire au bon endroit, j'ai donc dû créer un nouvel élément de réponse 🙂
OriginalL'auteur pikappa73
Je recevais ces problèmes à l'aide de ImageMagick
ImageMagick 6.7.7-10
avec GhostScript9.10
.Il s'avère que les PDF sont corrompus, et bien que certaines nouvelles versions GS pu lire, cette ancienne version ne pouvait pas, étant donné l'erreur suivante.
Sous Linux, vous pouvez passer les PDF par pdftk première:
Après ça, tout a fonctionné pour moi sur Ubuntu.
OriginalL'auteur Joseph Lust