使用pdftk拆分包含多页的PDF文件,但总大小增加了

30

使用PHP时,我需要将一个包含多个页面的单个PDF文件拆分为许多每个页面一个文件的PDF文件。

我使用pdftk工具,它可以正常工作,但是由于每个页面创建了一个新的PDF文件,因此每个文件的大小都非常大。我的原始PDF文件大小为7MB(内部有70页),使用pdftk拆分后的所有文件总大小超过了70MB。

是否有人知道是否有属性可以设置pdftk以获得小文件输出?


一个非常好的解决方案是使用Cloudinary来拆分和检索PDF预览图像。http://cloudinary.com - Simone M
6个回答

36

你可以始终指定compress选项 - 例如:

pdftk input.pdf burst output output_%02d.pdf compress
请注意 pdftk 只是将输入的 PDF 文件内容复制到输出中,并且不能够优化冗余内容。因此,如果您的输入 PDF 文件很大/复杂,那么输出 PDF 文件也会很大。另外,请注意文档中嵌入的任何字体可能会在每个输出文档中重复出现,占用更多空间。

1
@Simone,正如pobrelkey所说,您可能在原始文件中有共同的资源,例如字体或背景图像,现在这些资源被复制了70次。也许一个单页样本会帮助某人建议优化方式。请注意,pdftk不会压缩到最大(使用1.5功能,如压缩的xref表和对象流,尽管它当然不会给出70倍的压缩)。 - user2846289
2
好的,我尝试了这个方法并解决了我的问题:http://pandemoniumillusion.wordpress.com/2008/05/07/compress-a-pdf-with-pdftk/ - Simone M

20

您可以使用pdftk并尝试。

pdftk source.pdf cat 1-100 output try1.pdf
pdftk source.pdf cat 101-end output try2.pdf

11

在拆分PDF文件时,很难避免一些页面所需的信息被包含在每个输出文件中。

cpdf会尽力避免这种情况-您可以尝试并查看它的效果。您可能会发现它在您的文件上与pdftk一样好,但应该更好。

声明:我是cpdf的作者。


0

曾经遇到过类似的问题,但并不是完全适用于这个问题。无论如何,有人可能会发现以下内容有用:

  1. 我有一个非常大的PDF文件 - original.pdf - 超过240MB。几乎无法使用它。我使用evince将其打印为PDF,并在打印机设置中删除了任何缩放。这生成了一个文件 - new.pdf - 大约102MB!显然,所有嵌入的字体、书签等都被删除了。
  2. 为了恢复书签,我使用cpdf从原始PDF文档中提取了书签,并将其应用于新文档。结果文档 - result.pdf - 易于导航,在任何PDF查看器中都非常快速。

参考:使用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

-1

我遇到了同样的问题,并测试了这些答案中提到的两个程序PdfTkcPDF

我的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手动完成。

附注:我可以在所有生成的拆分文件中进行搜索!


-1

我曾经遇到过类似的问题,尝试了很多不同的工具,发现即使有时候原始文件的压缩似乎不起作用,但在使用其中一些工具进行拆分后,结果可以大大减少。对我最有效的解决方案是这两个步骤的组合:

  1. 使用pdf2go(基本压缩对我有效)压缩您的原始文件。另一个答案中建议将其打印到新文件中,但在我的例子中效果较差。文件大小可能根本没有减小(在我的情况下甚至增加了),但仍然可以在拆分后获得更小的输出文件。

  2. 使用带有压缩选项的pdftk:

    pdftk input.pdf burst output output_%02d.pdf compress


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接