java讀取pdf檔案內容

來源:互聯網
上載者:User
 java讀取pdf檔案內容

         在java中要讀取pdf檔案內容,我們可以藉助第三方軟體實現。常用的是xpdf,本文就簡單介紹在linux下如何安裝xpdf,及在java中如何利用xpdf讀取pdf檔案內容。
一.安裝xpdf       在fc系列下,不用安裝,可以直接yum,但是筆者建議還是下載安裝的好,因為筆者曾經碰到過這樣的問題,客戶服務器上的xpdf是yum安裝的,有一些特殊的pdf檔案就無法預覽,但是將yum安裝的xpdf卸載,然後下載xpdf安裝程式,再重新安裝後,就可以了。
1.下載
ok,我們需要下載的xpdf安裝包主要有三個:主程式:ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.01pl2-linux.tar.gz
簡體中文支援:ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
繁體中文支援:ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-traditional.tar.gz

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();
    }
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.