java - 如何使用 PDFBox 在 PDF 中查找空白页?

标签 java pdf

这是我目前面临的挑战。
我有很多 PDF,我必须删除其中的空白页面并仅显示包含内容(文本或图像)的页面。
问题是那些 pdf 是扫描文档。
所以空白页上有一些扫描仪留下的脏东西。

最佳答案

我做了一些研究并最终得到了这段代码,它检查页面的 99% 是白色还是浅灰色。 我需要灰色因素,因为扫描的文档有时不是纯白色的。

private static Boolean isBlank(PDPage pdfPage) throws IOException {
    BufferedImage bufferedImage = pdfPage.convertToImage();
    long count = 0;
    int height = bufferedImage.getHeight();
    int width = bufferedImage.getWidth();
    Double areaFactor = (width * height) * 0.99;

    for (int x = 0; x < width ; x++) {
        for (int y = 0; y < height ; y++) {
            Color c = new Color(bufferedImage.getRGB(x, y));
            // verify light gray and white
            if (c.getRed() == c.getGreen() && c.getRed() == c.getBlue()
                    && c.getRed() >= 248) {
                 count++;
            }
        }
    }

    if (count >= areaFactor) {
        return true;
    }

    return false;
}

关于java - 如何使用 PDFBox 在 PDF 中查找空白页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23738652/

相关文章:

java - 报警管理器运行

java - 限制谷歌视觉中的检测区域,文本识别

java - Spring Boot - 设置默认 HTTP Oauth2Login() 注册/提供程序

java - 编辑 iText PDF Java

pdf - pandoc 在转换为 pdf 时不会对代码块进行文本换行

java - JButton 未放置在与其 JPanel 相同的位置

java - 如何预先声明一个数组?

c# - C# 中的 PDF 审阅器(ASP.NET/Silverlight?)

pdf - 尝试合并多个 pdf 文件时出现 cfpdf 合并错误

javascript - 保存/打印嵌入的 pdf