我在 linux 服务器上使用 ghostscript 来组合 PDF。我正在使用最新版本,9.05。我通常必须合并 5 个或更多 PDF。目前,合并 3 个 PDF 大约需要 20 秒……这对我来说似乎真的很慢。这是我正在使用的线路:
gs -dBATCH -dNOPAUSE -dNOGC -q -sDEVICE=pdfwrite -sOutputFile=output.pdf -c 3000000 setvmthreshold -f a.pdf b.pdf c.pdf
有什么建议么?
我在 linux 服务器上使用 ghostscript 来组合 PDF。我正在使用最新版本,9.05。我通常必须合并 5 个或更多 PDF。目前,合并 3 个 PDF 大约需要 20 秒……这对我来说似乎真的很慢。这是我正在使用的线路:
gs -dBATCH -dNOPAUSE -dNOGC -q -sDEVICE=pdfwrite -sOutputFile=output.pdf -c 3000000 setvmthreshold -f a.pdf b.pdf c.pdf
有什么建议么?
Ghostscript 将每个 PDF 文件完全解释为标记操作,然后从组合内容构建一个新文件。显然,这比简单地复制内容流要慢得多。这就是为什么你正在做的事情看起来很慢。
如上所述,使用仅复制内容流和对象的工具,根据需要重新编号,这样会快得多。除了pdfjam
(我对此一无所知)之外,您还可以查看pdftk
. 肯定还有其他人。
如果您只需要连接一些 pdf,您可以查看 pdfjam。我从来没有发现它在连接过程中很慢,但它有时会产生打印相当慢的输出 pdf。
使用pdfconcat
,它会在瞬间完成。Ghostscript 做任何事情都很慢。
在追踪导致超时的原因后,我注意到 Ghostscript 在处理 pdf v1.4(acrobat 5 兼容性)文件时比 v1.7 快得多。当 Ghostscript 稍后使用文件时,只需将 PDF 文件保存为 v1.4 即可加快速度。
这可能不适用于所有情况。根据速度,可能值得使用 Ghostscript 将 pdf 转换为比其他操作更低的版本。仅通过更改 pdf 版本,我就看到了从 30+ 秒到 ~1 秒的时差。