2017-07-11 4 views
1

5544ページを含むこの大きな印刷ファイルは、サイズが約36MBです。ファイルはMS Word 2010によって作成され、各レター/文書にテキストとロゴのみが含まれています。PDFBOXを使用してPDFファイルを分割してマージすると、大きなファイルが生成される

私はそれを5544ファイルに分割し、キーワードに基づいて2770文字にマージします。各手紙は約です。 140〜145kb。

すべての文字を5544ページを含む新しいpdf印刷ファイルにマージすると、ファイルのサイズは396MBになります。

すべてのテキストの抽出、分割、マージはPHPのApache PDFBoxコマンドラインツールを使用して実行されますが、結果はコンソールから実行した場合と同じです。

文字と最終的な印刷ファイルのファイルサイズを小さくするにはどうすればよいですか? PDFBoxは最終的な印刷ファイルの各文字を追加したばかりで、代わりに新しいpdfドキュメントを作成したようです。

すべてのドキュメントが最終的な印刷ファイルにマージされるのはテスト段階です。ドキュメントの一部は電子メールで送信されます。

IはまたSAMBox(PDFBoxのフォーク)を試みたが、ほぼ同じ結果た:悲しい音が、それは正しいかもしれ

pdfinfo Original.pdf Title: Printfile Author: Claus Hjort Bube Creator: Microsoft® Word 2010 Producer: Microsoft® Word 2010 CreationDate: Fri May 19 12:16:34 2017 CEST ModDate: Fri May 19 12:16:34 2017 CEST Tagged: yes UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 36092281 bytes Optimized: no PDF version: 1.5

pdfinfo PDFBox.pdf Title: Printfile Author: Claus Hjort Bube Creator: Microsoft® Word 2010 Producer: Microsoft® Word 2010 CreationDate: Fri May 19 12:16:34 2017 CEST ModDate: Fri May 19 12:16:34 2017 CEST Tagged: no UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 396622354 bytes Optimized: no PDF version: 1.4

pdfinfo SAMBox.pdf Creator: Sejda Console 3.2.17 Producer: SAMBox 1.1.8 (www.sejda.org) ModDate: Tue Jul 11 23:34:33 2017 CEST Tagged: no UserProperties: no Suspects: no Form: none JavaScript: no Pages: 5544 Encrypted: no Page size: 595.32 x 841.92 pts (A4) Page rot: 0 File size: 378779436 bytes Optimized: no PDF version: 1.7

+1

これは実際に起こる可能性があります。元のファイルでは、最も可能性の高いリソースが共有されていました。すべてのページが参照するイメージのコピーが1つしかありませんでした。ファイルが分割されると、各部分PDFはそれぞれの共有リソースの独自のコピーを取得しました。したがって、これらの部分的なPDFを再度マージした後、各ページには、以前に共有された各リソースの独自のコピーがあります。これにより、ファイルサイズが爆発的になります。残念ながら、PDFBoxは、同じリソースを認識して1つのコピーに減らすためのスマートな合併はありません(まだですか?)。 – mkl

+3

元のPDFを分割して分割ページを再度選択する代わりに、元のファイルから始めて、不要なページをすべて削除して縮小してください。 – mkl

答えて

0

。分割するとき、各ファイルは必要なリソース(例えば、フォントや会社のロゴグラフィック)を取得する。後でマージされると、PDFBoxはドキュメント全体でこれらが同じである可能性があることを認識しないため、これらは現在多く複製されています。

PDFBoxのJava APIを使用して、メーリングファイルと最終印刷ファイルを1つのステップで作成することができます(つまり、1つのファイルを後でマージする必要はありません)。

関連する問題