有没有办法以编程方式从PDF文件中删除所有空白页?

时间:2010-07-13 23:14:04

标签: pdf

现在购买电子书比死树版本更实用。但PDF经常包含印刷版使用的空白页。我通常会在每本电子书中看到10-30个空白页(或带有文本的页面“本页故意留空。”)。是否可以以编程方式删除这些空白页?目前我手动识别空白页面,然后运行它:

pdftops orig.pdf - | psselect "$range_of_non_blank_pages" | ps2pdf - new.pdf

所以困难的部分是识别空白页面。 pdftotext大部分都可以使用,除非页面只有图像而没有文本。

此外,即使删除了许多页面并且看到生成的文件大小较小,在缩小原始文件和新版本(使用互联网上的各种方法)之后,原始文件通常会小几百KB或更多。因此,我用来删除空白页面的方法似乎没有创建最佳的pdf。我也尝试过各种gui程序,并在这方面看到相同的结果。

2 个答案:

答案 0 :(得分:1)

部分答案:你不需要通过postscript(这可能是你获得更大文件的原因)。一种可能性是

pdftk orig.pdf cat "$range_of_non_blank_pages" output new.pdf

要识别空白页面,您需要使用一种不仅可以选择和重新组合页面的工具。尝试使用脚本语言库,例如Perl中的CAM :: PDF或PDF :: API2。

答案 1 :(得分:0)

我不知道可以检测和删除空白页面的开源解决方案。但是,Apago的商业PDF Enhancer可以自动删除空白页面 - 矢量和扫描。对于扫描,它可以在确定页面是否为空白之前删除扫描伪像,如黑边,打孔和噪声。