繁体   English   中英

使用ImageMagick的convert(和PHP)将PDF页面转换为图像的问题

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM