2013-08-20 36 views
1

Ghostscript的结合PDF和多线程/核心

我知道有几个问题和线程了关于类似的东西,但没有人会为我工作。 我正在尝试将〜1000个pdf文件合并为一个。我尝试了几个工具,但只有gs(ghostscript)做了适当的压缩。 我的问题是,多线程不工作/我有24个核心,并喜欢使用例如8的任务,但顶部显示,它仍然只使用一个。我的命令:

gs -q -dNOPAUSE -dNOPROMPT -q -dBATCH -dNumRenderingThreads=8 -dBandHeight=100 -dBandBufferSpace=500000000 -sBandListStorage=memory -dBufferSpace=1000000000 -sDEVICE=pdfwrite -sOutputFile=combined_gs.pdf sourcefiles/*.pdf 

我必须加快这一点,因为它需要大约60秒,我需要这个动态。 有什么建议吗?

回答

8

pdfwrite设备不使用线程(它会很难这样做)。线索名称为'NumRenderingThreads',pdfwrite不会渲染

由于它不是渲染BandHeight,BandBufferSpace,BandListStorage和BufferSpace也不起作用。 (您还指定了-q两次)

请注意,Ghostscript和pdfwrite设备不会“操纵”PDF输入,不会组合,连接或类似的东西。它所做的是解释所有的输入,创建一组图形基元,然后将这些基元重新组合成一个全新的PDF输出文件。新的输出文件与任何输入都没有共同之处,我们的目标是视觉外观应该是相同的。虽然我们确实从输入中处理了许多非成型对象,但这些对象是次要的。

很明显,这比将PDF文件的内容视为一系列可重新排列的构建块要复杂得多,这就是为什么它更慢。说实话,在1分钟内重写1000个文件对我来说似乎相当快。