0

バッチ プロセスで GhostScript の ps2pdf を使用してポストスクリプトから変換した、グリッド線と背景シェーディング オーバーレイを含むいくつかの大きな PDF レポート (>500 ページ) があります。作成された PDF は、Adobe Reader で完璧に見えます。

ただし、Adobe Reader から PDF を印刷しようとすると、Dell レーザー プリンタで約 4 ~ 5 ppm になり、各ページ間に 10 秒以上の長い休止があります。別の独自のプロセス (GhostScript ではない) から生成された同じレポート PDF は、同じプリンターで高速に 25+ ppm を生成します。

両方の PDF ファイル サイズはほぼ同じで、それぞれ約 1.5 MB ですが、両方のバージョンの PDF をファイル (つまりポストスクリプト) に印刷すると、GhostScript で生成された PDF ポストスクリプト出力は、他のバージョンの約 5 倍大きくなります (2.7ミリ行対 675K) または 48 MB 対 9 MB。GhostScript 出力を見ると、グリッド ライン/シェーディングの背景パターン (「/PatternType1」タグで参照) がファイル全体で何千回も定義されていることがわかりますが、他の PDF 出力では 1 回しか定義されていません。私は、この背景パターンの絶え間ない再定義が、プリンターの機能を停止させていると考えています。

GhostScript にパターン/イメージを 1 回だけ定義させるスイッチ/設定はありますか? -r および -dPdfsettings=/print スイッチを使用してみましたが、問題はありませんでした。

4

3 に答える 3

1

ソースの PostScript を調べたところ、問題は確かにフォームの使用にあるようです。これは PostScript の比較的珍しい領域であり、実際に適切に使用されているのを見るのはさらに珍しいことです。

まれにしか使用されないため、出力 PDF でフォームを保持する機能を実装する動機がありません。これが大きな PDF の原因です。フォーム内でパターンを定義する方法も役に立ちません。パターンを個別に定義してみると、少なくとも pdfwrite が複数のパターンの使用を検出し、それを 1 回だけ出力できる可能性があります (パターンにはイメージマスクが含まれているため、これは価値があるかもしれません)。

この構造:

GS C20 setpattern 384 151 32 1024 RF GR
GS C20 setpattern 384 1175 32 1024 RF GR

は非効率的です。パターンを再インスタンス化し続けますが、これにはコストがかかります。これは次のとおりです。

GS C20 setpattern 
384 151 32 1024 RF
384 1175 32 1024 RF 
GR

より効率的です

いずれにせよ、この問題を本当に軽減するために pdfwrite でできることは何もありません。

于 2012-07-21T08:51:06.387 に答える
1

パターン (および実際には画像) およびその他の多くの構成要素は、一度だけ発行する必要があります。これを行うために何もする必要はありません。

ただし、フォームは再利用されず、これが実際の問題の原因である可能性があります。Kurt Pfiefle が上で述べているように、問題の原因となっているファイルを見ずに判断することはできません。

http://bubgs.ghostscript.comでバグ レポートを提出すると、ファイルを添付することができます。これを行う場合は、500 ページを超えるファイルを添付しないでください。時間を見つけて、同じ種類のサイズの膨張を示す小さなファイルを作成していただければ幸いです。

PostScript ファイルを見ないと、何の提案もできません。

于 2012-07-19T07:22:51.603 に答える
0

「[...] PDF の両方のバージョンをファイル (つまりポストスクリプト) に印刷すると、GhostScript で生成された PDF ポストスクリプト出力は、他のバージョンよりも約 5 倍大きくなります (270 万行対 675K)、または 48 MB 対 9 MB .'

  • どのバージョンの Ghostscript を使用していますか? (gs -vまたはgswin32c.exe -vまたはgswin64c.exe -vを試してみてください。)

  • PDF をどのように「ファイルに出力」しますか? (どの OS プラットフォーム、どのアプリケーション、どのような設定ですか?)

また、ps2pdfバッチ プロセスの最適なオプションではない可能性があります。いずれにしても、Ghostscript コマンドを内部的に呼び出す小さなシェル/バッチ スクリプトです。

Ghostscript を直接使用すると、結果をより詳細に制御できます (ただし、コマンドラインの「使いやすさ」はかなり不便で厄介です。そのため、 のようなツールps2pdfが非常に人気があります...)。

最後に、テスト用の PS 入力サンプルの 1 つ (および独自のコンバーターによって生成された PDF) に直接アクセスしないと、適切な提案を思い付くのは容易ではありません。

于 2012-07-18T20:25:13.997 に答える