我想提取PDF文件中的数据,并以CSV/Excel工作表的格式显示。我知道这可以使用java中的Tika库来完成。但是,我确实找到了如何将数据提取为简单文本的解决方案,但我想知道如何将其存储在excel表中。
如果有人以前做过这种类型的工作,那么请帮助我。
第一部分(也是最难的部分)是解析原始数据并将其解释为表。ApacheTika将为您提供xhtml表示(或使用SAX事件调用您自己的处理程序),但它通常不会为您构建表。从pdf文件,我的意思是,因为pdf本身并不是表格格式。
因此,您必须获取Tika生成的段落,将它们拆分,并将生成的单元格传递给某个csv/xls/xlsx
编写器。如果你在pdf中有一些常规的表(每行一行,干净的单元格逻辑分隔等),它可能会起作用。当然,它看起来像是解析纯文本。
如果我不能工作,您将不得不使用pdf解析器(如ApachePDFBox)并尝试解释其输出。
第二部分(输出)很简单。如果csv/ssv/tsv
适合您,请使用您喜欢的库来生成它(我可以推荐Apache commons csv)。但考虑到MS Excel需要UTF-8和UTF-16 csv的BOM,才能理解该文件不是单字节编码的(如CP-1252等)。
如果您想要Excel xls
或xlsx
格式,只需使用Apache POI即可编写。