2

)

同様のことについていくつかの質問とスレッドがあることは知っていますが、どれもうまくいきません。1000 個までの pdf ファイルを 1 つに結合しようとしています。いくつかのツールを試しましたが、gs (ghostscript) だけが適切な圧縮を行います。私の問題は、マルチスレッドが機能していないことです.24コアがあり、タスクに8などを使用したいのですが、トップはまだ1つしか使用していないことを示しています. 私のコマンド:

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秒かかるため、これを少し高速化する必要があり、その場でこれが必要です。助言がありますか?

4

1 に答える 1

10

pdfwrite デバイスはスレッド化を使用しません (そうするのは難しいでしょう)。手がかりは「NumRenderingThreads」という名前にあります.pdfwriteはレンダリングしません.

BandHeight をレンダリングしていないため、BandBufferSpace、BandListStorage、および BufferSpace も効果がありません。( -q も2回指定しました)

Ghostscript と pdfwrite デバイスは、PDF 入力を「操作」したり、結合したり、連結したり、同様のものを作成したりしないことに注意してください。すべての入力を解釈し、一連のグラフィック プリミティブを作成します。これらのプリミティブは、新しい PDF 出力ファイルに再構築されます。新しい出力ファイルは、どの入力とも共通点がありません。これに関する私たちの目標は、視覚的な外観を同じにすることです。入力から多くの非マークリング オブジェクトを処理しますが、これらは二次的な重要性があります。

明らかなように、これは、PDF ファイルのコンテンツを再配置可能な一連のビルディング ブロックとして扱うよりもはるかに複雑なプロセスであり、そのために処理が遅くなります。正直なところ、1 分間で 1000 個のファイルを読み取り、解釈し、書き直すのはかなり速いように思えます。

于 2013-08-20T07:32:02.427 に答える