java读取pdf文件内容

 java读取pdf文件内容

         在java中要读取pdf文件内容,我们可以借助第三方软件实现。常用的是xpdf,本文就简单介绍在linux下如何安装xpdf,及在java中如何利用xpdf读取pdf文件内容。
一.安装xpdf
       在fc系列下,不用安装,可以直接yum,但是笔者建议还是下载安装的好,因为笔者曾经碰到过这样的问题,客户服务器上的xpdf是yum安装的,有一些特殊的pdf文件就无法预览,但是将yum安装的xpdf卸载,然后下载xpdf安装程序,再重新安装后,就可以了。
1.下载
ok,我们需要下载的xpdf安装包主要有三个:
2.安装部署
(1)进入下载目录,将主程序解压至/usr,也可以是其他地方,根据个人情况而定。
# tar zvfx xpdf- 3 . 01pl2-linux . tar . gz -C  / usr
# cd  usr
然后将其重命名,这样看起来简单点
mv xpdf- 3 . 01pl2-linux /  xpdf
(2)建立中文支持。回到下载目录,依次执行:
# tar zvfx xpdf-chinese-simplified . tar . gz -C  / usr / xpdf
# mv   / usr / xpdf / xpdf-chinese-simplified  / usr / xpdf / chinese-simplified
# tar zvfx xpdf-chinese-traditional . tar . gz -C  / usr / xpdf
# mv   / usr / xpdf / xpdf-chinese-traditional  / usr / xpdf / chinese-traditional
(3)配置环境
# vi  / etc / bashrc
增加如下内容
export PATH=/usr/xpdf/:$PATH
确保重启机器后,在控制台输入xpdf不会提示找不到命令或文件即可。
(4)资源配置
# cd   / usr / xpdf
# cp sample-xpdfrc xpdfrc
# vi xpdfrc
*在文件开始处增加如下内容(将/usr/xpdf替换为xpdf的实际路径)*
# ----- begin Chinese Simplified support package  ( 2004 -jul- 27 )
cidToUnicode Adobe-GB1 
" /usr/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode "
unicodeMap         ISO-
2022 -CN  " /usr/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap "
unicodeMap         EUC-CN 
" /usr/xpdf/chinese-simplified/EUC-CN.unicodeMap "
unicodeMap         GBK 
" /usr/xpdf/chinese-simplified/GBK.unicodeMap "
cMapDir Adobe-GB1 
" /usr/xpdf/chinese-simplified/CMap "
toUnicodeDir 
" /usr/xpdf/chinese-simplified/CMap "
# displayCIDFontTT Adobe-GB1  / usr /..../ gkai00mp . ttf
# -----  end  Chinese Simplified support package
# ----- begin Chinese Traditional support package  ( 2004 -jul- 27 )
cidToUnicode Adobe-CNS1 
" /usr/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode "
unicodeMap Big5 
" /usr/xpdf/chinese-traditional/Big5.unicodeMap "
unicodeMap Big5ascii 
" /usr/xpdf/chinese-traditional/Big5ascii.unicodeMap "
cMapDir Adobe-CNS1 
" /usr/xpdf/chinese-traditional/CMap "
toUnicodeDir 
" /usr/xpdf/chinese-traditional/CMap "
# displayCIDFontTT Adobe-CNS1  / usr /..../ bkai00mp . ttf
# -----  end  Chinese Traditional support package
然后再执行:
# cp xpdfrc  / usr / local / etc /
好了,到这里我们也就安装完成了。下面介绍如何利用xpdf读取pdf文件的内容
二.利用xpdf读取pdf文件的内容
方法很简单,利用著名的Runtime.getRuntime()即可,如下:
     /**
     * 
@param filePath  pdf文件路径
     * 
@return
     
*/

    
public  String getPdfContent(String filePath) {
        String excute
="pdftotext";

        String[] cmd
=new String[]{excute, "-enc""UTF-8""-q", filePath,"-"};
        Process p
=null;
        
try {
            p
=Runtime.getRuntime().exec(cmd);
        }
 catch (IOException e) {
            e.printStackTrace();
        }


        BufferedInputStream bis
=new BufferedInputStream(p.getInputStream());

        InputStreamReader reader
=null;

        
try {
            reader
=new InputStreamReader(bis,"UTF-8");
        }
 catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }


        StringBuffer sb
=new StringBuffer();

        
try {
            BufferedReader br 
= new BufferedReader(reader);
            String line 
= br.readLine();            
            sb 
= new StringBuffer();
            
while (line != null{
                sb.append(line);
                sb.append(
" ");
                line 
= br.readLine();
            }

        }
 catch (Exception e) {
            e.printStackTrace();
        }

        
        
return sb.toString();
    }
  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值