使用PDFBOX拆分和合并pdf文件会生成大文件

时间:2017-07-11 22:40:16

标签: pdf pdfbox

我有这个pdf的大型打印文件,其中包含5544页,大小约为36mb。该文件由MS Word 2010创建,每个字母/文档仅包含文本和徽标。

我将其拆分为5544个文件,并根据关键字合并为2770个字母。每个字母大约是。 140-145kb。

当我将所有字母合并到一个新的pdf打印文件中时,仍然包含5544页,文件大小增加到396mb。

所有文本提取,拆分和合并都是通过从PHP调用Apache PDFBox命令行工具来执行的,但从控制台运行时结果是相同的。

知道如何减少字母和最终打印文件的文件大小吗? 似乎PDFBox刚刚在最终打印文件中附加了每个字母,而不是创建一个新的pdf文档。

只有在测试阶段,所有文件都合并到最终的打印文件中,一些文件将通过电子邮件发送。

我也尝试了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 个答案:

答案 0 :(得分:0)

这可能听起来很悲伤,但这是正确的。拆分时,每个文件都会获得所需的资源(例如字体和公司徽标图形)。当合并回来时,PDFBox并不知道这些文件在整个文档中可能是相同的,所以现在这些都是重复的。

我看到的唯一解决方案是使用PDFBox java API一步创建邮件文件和最终打印文件,即不创建合并后的单个文件。