PDFTK输出与输入相同的大小,无论Cat' d页数

时间:2016-11-14 22:18:50

标签: pdf pdftk

我遇到了一组奇怪的特殊情况,并且不知道从哪里开始。如果我突发25M,600 pg文件,则每个突发文件的输出变为25M。如果我做pdftk input.pdf cat 1-100输出out.pdf,大小也是25M(25292kb vs 25524kb for original)。执行页面范围1-5会导致文件大小为25040kb。

是否有一个标志可以添加到pdftk来处理这种情况? Ghostscript可以从这个pdf中获取页面范围并制作适当大小的PDF但是gs似乎不会处理爆发以及需要安装所有字体。

1 个答案:

答案 0 :(得分:2)

您可能对PDF做出以下假设:如果您的文件大小为3000 KB且有10页的PDF,则拆分此PDF将导致30个文件大小为300 KB的文件。

这个假设是错误的。想象一下3000 KB的文档,包含10个页面和以下对象:

  • 每页使用四个字体子集,每个字体子集大约50 KB
  • 在单个页面上显示的十个图像,每个图像大约200 KB(每页一个图像)
  • 每页上显示的四张图片,每张图片大约50 KB
  • 十页,内容流各约25 KB
  • 目录,信息词典,页面树,交叉引用表等对象的大约350 KB ...

单页至少需要: - 四个字体子集:4倍50 KB - 单张图片:1次200 KB - 四张图片:4次50 KB - 单个内容流:1次50 KB - 略微减少的交叉引用表,略微缩小的页面树,几乎相同的目录,相同大小的信息字典,... 200 KB

总共850 KB。这意味着如果将10页3000 KB PDF文档拆分为10个单独的页面,最终会得到8500 KB(10倍850 KB)。

我的猜测是,PDF中的共享资源(每个页面中使用的资源,例如字体)都很大。例如。如果有人使用高分辨率图像作为每页约25M的背景,那么600页中的每一页都需要25M。

请注意,PdfTk只不过是一个过时的iText版本的包装器。您可能想尝试使用更新版本的iText来查明问题是否仍然存在。