Java那些事之pdf读取

今天说说java中的pdf读取,实话说,这是一个很恼人的任务。现在网络上的pdf各种各样,分析出来的文本也是千差万别,目前最流行的jar包pdfbox也只能做到把文字分析出来,并无法很好的控制分析的顺序,格式,字体等信息。(也许可以,是我对pdfbox了解还不够,如果是这样的话,大家一定要告诉我~先谢过了哈。)这给后续的工作带来了很大的麻烦。比如我想提取pdf的一些关键词或标题等有用信息,而分析出来的文本大多没有规律可言,甚至不同pdf分析的顺序也不一样,有些分析出来第一行是标题,有些标题要到第十行甚至更靠后,总体说来这个任务远远没有达到我之前的预期。这里介绍一下,一个为了和大家交流一下,更重要的目的在于向各位高手们学习,看看大家是否有更好的办法来处理pdf的信息,而不光单单是读取pdf的字符串。

pdfbox的下载和配置我就不多说了,就跟加别的jar包没有区别。

下面直接上代码。

代码很简单,但是分析出来的内容也让人很抓狂,刚才说过了,什么格式的都有,甚至有些英文pdf分析出来词与词之间没有空格……有些又每个字母之间有空格,这到底是为什么呢?请教各位。

    public void get(String pdfPath) throws Exception {
        InputStream input 
= null;
        File pdfFile 
= new File( pdfPath );
        PDDocument document 
= null;
        
try
        {
            input 
= new FileInputStream( pdfFile );
            
//加载 pdf 文档
            PDFParser parser = new PDFParser(input);
            parser.parse();
            document 
= parser.getPDDocument();
            
//获取内容信息
            PDFTextStripper pts = new PDFTextStripper();
            String content 
= "";
            
try
            {
                content 
= pts.getText( document );
            }
            
catch(Exception e)
            {
                
throw e;
            }
            System.out.println(content);
    
        }
        
catch(Exception e)
        {
            
throw e;
        }
        
finally
        {
            
ifnull != input )
                input.close();
            
ifnull != document )
                document.close();
        }
    }
posted @ 2011-07-08 22:09  ~大器晚成~  阅读(11167)  评论(3编辑  收藏  举报