我有这个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
答案 0 :(得分:0)
这可能听起来很悲伤,但这是正确的。拆分时,每个文件都会获得所需的资源(例如字体和公司徽标图形)。当合并回来时,PDFBox并不知道这些文件在整个文档中可能是相同的,所以现在这些都是重复的。
我看到的唯一解决方案是使用PDFBox java API一步创建邮件文件和最终打印文件,即不创建合并后的单个文件。