今天说说java中的pdf读取,实话说,这是一个很恼人的任务。现在网络上的pdf各种各样,分析出来的文本也是千差万别,目前最流行的jar包pdfbox也只能做到把文字分析出来,并无法很好的控制分析的顺序,格式,字体等信息。(也许可以,是我对pdfbox了解还不够,如果是这样的话,大家一定要告诉我~先谢过了哈。)这给后续的工作带来了很大的麻烦。比如我想提取pdf的一些关键词或标题等有用信息,而分析出来的文本大多没有规律可言,甚至不同pdf分析的顺序也不一样,有些分析出来第一行是标题,有些标题要到第十行甚至更靠后,总体说来这个任务远远没有达到我之前的预期。这里介绍一下,一个为了和大家交流一下,更重要的目的在于向各位高手们学习,看看大家是否有更好的办法来处理pdf的信息,而不光单单是读取pdf的字符串。
pdfbox的下载和配置我就不多说了,就跟加别的jar包没有区别。
下面直接上代码。
代码很简单,但是分析出来的内容也让人很抓狂,刚才说过了,什么格式的都有,甚至有些英文pdf分析出来词与词之间没有空格……有些又每个字母之间有空格,这到底是为什么呢?请教各位。
publicvoidget(String pdfPath)throwsException {
InputStream input=null;
File pdfFile=newFile( pdfPath );
PDDocument document=null;try{
input=newFileInputStream( pdfFile );//加载 pdf 文档PDFParser parser=newPDFParser(input);
parser.parse();
document=parser.getPDDocument();//获取内容信息PDFTextStripper pts=newPDFTextStripper();
String content="";try{
content=pts.getText( document );
}catch(Exception e)
{throwe;
}
System.out.println(content);
}catch(Exception e)
{throwe;
}finally{if(null!=input )
input.close();if(null!=document )
document.close();
}
}