有没有一种编程方式可以从PDF文件中自动删除所有空白页面?

4

现在购买电子书比购买纸质书更加实用。但是PDF文件通常包含印刷版使用的空白页。我通常会在每本电子书中看到10-30页空白页或者写有“本页意外留白”的文字。是否可以通过编程的方式自动删除这些空白页?目前我需要手动识别这些空白页,然后运行以下命令:

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

所以,最难的部分是识别空白页面。pdftotext 对大部分情况都可以处理,但如果页面只有图像而没有文本,则无法处理。

此外,即使删除了许多页面并且看到生成的文件大小更小了,在将原始文件和新版本缩小后(使用从网络上找到的各种方法),原始文件通常比新版本小几百 KB 或更多。因此,似乎我用于删除空白页的方法并未创建最佳的 PDF。我也尝试过各种 GUI 程序,但在这方面得到了相同的结果。

2个回答

1

部分答案:您不需要通过后置脚本(这可能是您得到更大文件的原因)来完成。一种可能性是

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

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


0

我不知道有哪些开源方案可以检测和删除空白页面。但是,Apago的商业PDF Enhancer可以自动删除空白页--无论是矢量还是扫描的。对于扫描的文档,它可以在确定页面是否为空白之前,去除扫描伪影,如黑边、孔洞和噪声。


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