2016-08-03 140 views
1

什么不起作用:Imagick多页PDF格式为JPG致命错误

  • 转换文件名,多pages.pdf [0] PDF文件为JPG
  • 转换文件名,多pages.pdf PDF文件为JPG

Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `/path/to/filename-multiple-pages.pdf': No such file or directory @ error/pdf.c/ReadPDFImage/664' in ...

当我尝试这与用FOPEN腹板发现sollution,然后使用则fopen手柄readImageFile:

Fatal error: Uncaught exception 'ImagickException' with message 'Postscript delegate failed `/tmp/magick-rGGsdy9f': No such file or directory @ error/pdf.c/ReadPDFImage/664'

什么工作:

  • 转换文件名,多pages.pdf [1] PDF文件为JPG(第二页)
  • 转换文件名单page.pdf PDF到JPG [/列表]

所使用PHP代码:

<?php 

    // this does work for a single page file 
    // it does NOT work for multiple page file 
    // it does NOT work when using pdffile.pdf[0] 
    // it DOES work when using pdffile.pdf[1] 

    $filename = '/path/to/pdffile.pdf'; 
    $im = new Imagick(); 
    $im->readImage($filename); 
    $im = $im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); 
    $im->scaleImage(150, 150, true); 
    $im->writeImage('/path/to/image/pdffile.jpg'); 
?> 


<?php 
    // i used alternative code which gave me the second /tmp/ dir error (see above) 

    $filename = '/path/to/pdffile.pdf';  
    $pdf_handle = fopen($filename, 'rb'); 
    $doc_preview = new Imagick(); 
    $doc_preview->setResolution(150,150); 
    $doc_preview->readImageFile($pdf_handle); 
    $doc_preview->setIteratorIndex(0); 
    $doc_preview->setImageFormat('jpeg'); 
    $doc_preview->writeImage('/path/to/image/pdffile.jpg'); 
    $doc_preview->clear(); 
    $doc_preview->destroy(); 

?> 

安装模块由托管服务提供商

  • ImageMagick的v6.7.2.7-5
  • Ghostscript的8.70

没有人有任何想法做什么?

+0

您确定路径正确吗?和PHP可以reat它?你可以测试if(is_file('/path/to/pdffile.pdf'))echo'OK';其他回声'NOT FILE'; – Amazone

回答

0

经过一番研究,我发现托管服务提供商没有安装最新版本。经过几天的测试和调试,他们设法安装了最新版本,现在它全部正常工作。我的帖子中的代码很好,可以被其他人使用:)。

+0

您能否请您将答案标记为已接受? –