阅读PDF文件以获得结构化格式的表格数据,

时间:2009-11-25 13:47:26

标签: c# pdf itextsharp file-read

我必须阅读一个pdf文件,其中包含一个包含多个列的表。使用iTextSharp我能够读取文件,但我得到一堆非格式化的文本。我无法构建数据,因此我可以插入数据库。

有什么建议吗?

3 个答案:

答案 0 :(得分:1)

除非其结构化文本没有标记来显示列。像PdfBox这样的工具会让'猜测'尝试提取表格。

有一篇文章解释了为什么文本提取在http://pdf.jpedal.org/java-pdf-blog/bid/12670/PDF-text

时非常困难

答案 1 :(得分:0)

如果我理解正确,pdf文本是按位置存储的,因此它没有行或列的概念。这意味着您必须根据您从不同列中读取的“可能性”来使用启发式算法。

您可以尝试通过比较单词之间的空间量来做到这一点。 (我不熟悉ITextSharp界面所以请原谅我,如果我提到它不具备的东西......我大多熟悉pdfNet。

刚出现的另一个想法是,如果文本有视觉提示,例如 vertical 行分隔列。如果是这种情况,那么能够提出启发式方法来确定文本是否在列行的左侧或右侧。

...

然而,最好的办法,,如果可能的话,是以更加数据库友好的格式获取数据。从长远来看,这可能会减少心痛。

- 杰森

答案 2 :(得分:0)

我的结论是没有直接的方式来做到这一点。至少以表格格式读取数据。我尝试过马克提供的建议,但根据我的要求似乎不可行。