【发布时间】:2012-09-15 18:16:50
【问题描述】:
我有一个使用 PHP 和 ImageMagick 的 PDF 到 PNG 转换脚本,但转换速度有问题。
我知道它可以工作,因为对于非常小的 PDF,转换所需的时间并没有那么长,但是对于 250kb 的文件(实际上仍然没有那么大),转换需要超过 20 分钟。
这是 PHP:
//***** GET PATH TO IMAGEMAGICK *****
$path_to_imagemagick = trim(`which convert`);
//***** PATH TO PDF TO CONVERT *****
$path_to_pdf = getcwd() . "/pdf/myfile.pdf[0]";
//***** PATH TO OUTPUT TO *****
$output_path = getcwd() . "/pdfimage/test_converted.png";
@exec($path_to_imagemagick . " -density 72 -quality 60 -resize 150x " . $path_to_pdf . " " . $output_path);
我可以更改任何设置以加快速度吗?
如果有帮助,图像不需要是 PNG。如果 JPEG 会更快,我很乐意这样做。
【问题讨论】:
-
命令行的转换速度是多少?所有 250kb 的 PDF 文件需要 20 分钟,还是只是一个特定的 PDF?此 PDF 包含多少页?
-
经过调查,似乎只有某些 PDF 文件难以处理。一些较大的在几秒钟内完成,一些较小的超时。 ImageMagick 是否会遇到某种 PDF 设置?
-
有许多 PDF,大多数甚至所有 PDF查看器、渲染器或解释器可能会遇到困难...其中一个臭名昭著的功能可能使用 transparenies 和/或 drop shadows 的页面区域的解释速度较慢。 -- 另外,正如我在回答中解释的那样,处理 PDF-> 图像转换的不是 ImageMagick -- 它是 Ghostscript。而且较新版本的 Ghostscript 往往很多更好地处理更现代的 PDF(例如由 Adobe CS6、Acrobat X、InDesign 5 或其他创建的 PDF)——您是哪个版本的 Ghostscript使用? (输出:
gs -v) -
如果你能提供(链接到)渲染速度慢的示例 250kb PDF,我可以详细分析。
标签: php imagemagick image-conversion