在不使用ImageMagick的情况下在PHP中将PDF转换为图像

在不使用ImageMagick的情况下在PHP中将PDF转换为图像,php,linux,image,pdf,imagemagick,Php,Linux,Image,Pdf,Imagemagick,我有一个PHP站点,需要PDF到图像的转换,我们显然在使用imagemagick。 然而,现在我们正在尝试转移到不同的主机,似乎我无法在新主机上安装imagemagick包来完成与现在相同的工作 所以问题是-有没有任何方法可以用纯PHP的方式将PDF转换为图像,或者使用任何其他可以直接弹出到DOCUMENT_ROOT中并且不需要正确安装到系统中的方法 这是一个Linux系统,但我不知道是什么发行版,我无法检查,因为我在这个系统中的权限确实有限 谢谢 Alex。在linux系统上,静态链接的东西可

我有一个PHP站点,需要PDF到图像的转换,我们显然在使用imagemagick。 然而,现在我们正在尝试转移到不同的主机,似乎我无法在新主机上安装imagemagick包来完成与现在相同的工作

所以问题是-有没有任何方法可以用纯PHP的方式将PDF转换为图像,或者使用任何其他可以直接弹出到DOCUMENT_ROOT中并且不需要正确安装到系统中的方法

这是一个Linux系统,但我不知道是什么发行版,我无法检查,因为我在这个系统中的权限确实有限

谢谢
Alex。

在linux系统上,静态链接的东西可以在没有外部库依赖的情况下工作。因此,如果您可以获取/创建静态链接的imagemagick可执行文件,您可以直接在docroot下使用它。也许它不是那么琐碎

或者您可以使用远程站点为您进行转换。比如: (对于上传类似于此的表单的发布,curl将非常有用。)

“[…]需要PDF到图像的转换,我们显然正在使用imagemagick进行转换。”

这一点并不明显

因为ImageMagick无法单独将PDF转换为图像。它需要使用Ghostscript作为其“委托”。因此,您可能已经安装了ImageMagick,但没有安装Ghostscript,它将无法工作

反之亦然,您可以安装Ghostscript,但不安装ImageMagick,而且您仍然可以轻松地将PDF转换为图像。例如,转换为分辨率为144 DPI的JPEG(如果不指定分辨率,则会得到72 DPI):

此外,您可以在任何地方自由安装Ghostscript


顺便说一句:我不会去碰一个不提供ImageMagick或Ghostscript安装的主机提供商,更不用说不允许自己安装它了…

嗯,我无法检查Ghostscript是否真的可以在没有ImageMagick的情况下完成,因为我已经安装了这两个服务器,我不能碰它——这是生产。然而,斜体字的建议被证明是最有用的-为了更昂贵但更合适的主机,我们将避开这个gimped主机。@user1450663:Ghostscript可以在没有ImageMagick的情况下完成它。没有Ghostscript,ImageMagick无法完成此操作。你可以运行我在答案中给你的
gs
命令来查看证据。您还可以运行ImageMagick的命令convert-verbose some.pdf some.png,您将看到ImageMagick使用各种参数调用外部Ghostscript可执行文件,其中一个参数是
-sDEVICE=pngalpha
。请检查。它可以帮助您休息在线PDF到图像服务可以做到这一点,您无需在服务器上安装任何东西,因为所有转换都是在服务云pc上完成的。
gs              \
  -o out.jpg    \
  -sDEVICE=jpeg \
  -r144         \
   in.pdf