2016-08-03 3 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 ...

Когда я пытаюсь это с гуманным, найденными на перемычках с Еореп, а затем с помощью readImageFile из FOPEN ручки:

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 может его использовать? Вы можете проверить if (is_file ('/path/to/pdffile.pdf')) echo 'OK'; else echo 'NOT FILE'; – Amazone

ответ

0

После некоторых исследований выяснилось, что хостинг-провайдер не установил последние версии. После нескольких дней тестирования и отладки им удалось установить последние версии, и теперь все работает. Код в моем сообщении хорош и может использоваться другими :).

+0

Не могли бы вы пометить свой ответ как принято? –

Смежные вопросы