相关疑难解决方法(0)

使用PDFBox解析PDF文件(尤其是表格)

我需要解析包含表格数据的PDF文件.我正在使用PDFBox提取文件文本以便稍后解析结果(String).问题是文本提取不像我预期的表格数据那样工作.例如,我有一个包含这样的表的文件(7列:前两个总是有数据,只有一个Complexity列有数据,只有一个Financing列有数据):

+----------------------------------------------------------------+
| AIH | Value | Complexity                     | Financing       |
|     |       | Medium | High | Not applicable | MAC/Other | FAE |
+----------------------------------------------------------------+
| xyz | 12.43 | 12.34  |      |                | 12.34     |     |
+----------------------------------------------------------------+
| abc | 1.56  |        | 1.56 |                |           | 1.56|
+----------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

然后我使用PDFBox:

PDDocument document = PDDocument.load(pathToFile);
PDFTextStripper s = new PDFTextStripper();
String content = s.getText(document);
Run Code Online (Sandbox Code Playgroud)

这两行数据将被提取如下:

xyz 12.43 12.4312.43
abc 1.56 1.561.56
Run Code Online (Sandbox Code Playgroud)

最后两个数字之间没有空格,但这不是最大的问题.问题是我不知道最后两个数字是什么意思:中,高,不适用?MAC /其他,FAE?我没有数字和列之间的关系.

我不需要使用PDFBox库,因此使用另一个库的解决方案很好.我想要的是能够解析文件并知道每个解析的数字意味着什么.

java pdf parsing tabular pdfbox

63
推荐指数
7
解决办法
9万
查看次数

解析PDF文档中的表格

此链接中的PDF(http://www.lenovo.com/psref/pdf/psref450.pdf)包含许多这样的表:

在此输入图像描述

我想以编程方式从这些表中提取数据和结构.

我尝试过的事情:使用PDF将PDF转换为HTML

  1. Tika:不幸的是,这些表被转换为空格分隔的段落 - 并且一些字符串包含空格,因此拆分它们是不可能的.
  2. Python的PDFMiner:由于缺少字体而返回了一个断言错误.我怀疑HTML与Tika的输出类似,但我需要用缺少的字体解决问题以确认这一点.
  3. 在线工具:我试过http://www.zamzar.com/和其他几个.该文件要么太大而无法处理(对于在线服务),要么生成错误.

我打算将PDF转换为HTML,然后使用BeautifulSoup解析它.

输出可以是JSON(例如,每个表一个对象),XML,或几乎任何维护结构的格式.

python pdf parsing pdfbox apache-tika

4
推荐指数
1
解决办法
2532
查看次数

标签 统计

parsing ×2

pdf ×2

pdfbox ×2

apache-tika ×1

java ×1

python ×1

tabular ×1