Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将PDF的第一页转换为JPG或PNG-PHP_Php_Image Processing_Imagemagick_Image Conversion - Fatal编程技术网

将PDF的第一页转换为JPG或PNG-PHP

将PDF的第一页转换为JPG或PNG-PHP,php,image-processing,imagemagick,image-conversion,Php,Image Processing,Imagemagick,Image Conversion,我无法在MacOSX(10.9.4)上为PHP配置ImageMagick。是否有其他方法进行转换,即不使用ImageMagick,或者有任何简单的方法进行转换?我只需要将pdf文件的第一页转换为.jpg或.png。以下是不使用ImageMagick进行转换的shell代码: pdftops -f 1 -l 1 -paper letter input.pdf - | gs -q -sDEVICE=png16m -r300x300 -dNOPAUSE -dSAFER -sOutputFile=out

我无法在MacOSX(10.9.4)上为PHP配置ImageMagick。是否有其他方法进行转换,即不使用ImageMagick,或者有任何简单的方法进行转换?我只需要将pdf文件的第一页转换为.jpg或.png。

以下是不使用ImageMagick进行转换的shell代码:

pdftops -f 1 -l 1 -paper letter input.pdf - | gs -q -sDEVICE=png16m -r300x300 -dNOPAUSE -dSAFER -sOutputFile=output.png -
pdftops
是poppler实用程序的一部分<代码>gs是重影脚本。如果您无权访问
pdftops
,则可以使用Adobe的
acroread

有许多选项可用于根据您的偏好调整输出。例如,上面显示的
-r300x300
选项生成分辨率为300 dpi的位图。可以调整为
gs
支持的任何更高或更低的分辨率。此外,上面的驱动程序png16m产生24位彩色PNG。对于灰色,请使用
pnggray
。对于单色,请使用
pngmono
。对于jpeg输出,请使用
jpeg
gs
还有许多其他位图格式的驱动程序

调试 如果上面的方法一开始不起作用,我建议先在命令行中尝试,只有在成功的情况下,再将它放到PHP中。此外,我建议把它分成几个部分

第1部分:检查是否创建(大)postscript文件:

pdftops -f 1 -l 1 -paper letter input.pdf - >output.ps
第2部分:如果上述操作成功创建postscript文件,请尝试:

gs -q -sDEVICE=png16m -r300x300 -dNOPAUSE -dSAFER -sOutputFile=output.png - <output.ps

gs-q-sDEVICE=png16m-r300x300-dNOPAUSE-dSAFER-sOutputFile=output.png-我们不知道您遇到了什么问题。因此无法帮助您。我只是想知道是否只有通过ImageMagick才能进行上述转换?难道我们没有其他办法这样做吗@PeeHaaI尝试通过php的exec()调用该命令。但没有回应。我想它不认识“gs”。“我该怎么解决呢?”DhiwaTdG在回答中补充了一些调试方面的想法。让我知道会发生什么。