2013-11-15 49 views
11

与PHP我必须拆分一个单一的PDF文件,其中的多个页面到大量的PDF文件,每个文件一页。 我使用pdftk并且工作正常,但为每个页面创建的每个pdf都非常大。我的原始PDF为7MB(内含70页),与pdftk分割创建的每个文件的总和超过70MB。pdftk分割pdf与多个页面

有人知道是否有一个属性设置为pdftk有小文件输出?

谢谢

+0

一个很好的解决方案是使用cloudinary的分裂和检索的PDF预览图像等.. http://cloudinary.com –

回答

18

你总是可以指定compress选项 - 例如:

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

注意pdftk只是复制从投入产出的PDF文件的内容,而不能尽量优化消除膨胀。所以如果你的输入PDF文件很大/很复杂,你的输出PDF文件也将会是。另请注意,嵌入在文档中的任何字体可能最终会在每个输出文档中被复制,占用更多空间。

+0

我尝试它,但不起作用:(我有相同的文件大小 –

+0

@Simone,因为pobrelkey说,你可能有原始文件中的公共资源,如字体或背景图像,现在是70倍重复。也许一个页面样本将帮助某人提出优化方法。请注意,'pdftk'不会压缩到最大值(使用压缩外部参照表和对象流等1.5个功能,当然,它不会提供70倍压缩) – user2846289

+2

好的,我尝试使用它并解决了我的问题:http://pandemoniumillusion.wordpress.com/2008/05/07/compress-a-pdf-with-pdftk/ –

5

在分割PDF文件时,有时很难避免仅包含在每个输出文件中的某些页面所需的信息。

cpdf尽量避免这种情况 - 您可以尝试一下,看看会发生什么。你可能会发现它比你的文件上的pdftk好,但它应该是。

披露:我是cpdf的作者。

7

您可以使用pdftk并尝试

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

有类似的问题。但不适用1:1的问题。反正有人可能会发现它有用:

  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