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

How can I extract a table from a badly formatted PDF?

我的客户需要从他们的会计数据库中获取包含姓名、出生日期的 CSV。

问题是,他们的会计软件是 "in the cloud"(因此,在别人的电脑上,世界上任何人都可以免费访问),而这个 webapp 所能做的就是生成一个格式非常糟糕的 "welcome card 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,其中包含这些无法使用的内容。

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

重要的是要知道对于一个 500 页的文件您是必须多次执行此操作还是只执行一次。我只假设一次。

在这种情况下,将 PDF 转换为 XML(如果可能)或文本文件(许多转换器可用 - 仅 google)。

然后重要的是要知道所有 'records' 的格式是否相同 - 格式也是如此: .... 名字...姓氏...dob...addressline1.... (哪里...是你不想要的东西)

是否总是有 'labels' 或 'tags' 告诉您下一个是 'address line 1' 或者如果遗漏了一个值,您能告诉吗?

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

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

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