2012-04-26 59 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秒。