使用C#从PDF文件中读取表格

我想读取pdf文件中的表格,我有一个带有表格的pdf文件,在C#中使用哪个SDK来识别pdfs中的表格以及一些逐个单元格读取的机制?

任何人都可以建议,如果你知道任何识别pdf内表格的dll。

PDF文件格式中没有“表格”概念,因为它的矢量语法仅由处理路径(即线条,曲线,字体轮廓……)和采样内容(即位图图像)的简单基元组成。

然而,良好的启发式算法可以检测所谓的“表”表示的弱存在(即,尖端地,与内容混合的交叉线)。

iTextPdf可能就是你要找的东西。 我没有用它,但听到了非常好的东西。 此外,它是开源和免费(非商业用途),这总是很好。

我知道这是一个古老的问题,但有人可能需要它

“非常明显”的介绍:
PDF文件是图形对象(例如线条)和文本的流。 当渲染PDF时,人眼会理解由于它们之间的线条和文本而存在表格。

(我的)解决方案
从PDF阅读器(iTextSharp)开始,您需要:
1.读取线条(希望只有垂直和水平线条);
2.连接线(表的一行可以是几行,例如每个单元一行);
3.了解表格的位置(有时根据您的需要做出一些假设);
4.可选择查找表格外的文本(最好保留所有文本)并将其插入段落中;
5.在表格的单元格中插入文本

如果你需要一些已经开始编写的东西(为我的pdf工作)你可以在这里找到一些东西https://github.com/bubibubi/ExtractTablesFromPdf
它使用了iTextSharp的GPL版本。

PDFBox的

从IKVM.NET成功用于解析.NET中的PDF文档。

使用PDFBox解析PDF非常简单:

private static string parseUsingPDFBox(string filename) { PDDocument doc = PDDocument.load(filename); PDFTextStripper stripper = new PDFTextStripper(); return stripper.getText(doc); } 

我对项目需要同样的东西。 我的过程有点开销,但效果相当好。 当我把它打磨得更好时,我会发布它。 inheritance人的基本流程:

  • 使用libpdf将pdf转换为json
  • 导入json文件以获取带有坐标的文本字符串
  • 使用ghostscript将pdf转换为图像
  • 使用Aforge blobcounter获取表格单元格
  • 将细胞分组成表格
  • 使用单元格位置和大小来确定它包含哪些文本字符串