【问题标题】:PDFbox library page iterationPDFbox库页面迭代
【发布时间】:2019-12-08 12:09:05
【问题描述】:

我实现了一种从 PDF 文档中的每个 PDF 页面捕获特定区域的方法,因此捕获该区域的方法采用 PDPage 和 Rectangle 对象,现在我想遍历每个页面并找到第一个字符串(文本)位于给定坐标处。 getPages() 返回 PDPageTree 所以我有点卡住了,因为我不知道如何检查每一页,因为现在它遍历每一页。

public PDPageTree getPages() {
    return getPDDocument().getPages();
}

public String firstInvoiceNumber() throws IOException {
    Rectangle invoiceRectangle = new Rectangle(176, 176, 100, 18);
    String headerTextResult = "";
    for (PDPage pd : getPages()) {
        headerTextResult = StripByArea(pd, invoiceRectangle);
    }
    return headerTextResult;
}

【问题讨论】:

  • 如果您已经弄清楚如何遍历页面,那么您所说的确切问题是什么?
  • @second 目前它遍历每个页面,但我被困在如何检查页面并在找到值后中断> 所以目前它一直到最后一页然后返回“”,因为最后一页没有我要查找的对象
  • 假设一旦您的 StripByArea 方法(考虑在此处使用小写字母)返回不是 "" 的内容,您应该能够返回。只需检查它并直接返回或break 循环。

标签: java pdfbox


【解决方案1】:

按如下方式进行:

public String firstInvoiceNumber() throws IOException {
    Rectangle invoiceRectangle = new Rectangle(176, 176, 100, 18);
    String headerTextResult = "";
    for (PDPage pd : getPages()) {
        headerTextResult = StripByArea(pd, invoiceRectangle);
        if(!"".equals(headerTextResult)) {
            break;
        }
    }
    return headerTextResult;
}

【讨论】:

  • 谢谢你,我不知道发生了什么事,我当时根本想不到,我的测试现在顺利通过了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 2013-07-15
相关资源
最近更新 更多