[英]Issue with converting PDF pages to images with ImageMagick's convert (and PHP)
我正在尝试创建一个小型Web服务,以将PDF文件转换为一系列图像。
当我通过ssh连接到[Mediatemple(gs)]服务器时,运行convert /full/path/to/source.pdf full/path/to/target.jpg
时,一切正常。
通过PHP的exec()
函数执行同一命令时,仅转换PDF文件的前几页。 有时其余页面是0长度的jpg文件,有时它们根本不显示。
另外,第一页的底部区域有时是黑色的,就像转换在页面的中途停止一样。
是什么导致此问题?
更新:
我正在使用set_time_limit(0)。
如果我通过SSH连接,并运行命令convert -limit area 90 ...
,则它会在大约30 convert -limit area 90 ...
成功完成。 30秒。 通过PHP-s exec()执行相同操作时,它将运行约90秒,并产生损坏的图像(如上所述)作为输出。
有没有简单的方法可以使convert任务以与SSH相同的特权和资源运行?
此外,由于解决服务器问题确实很令人沮丧,我对此几乎无能为力-是否有完善的现有Web服务(API)将PDF转换为图像?
重新更新:是否可以尝试转换一个很小的小PDF毕竟是否是内存问题?
另外,ImageMagick具有debug
命令行选项:
convert -debug "All" /full/path/to/source.pdf full/path/to/target.jpg
我认为它可以调试到stdout,您必须捕获它记录的内容并输出。 这里的手册
另外,我认为要转换PDF,ImageMagick需要调用ghostscript(我认为二进制文件是gs
)。 您是否可以尝试确保可调用的PHP用户身份运行为? 如果不是,则ImageMagick 应该返回错误,但是您永远不会知道。
放弃尝试使其在共享服务器上运行,然后将应用程序移动到另一台服务器-现在一切正常。
我认为服务器资源限制(主要是一些内存限制)正在干扰ImageMagick,并且这样做的方式非常不一致。 限制ImageMagick的内存使用仍然会产生错误,并且无法成功转换文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.