将PDF的第一页转换为JPG或PNG-PHP
我无法在MacOSX(10.9.4)上为PHP配置ImageMagick。是否有其他方法进行转换,即不使用ImageMagick,或者有任何简单的方法进行转换?我只需要将pdf文件的第一页转换为.jpg或.png。以下是不使用ImageMagick进行转换的shell代码:将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
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在回答中补充了一些调试方面的想法。让我知道会发生什么。