PDF格式的多页背景,使用pdftk或其他工具

时间:2014-06-24 12:26:25

标签: pdf ghostscript pdftk

如何将多页背景(例如,奇数和偶数背景)添加到10 000页PDF,同时保持输出文件尽可能小?

我正在进行大量多页文档(例如,在一个文档中有10000页)。每个页面都有背景,我以这种方式应用:

  1. 我有很多.dvi文档,我使用dviconcat
  2. 加入
  3. 接下来我在加入.dvi
  4. dvipdf
  5. 然后我使用pdftk pdftk infile.pdf background bg.pdf output outfile.pdf来应用背景

    通过这种方式,我的文件相当小,例如。 200MB,与我用背景生成大量.pdf文件的情况相比,并使用pdftk加入它们,结果文件是例如。 2G。

    我认为这是因为每个页面都没有重复背景,但它的副本只存储在PDF中一次,并且页面中有某种引用。

    不幸的是,现在我需要使用2页/ 2面背景。奇数页的不同背景和偶数的不同。 PDFtk不知道该怎么做。我可以准备10.000页背景,但它会很大(例如1G)。

    任何建议如何在不玩多GB文件的情况下完成它?它可行吗?如果是 - 使用pdftk或某种不同的工具?

1 个答案:

答案 0 :(得分:0)

一种解决方案是在将PostScript转换为PDF时执行背景操作。使用BeginPage过程,您可以在痛苦页面内容之前绘制背景。通过检查BeginPage中的页面计数,您可以选择要绘制的背景,因此您可以为偶数/奇数/任何页面使用不同的背景。

如果您将每个背景指定为PostScript表单,那么您的BeginPage可能很小,而且(更重要的是)当前版本的Ghostscript 9.14将尝试将PostScript表单作为PDF表单传递到PDF文件中,并且它可以识别和合并重复项,因此它应该'只嵌入每个表单一次。这应该导致最小的文件大小。

但是,此代码处于开发的早期阶段,可能对您不起作用,您也需要进行一些PostScript编程。

我不熟悉pdftk,但是可以生成所有偶数页面,为它们添加背景。生成所有奇数页面,添加不同的背景,然后使用pdftk合并和交错页面?

NB Ghostscript不会处理.dvi文件,因此我不知道如何使用Ghostscript来加入'他们。此外,如果您使用Ghostscript以某种方式创建PostScript文件,您几乎肯定会更好地使用Ghostscript直接生成PDF文件。 (我在这里假设你使用的是Ghostscript的ps2pdf,但即使你不是一步到位就能更快地制作PDF,几乎可以肯定会产生更好的输出太)