2011-07-13 33 views
0

這一個讓我難住。轉換:Postscript委託失敗 - 轉換文本PDF

我需要將PDF轉換爲jpgs。我這樣做使用以下命令:

$cmd = "convert ".$upload->pdf_name." -geometry 80x80 -density 80x80 -quality 100 ".$upload->thumb_name." 2>&1"; 
exec($cmd,$results); 

$cmd_gif = "convert ".$upload->pdf_name." -geometry 640x640 -density 640x640 -quality 100 ".$upload->gif_name." 2>&1"; 
exec($cmd_gif,$results); 

如果我上傳一個主要是圖像的PDF,那麼我沒有問題。我得到縮略圖和預覽。 如果我上傳PDF其中大部分是文字和print_r的$結果我得到:

Array([0] => convert: no decode delegate for this image format `/tmp/magick-wSgqd1Vp-00000001' @ error/constitute.c/ReadImage/532. 
[1] => convert: Postscript delegate failed `/var/www/vhosts/site/uploadedfiles/tmp/2_77.pdf': @ error/pdf.c/ReadPDFImage/664. 
[2] => convert: no decode delegate for this image format `/tmp/magick-8foOHRJR' @ error/constitute.c/ReadImage/532. 
[3] => convert: missing an image filename `/var/www/vhosts/site/uploadedfiles/tmp/2_77_thumb.jpg' @ error/convert.c/ConvertImageCommand/3015. 
[4] => convert: no decode delegate for this image format `/tmp/magick-M-zHuvtS-00000001' @ error/constitute.c/ReadImage/532. 
[5] => convert: Postscript delegate failed `/var/www/vhosts/site/uploadedfiles/tmp/2_77.pdf': @ error/pdf.c/ReadPDFImage/664. 
[6] => convert: no decode delegate for this image format `/tmp/magick-rJ8G814k' @ error/constitute.c/ReadImage/532. 
[7] => convert: missing an image filename `/var/www/vhosts/site/uploadedfiles/tmp/2_77.jpg' @ error/convert.c/ConvertImageCommand/3015.) 

我安裝了Ghostscript的8.70和ImageMagick的6.7.1-0 我的Linux發行版是CentOS版本5.6

+2

嘗試使用Gh的直接代替imagemagick。這樣至少你會從Ghostscript收到錯誤信息,如果有問題的話。至少嘗試「gs /var/www/vhosts/site/uploadedfiles/tmp/2_77.pdf」並報告結果。 BTW 8.71現在有點老了,目前的版本是9.02,我們將在幾周內發佈9.03。 – KenS

+1

我更新到9.02,並運行命令,得到這個: 'code' gs /var/www/vhosts/site/uploadedfiles/tmp/2_77.pdf GPL Ghostscript 9.02(2011-03-30) Copyright(C )2010 Artifex軟件公司保留所有權利。 此軟件附帶無擔保:請參閱文件PUBLIC瞭解詳細信息。通過1 頁 加工頁1 %%的BoundingBox:0 0 77 284 %% HiResBoundingBox:0.000000 0.000000 76.535998 283.463991 >> SHOWPAGE,按繼續<<'code' 當我打回它去到,我必須退出才能回到bash – Raath

+0

因此,這是一次完全的成功,GS>提示符是INTERACTIVE PostScript解釋器。你可以使用-dBATCH和-dNOPAUSE來解決這個問題和頁面之間的暫停。所以不管是什麼問題,它都是由ImageMagick調用的。恐怕我無法幫助你,但是如果你能找到它的使用命令行,如果它仍然失敗,那麼我會建議在http:// bugs的Ghostscript Bugzilla跟蹤器中打開一個錯誤。 ghostscript.com,附上失敗的PDF文件並提供有問題的命令行。 – KenS

回答

0

你第二個命令,$cmd_gif,要求ImageMagick的創建維度的圖片(「幾何」)640x640像素,而在同一時間要求(「密度」)的640x640分辨率...