我正在尝试将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上无法正常工作。
答案 0 :(得分:0)
这在Imagick的PDF文件中很常见。 PHP不使用与Imagemagick获取它们的操作系统相同的ENV变量。
必须更改Imagemagick Representatives.xml文件中使用的Ghostscript库,以将gs
替换为full path to gs
,并说:command=""gs"
<delegate decode="ps" encode="pdf" mode="bi" command=""gs" -sstdout=%%stderr -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pdfwrite" "-sOutputFile=%o" "-f%i""/>
在其他使用gs
的行中