除了 pdfbox 和 poi 还调研了另外一些开源项目,并做了一些简单验证。
DF文本提取的库
一、iText: 只支持pdf的制作;
二、iTextSharp: iText 的 C#版本,支持简单的导出;---未验证
三、PDFClown: 作者在持续更新,目前最高版本 0.1.0 , 用提供的jar包做了个demo;
验证结论:支持中文,繁体,处理效果 同 pdfbox 和xpdf,某些字还是无法提取;
有bug,输入某些文件,程序报错;
四、JPedal : 提供java库,官方说法:免费库只有30天使用期,支持文本导出;未验证
五、PDFjet 动态生成PDF文档的Java类库,有商业版和开源版两种,开源版功能较弱,对文本仅有部分功能,不提供文本提取接口;
六、ICEPdf 还在不断更新,最新版本是 4.2, 用提供的jar包做了个dmeo;
验证结论:支持中文简体、繁体;简体效果同pdfbox,xpdf,效率也接近;
对某个繁体文档的支持比较糟糕,格式混乱,其他如乱码现象,同pdfbox 和 xpdf;
office 文本提取调研:
jacob 只能用于windows平台, 用java封装了对 com component 和 win32 lib 的调用,可以操作office文档;
POI 是微软和apache 合作开发的项目,没有找到更好的解析office 文件的库;
大部分都是基于POI的二次封装,比如 tm-extractors
开源全文搜索引擎的文本提取调研:
JDesktopSearch 是一个基于Apache Lucene实现的桌面搜索引擎。支持 索引HTML、XML、OpenOffice、MS Word和PDF文档;使用了tm-extractors poi 和 pdfbox;
DocSearcher 是一个文档全文搜索工具;基于LUCENE、 POI、 PDFBOX的
DocFetcher 是一个桌面搜索工具类似于Google Desktop Search ;基于LUCENE POI PDFBOX
Xinco DMS 是一个基于Web-Service的消息和文档管理系统;基于 LUCENE
Aperture 支持搜索全文本内容与元数据;使用 POI PDFBOX;
上面提到的几个全文搜索的项目,都是使用的 poi或者 jacob pdfbox,直接提取出来文本 ,没做其他处理