6

だから私はJavaとiTextを使って構築されたレポートシステムを持っています。PDFテンプレートはScribusを使用して作成されます。Javaコードは、iTextを使用してデータをドキュメントにマージします。次に、ファイルがNFS共有にコピーされ、BASHスクリプトがそれらを印刷します。

私はacroreadを使用してそれらをPSに変換し、次にPSをlprします。

FOSSアプリケーションのpdftopsはひどく非効率的です。

私の主な問題は、iText/Scribusを使用して生成されたPDFが非常に大きいことです。そして私は最近、大きな(300ページ以上)ドキュメントで4GBのmem使用量に達するため、acroreadが吐き出すという問題に遭遇しました。(Adobeは64ビットへの更新が非常に遅いです)。

これで、WindowsでAdobe Readerを使用し、[ファイルサイズの縮小]オプションなどを使用できます。これにより、PDFのサイズが大幅に(> 10倍)縮小され(フォームフィールドなどに関する多くのメタデータが削除されます)、生成されます。基本的に印刷画像であるPDF。

私の質問は、Linuxで同様のことを行うための優れたソリューション/プログラムを知っている人はいますか。理想的には、PDFを最適化し、サイズを縮小し、PSの複雑さを軽減して、現在1ページの印刷に約15〜20秒かかるため、プリンターがより高速に印刷できるようにします。

4

2 に答える 2

5

PDFファイルのサイズを小さくするには、私が開発しているソフトウェアであるpdfsizeoptを使用します。pdfsizeoptLinux、Mac OS X、Windows(および場合によっては他のシステムでも)で動作します。

pdfsizeopt依存関係がたくさんあるので、インストールするのは少し面倒かもしれません(あなたの時間の約10分)。インストールを簡単にするために取り組んでいます。

すぐに何かが必要な場合は、その依存関係の1つであるMultivalentを試すことができtool.pdf.Compressます。これは純粋なJavaツールです。

Multivalent20060102.jarを取得し、Javaをインストールして実行します

java -cp Multivalent20060102.jar tool.pdf.Compress input.pdf

gs -sDEVICE=pdfwriteできることには制限があります。

  • 外部参照ストリームを生成できません(したがって、PDFは必要以上に大きくなります)
  • オブジェクトストリームを生成できません(したがって、PDFは必要以上に大きくなります)
  • 画像やその他のオブジェクトの重複排除は行われません(つまり、同じ画像が入力PDFに複数回表示される場合、gsは発生するたびに出力にコピーを作成します)
  • それは次善の画像を放出します
  • 画像を低解像度にリサンプリングします
  • PDFのハイパーリンクが省略されることがあります
  • 一部の構成を変換できません(したがって、出力PDFは入力と視覚的に異なる場合があります)

どちらpdfsizeoptもMultivalentもtool.pdf.Compressこれらの制限に悩まされていません。

于 2012-08-06T12:32:32.357 に答える
4
gs \
  -dCompatibilityLevel=1.4 \
  -dPDFSETTINGS=/screen \
  -dNOPAUSE \
  -dBATCH \
  -sDEVICE=pdfwrite \
  -sOutputFile=output.pdf \
   input.pdf

Ghostscriptは、この問題のほとんどで機能するようです。ゴーストスクリプトが埋め込まれたフォントを文字化けさせるという別の問題が発生していますが、そのための新しい質問を開きます。

于 2010-04-19T20:47:10.270 に答える