【问题标题】:Convert the First page of a PDF to JPG or PNG - PHP将 PDF 的首页转换为 JPG 或 PNG - PHP
【发布时间】:2014-07-26 19:56:06
【问题描述】:

我无法在 MacOSX(10.9.4) 上为 PHP 配置 ImageMagick。有没有其他方法可以进行转换,即没有 ImageMagick 或者有任何简单的方法可以做到这一点?我只需要将我的 pdf 文件的第一页转换为 .jpg 或 .png。

【问题讨论】:

  • 我们不知道您遇到了什么问题。因此无法帮助您。
  • 我只是想知道上述转换是否只能通过ImageMagick实现?我们没有其他方法可以这样做吗? @PeeHaa

标签: php image-processing imagemagick image-conversion


【解决方案1】:

这是不使用 ImageMagick 进行转换的 shell 代码:

pdftops -f 1 -l 1 -paper letter input.pdf - | gs -q -sDEVICE=png16m -r300x300 -dNOPAUSE -dSAFER -sOutputFile=output.png -

pdftops 是 poppler 实用程序的一部分。 gs 是鬼脚本。如果您无权访问pdftops,则可以使用 Adob​​e 的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

第二部分:如果上面成功创建了postscript文件,那么试试:

gs -q -sDEVICE=png16m -r300x300 -dNOPAUSE -dSAFER -sOutputFile=output.png - <output.ps

这应该创建output.png。如果任一部分有错误,请引用确切的错误。

【讨论】:

  • 我尝试通过php的exec()调用命令。但是没有回应。我认为它不识别“gs”。我该如何解决?
  • @DhiwaTdG 我在答案中添加了一些关于调试的想法。让我知道会发生什么。
猜你喜欢
  • 2010-10-28
  • 2021-08-15
  • 2011-05-11
  • 2011-09-30
  • 1970-01-01
  • 2012-09-15
  • 2012-04-09
  • 1970-01-01
  • 2011-10-28
相关资源
最近更新 更多