PHP中如何将PDF文件转换成图片而不使用ImageMagick?

7
我有一个PHP网站需要将PDF转换为图片,我们显然使用的是imagemagick。但是现在我们正在尝试迁移到不同的主机,似乎我无法在新主机上安装imagemagick包来执行与我们现在相同的操作。
所以问题是 - 是否有任何方法可以使用纯PHP手段或使用其他任何可以只需弹出到DOCUMENT_ROOT并且不需要正确安装到系统中的东西来将PDF转换为图像。
这是一个Linux系统,但我不知道是哪个发行版,由于我的系统权限非常有限,因此不能进行检查。
谢谢 Alex.

请检查一下这个链接,可能会对你有所帮助:http://code.google.com/p/dompdf/ - Krishna Karki
在线的Rest PDF转图片服务可以为您完成此操作,网址为http://www.convertapi.com/。无需在服务器上安装任何东西,因为所有的转换都是在服务云计算机上完成的。 - Tomas
2个回答

10

"[...]需要将PDF转换为图像,我们显然要使用imagemagick。"

这一点其实并不显然。

因为ImageMagick不能单独将PDF转换为图像。它需要使用Ghostscript作为其“代理”。所以你可能已经安装了ImageMagick,但没有安装Ghostscript,这样它就无法工作。

反之亦然,你可能已经安装了Ghostscript,但未安装ImageMagick,你仍然可以轻松地将PDF转换为图像。例如,将其转换为分辨率为144 DPI的JPEG格式(如果不指定分辨率,则会得到72 DPI):

gs              \
  -o out.jpg    \
  -sDEVICE=jpeg \
  -r144         \
   in.pdf

此外,你可以随意在任何地方安装Ghostscript。

(顺便说一下: 如果一个托管提供商不提供ImageMagick或Ghostscript安装,更不允许你自己安装,我会远离它...)


哎呀,我无法检查GhostScript是否真的可以在没有ImageMagick的情况下完成它,因为我所拥有的服务器都已经安装了它们两个,而且我不能碰它 - 这是生产环境。 然而,斜体字中的建议最有用 - 为了更昂贵但更好的服务,我们将远离这种受限制的托管。 - alexykot
@user1450663:Ghostscript可以在没有ImageMagick的情况下完成它。而ImageMagick没有Ghostscript是无法完成的。您可以运行我在答案中给出的gs命令来查看证据。此外,您还可以运行ImageMagick的命令convert -verbose some.pdf some.png,您会发现ImageMagick调用了一个带有各种参数的外部Ghostscript可执行文件,其中之一是-sDEVICE=pngalpha - Kurt Pfeifle

4
在Linux系统上,静态链接的程序可以在没有外部库依赖的情况下工作。因此,如果您可以获取/创建一个静态链接的ImageMagick可执行文件,您可以直接在docroot下使用它。可能并不那么简单。
或者,您可以使用远程网站为您进行转换。比如: http://pdf2jpg.net/ (对于像这样的上传表单,curl非常有用。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接