使用PHP时,我需要将一个包含多个页面的单个PDF文件拆分为许多每个页面一个文件的PDF文件。
我使用pdftk工具,它可以正常工作,但是由于每个页面创建了一个新的PDF文件,因此每个文件的大小都非常大。我的原始PDF文件大小为7MB(内部有70页),使用pdftk拆分后的所有文件总大小超过了70MB。
是否有人知道是否有属性可以设置pdftk以获得小文件输出?
使用PHP时,我需要将一个包含多个页面的单个PDF文件拆分为许多每个页面一个文件的PDF文件。
我使用pdftk工具,它可以正常工作,但是由于每个页面创建了一个新的PDF文件,因此每个文件的大小都非常大。我的原始PDF文件大小为7MB(内部有70页),使用pdftk拆分后的所有文件总大小超过了70MB。
是否有人知道是否有属性可以设置pdftk以获得小文件输出?
你可以始终指定compress
选项 - 例如:
pdftk input.pdf burst output output_%02d.pdf compress
请注意 pdftk
只是将输入的 PDF 文件内容复制到输出中,并且不能够优化冗余内容。因此,如果您的输入 PDF 文件很大/复杂,那么输出 PDF 文件也会很大。另外,请注意文档中嵌入的任何字体可能会在每个输出文档中重复出现,占用更多空间。pdftk
不会压缩到最大(使用1.5功能,如压缩的xref表和对象流,尽管它当然不会给出70倍的压缩)。 - user2846289您可以使用pdftk并尝试。
pdftk source.pdf cat 1-100 output try1.pdf
pdftk source.pdf cat 101-end output try2.pdf
在拆分PDF文件时,很难避免一些页面所需的信息被包含在每个输出文件中。
cpdf会尽力避免这种情况-您可以尝试并查看它的效果。您可能会发现它在您的文件上与pdftk一样好,但应该更好。
声明:我是cpdf的作者。
曾经遇到过类似的问题,但并不是完全适用于这个问题。无论如何,有人可能会发现以下内容有用:
参考:使用cpdf提取和应用书签:http://www.coherentpdf.com/cpdfmanual/node38.html
cpdf -list-bookmarks original.pdf > booksmarks.txt
cpdf -add-bookmarks booksmarks.txt new.pdf -o result.pdf
我遇到了同样的问题,并测试了这些答案中提到的两个程序PdfTk
和cPDF
。
我的PDF文件大小为5744k。
使用以下PDFTK
命令:
我得到了一个501k的文件。
set pdftk="C:\Program Files (x86)\Tools\PDFtk\bin\pdftk.exe"
%pdftk% "RY18BPSA.UserManual.pdf" CAT 1 9-15 220 output "RY18BPSA.PDFTK.pdf"
使用以下CPDF
命令
set cpdf="C:\Program Files\Tools\cpdf\cpdf.exe"
%cpdf% "RY18BPSA.UserManual.pdf" 1,9-15,220 -o "RY18BPSA.CPDF.pdf"
我得到了一个592k的文件。
只是为了好玩,我还测试了直接将所需页面打印到Microsoft to PDF
伪打印机,并获得了一个250k的文件!
我能够快速看到与其他生成的文件唯一的区别是页面格式已更改并替换为A4页面,这只能通过PDF程序(如Acrobat Reader或Foxit Reader)的打印GUI手动完成。
附注:我可以在所有生成的拆分文件中进行搜索!
我曾经遇到过类似的问题,尝试了很多不同的工具,发现即使有时候原始文件的压缩似乎不起作用,但在使用其中一些工具进行拆分后,结果可以大大减少。对我最有效的解决方案是这两个步骤的组合:
使用pdf2go(基本压缩对我有效)压缩您的原始文件。另一个答案中建议将其打印到新文件中,但在我的例子中效果较差。文件大小可能根本没有减小(在我的情况下甚至增加了),但仍然可以在拆分后获得更小的输出文件。
使用带有压缩选项的pdftk:
pdftk input.pdf burst output output_%02d.pdf compress