如何从格式错误的PDF中提取表格?

时间:2015-04-22 14:23:11

标签: pdf data-extraction

我的客户需要从会计数据库中获取名称,姓氏,DOB的CSV。

问题是,他们的会计软件是在云端" (因此,在其他人的计算机上,并且可以从世界上的任何人那里免费访问),所有这些webapp都可以生成格式非常糟糕的欢迎卡pdf",就像这样

hi <newline>
<lots of spaces>my name is %name% <lots of spaces> %surname%
<lots of newlines and spaces to simulate text alignment to the right>I was born in %dob
<newpage>

所以,我所能获得的是一篇500页的PDF文件,其内容无法使用。

有没有办法从这样的文件中提取数据?

2 个答案:

答案 0 :(得分:2)

重要的是要知道您是否必须多次执行此操作,或者只需执行一次到一个500页的文件。我只假设一次。

在这种情况下,将PDF转换为XML(如果可能的话)或文本文件(许多转换器可用 - 只是谷歌)。

然后重要的是要知道所有'记录'是否以相同的方式格式化 - 格式也是如此: .... firstname ... lastname ... dob ... addressline1 .... (其中......是你不想要的东西)

是否总有'标签'或'标签'告诉您下一件事是'地址第1行',或者您是否错过了价值?

如果结构始终相同,并且您可以判断该记录中是否有值,则您有机会编写正则表达式以将其转换为合适的格式。否则会非常困难,但你可能会收获很多(如果不是全部)信息。

答案 1 :(得分:1)

我做到了!感谢您的提示,这就是我将无用的PDF变为有用的CSV的方式:

  1. 我使用cloudconvert.com
  2. 将PDF转换为TXT
  3. 我通过cat -A
  4. 观看了该文件的效果
  5. 我注意到每个有用数据之前都有换行符
  6. 我注意到每个页面都以FORM FEED字符结束
  7. 我用;
  8. 替换了每个换行符
  9. 我用换行符替换每个FORM FEED字符
  10. 我在Libreoffice中导入了(新制作的)CSV并删除了无用的列