无法使用Imagemagick读取pdf文件

时间:2018-06-27 13:13:38

标签: php pdf imagemagick-convert

我正在尝试将pdf文件转换为png。它可以在命令行上运行,但是不能通过php代码运行。我从php.net尝试了此代码示例:

<?php 
  $imagick = new Imagick(); 
  $imagick->readImage('myfile.pdf'); 
  $imagick->writeImages('converted.jpg', false); 
?>   

当我使用相对路径时,会出现以下错误:

  

致命错误:带有消息的未捕获异常'ImagickException'   'UnableToOpenBlob'myfile.pdf':无此类文件或目录@   error / blob.c / OpenBlob / 2702'在   C:\ xampp \ htdocs \ portalgoogle \ views \ ticket.php:4堆栈跟踪:#0   C:\ xampp \ htdocs \ portalgoogle \ views \ ticket.php(4):   imagick-> readimage('etiqueta.pdf')#1 {main}被抛出   C:\ xampp \ htdocs \ portalgoogle \ views \ ticket.php在第4行

当我使用全路径时,它只会在readImage行上给出致命错误。有人可以告诉我我需要做什么,或者建议一种将pdf转换为png的简便方法吗?我尝试了pdf.js,但在Chrome上无法正常工作。

1 个答案:

答案 0 :(得分:0)

这在Imagick的PDF文件中很常见。 PHP不使用与Imagemagick获取它们的操作系统相同的ENV变量。

必须更改Imagemagick Representatives.xml文件中使用的Ghostscript库,以将gs替换为full path to gs,并说:command="&quot;gs&quot;

  <delegate decode="ps" encode="pdf" mode="bi" command="&quot;gs&quot; -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 &quot;-sDEVICE=pdfwrite&quot; &quot;-sOutputFile=%o&quot; &quot;-f%i&quot;"/>

在其他使用gs的行中