2012-04-26 114 views
3

我在linux服务器上使用ghostscript来组合PDF。我正在使用最新版本9.05。我通常必须合并5个或更多PDF。目前,需要大约20秒才能合并3个PDF ......这对我来说似乎很慢。下面是我使用的线:如何优化Ghostscript?

GS -dBATCH -dNOPAUSE -dNOGC -q -sDEVICE = pdfwrite -sOutputFile =输出.pdf -c 3000000 setvmthreshold -f a.pdf b.pdf C.PDF

有什么建议么?

+0

这3个PDF在字节和页面上有多大?每个PDF使用多少种字体? (使用'pdffonts a.pdf','pdffonts b.pdf' ...)'output.pdf'分别是什么?你知道'-dNOGC'应该具有哪种效果吗?它工作吗? – 2012-04-26 20:42:44

+0

@皮皮塔好点。关闭GC可能导致更多的交换。另外,需要引用-c选项的参数。没有-f选项。 – 2012-04-29 00:14:35

回答

1

如果你只是需要链接一些pdf的,你可以检查pdfjam。我从来没有发现它在缓慢的过程中很慢,但它有时产生输出PDF格式,而且打印速度很慢。

link

2

Ghostscript的充分解释每个PDF文件到标记操作,然后从构建组合内容的新文件。显然,这比仅仅复制内容流要慢得多。这就是为什么你在做什么似乎很慢。

如上所述,使用一个工具,它只是复制内容流和对象,根据需要重新编号,这将更快。除了pdfjam(我什么都不知道),你也可以看看pdftk。还有其他人也一定会有。

0

使用pdfconcat,它会在瞬间完成。 Ghostscript一切都很慢。

+0

该陈述忽略了这一点。 Ghostscript比'pdfjam'做的要多得多。 *'pdfjam'只做一件事,但做得很快*(注意,我没有说*'...但是做得很好* *'* *为什么我没有说这是因为'好'在不同的情况下可能会有不同的定义:另请参阅http://stackoverflow.com/a/4233975/359307上的[更新]答案。这就是为什么我在@Matt Orlando上面提问我的问题。) – 2012-04-27 15:51:56

+0

GhostScript不会将PDF,它将它们分开并重新创建一个全新的PDF,做了许多其他事情,包括重新压缩所有图像,OP可能不希望它做。正如你所说,有很多方法可以将PDF文件组合在一起,有些方法比其他方法更好,但Ghostscript并不是最好的解决方案。无论如何,我说'pdfconcat'不是'pdfjam'。就我个人而言,我会自己编写应用程序的代码,因为我不认为有可用的真正好的解决方案。 – Alasdair 2012-04-28 03:24:16

+0

我非常了解Ghostscript的工作原理以及它的强大(以及弱点)。 :-) - 根据**你想要输出PDF格式,Ghostscript *可能是最好的解决方案。如果**结束**的速度是唯一的担忧,那么Ghostscript肯定不是最好的原因KenS(谁是Ghostscript开发者)和你(显然他肯定读过KenS的评论)概述......(我对'pdfjam'所说的话也适用于'pdfconcat'。)你的回答是片面的,而user1277476的回答确实符合其建议。 – 2012-04-28 05:49:02

0

追踪了造成超时的原因之后,我发现Ghostscript处理pdf v1.4(acrobat 5兼容性)文件与v1.7相比要快得多。当文件稍后被Ghostscript使用时,只需将v1.4保存为PDF文件即可加速。

这可能不适用于所有情况。根据速度,可能需要使用Ghostscript将PDF转换为较低版本,然后进行其他操作。通过更改pdf版本,我看到时差从30秒到1秒。