|
lucene只能对纯文本文件进行索引。所以要对pdf文件进行索引的话,必须先对pdf进行文本抽取。网上查到的有两种方法,其实就是两种工具了。一种是pdfbox,一种是xpdf。当然xpdf的那种方法只是运行了xpdf这个软件来实现的,并不是基于java的。使用pdfbox当然是更好的选择了。但在网上搜索几乎所有的论坛上都说pdfbox对中文支持不好,我刚开始也不敢用,当一碰到乱码就转去用xpdf,结构xpdf那个配置更麻烦,我怎么也弄不好。又转回来用pdfbox发现现在的版本,pdfbox是能很好的支持中文的。我用的版本是PDFBox-0.7.3,用这个来抽取文本时需要PDFBox-0.7.3.jar这个jar文件,但我经过试验,只有这个包不能完全处理中文问题,老出现问题。我试着又配置了一个包,就是external文件夹下的FontBox-0.1.0-dev.jar,把这个包也导入,中文问题就能够解决了。下面是使用方法:
刚开始我在网上找了一段代码,能够抽取文本,但老有个pdfdocument不能关闭的问题,这个问题困扰了我好久,那天一直在电脑旁从晚上坐到早上五点,终于解决了。原来pdfdocument通过parser的方法创建的就有那个不能关闭的问题,后来改为上面代码,没问题了
|