【问题标题】:Java PDFBox, extract data from a particular line of a tableJava PDFBox,从表格的特定行中提取数据
【发布时间】:2015-08-10 17:02:05
【问题描述】:

我有一个小问题,你一定会在 30 秒内解决! ;-)

我尝试阅读 .PDF 时间表的特定行。

示例:

New York:   06:30  /  07:00  /  10:15  /  12:30

Boston:     07:30  /  08:00  /  11:15  /  01:30

Chicago:    08:30  /  09:00  /  12:15  /  02:30

我参考了那个topic并尝试调整它,但它不起作用!

如果我理解行尾的注释

String lines[] = text.split("\\r?\\n"); // give you all the lines separated by new line

在我的情况下,String lines[] = text.split("Boston"); 应该检索所有波士顿列,但事实并非如此。

那么我怎样才能检索所有波士顿时间(07:30、08:00、11:15、01:30 等)?

任何帮助将不胜感激。

编辑:

我显然是在谈论原生 pdfbox 函数

否则,我当然可以逐行分析从 PDF 文件中提取的文本,但我想它不会安静地优化/快速。

【问题讨论】:

    标签: java pdfbox text-extraction


    【解决方案1】:

    如果我理解行尾的注释

    String lines[] = text.split("\\r?\\n"); // give you all the lines separated by new line
    

    在我的情况下,String lines[] = text.split("Boston"); 应该检索所有波士顿列,但事实并非如此。

    不,您的操作会在每次出现字符串“波士顿”时拆分 text。因此,在您的情况下,它会产生两个字符串

    New York:   06:30  /  07:00  /  10:15  /  12:30
    

    :     07:30  /  08:00  /  11:15  /  01:30
    
    Chicago:    08:30  /  09:00  /  12:15  /  02:30
    

    那么我怎样才能检索所有波士顿时间(07:30、08:00、11:15、01:30 等)?

    String text 中搜索子字符串“Boston:”,获取以下子字符串直到下一个行尾,然后将其拆分为斜线字符。

    我说的显然是原生的 pdfbox 函数

    没有。您首先讨论了split,它是Java String 类的一个方法,而您提出的任务是Java 中的纯字符串分析。

    如果您谈论的是 Pdfbox 函数,您会专注于自定义 PdfTextStripper

    由于在提取文本之前您不知道波士顿线在哪里,因此在提取文本之前几乎什么都做不了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-11-25
      • 2016-05-30
      • 1970-01-01
      • 2015-02-18
      • 1970-01-01
      • 2013-10-24
      • 1970-01-01
      相关资源
      最近更新 更多