在我们的一个本地服务器上,我使用pdftoppm
(v 0.18.4) 将 pdf 文件的第一页捕获为 1200 像素宽的 jpg。它非常快,而且效果很好。我这样做是这样的:
pdftoppm -f 1 -l 1 -scale-to-x 1200 -jpeg "$infile" "$outfile"
这实际上是瞬时执行的。
在我们的实时服务器上,我们有一个更现代的版本pdftoppm
(v 3.00),并且需要很长时间(30-70 秒)来生成缩略图,我正在这样做:
pdftoppm -f 1 -l 1 -r 1200 "$infile" "$outfile"
这花了 35 秒,生成了一个 400 MB 的图像,宽度接近 10,000 像素,所以这显然是不正确的!我似乎无法控制分辨率(这显然是巨大文件大小和转换时间的来源),而且我似乎也无法指定输出是 jpg:传递-jpeg
选项只是使 pdftoppm 输出其选项,这是“给出的错误选项”的标准行为。
谁能告诉我将哪些选项传递到 v 3.00 才能获得与早期版本相同的结果?
我认为我实际上应该尝试将我们的服务器版本降级到pdftoppm
与本地相同的版本,但在这样做之前我想看看是否缺少某些内容。 v3.00 的手册页在这里: http://linux.die.net/man/1/pdftoppm
答案1
我刚刚经历过这个问题,所以我想我可以在这里做出一些贡献。如果你看一下文档pdftopppm,您会注意到在实时服务器中您实际上没有缩放到 1200px,而是将分辨率设置为 1200(默认为 150),这解释了实时服务器上需要很长的处理时间
pdftoppm -f 1 -l 1 -r 1200 "$infile" "$outfile"
应该改为
pdftoppm -f 1 -l 1 -scale-to 1200 "$infile" "$outfile"
相反,它应该为您提供与开发服务器相同的速度。