java讀取pdf文件內容
在java中要讀取pdf文件內容,我們可以借助第三方軟件實現。常用的是xpdf,本文就簡單介紹在linux下如何安裝xpdf,及在java中如何利用xpdf讀取pdf文件內容。一.安裝xpdf
在fc系列下,不用安裝,可以直接yum,但是筆者建議還是下載安裝的好,因為筆者曾經碰到過這樣的問題,客戶服務器上的xpdf是yum安裝的,有一些特殊的pdf文件就無法預覽,但是將yum安裝的xpdf卸載,然后下載xpdf安裝程序,再重新安裝后,就可以了。
1.下載
ok,我們需要下載的xpdf安裝包主要有三個:
(1)進入下載目錄,將主程序解壓至/usr,也可以是其他地方,根據個人情況而定。
#
tarzvfxxpdf-
3
.
01pl2-linux
.
tar
.
gz-C
/
usr
#
cd
usr
然后將其重命名,這樣看起來簡單點
mvxpdf-
3
.
01pl2-linux
/
xpdf
(2)建立中文支持。回到下載目錄,依次執行:
#
tarzvfxxpdf-chinese-simplified
.
tar
.
gz-C
/
usr
/
xpdf
#
mv
/
usr
/
xpdf
/
xpdf-chinese-simplified
/
usr
/
xpdf
/
chinese-simplified
#
tarzvfxxpdf-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
#
cpsample-xpdfrcxpdfrc
#
vixpdfrc
*在文件開始處增加如下內容(將/usr/xpdf替換為xpdf的實際路徑)*
#
-----beginChineseSimplifiedsupportpackage
(
2004
-jul-
27
)
cidToUnicodeAdobe-GB1
"
/usr/xpdf/chinese-simplified/Adobe-GB1.cidToUnicode
"
unicodeMapISO-
2022
-CN
"
/usr/xpdf/chinese-simplified/ISO-2022-CN.unicodeMap
"
unicodeMapEUC-CN
"
/usr/xpdf/chinese-simplified/EUC-CN.unicodeMap
"
unicodeMapGBK
"
/usr/xpdf/chinese-simplified/GBK.unicodeMap
"
cMapDirAdobe-GB1
"
/usr/xpdf/chinese-simplified/CMap
"
toUnicodeDir
"
/usr/xpdf/chinese-simplified/CMap
"
#
displayCIDFontTTAdobe-GB1
/
usr
/..../
gkai00mp
.
ttf
#
-----
end
ChineseSimplifiedsupportpackage
#
-----beginChineseTraditionalsupportpackage
(
2004
-jul-
27
)
cidToUnicodeAdobe-CNS1
"
/usr/xpdf/chinese-traditional/Adobe-CNS1.cidToUnicode
"
unicodeMapBig5
"
/usr/xpdf/chinese-traditional/Big5.unicodeMap
"
unicodeMapBig5ascii
"
/usr/xpdf/chinese-traditional/Big5ascii.unicodeMap
"
cMapDirAdobe-CNS1
"
/usr/xpdf/chinese-traditional/CMap
"
toUnicodeDir
"
/usr/xpdf/chinese-traditional/CMap
"
#
displayCIDFontTTAdobe-CNS1
/
usr
/..../
bkai00mp
.
ttf
#
-----
end
ChineseTraditionalsupportpackage
然后再執行:
#
cpxpdfrc
/
usr
/
local
/
etc
/
好了,到這里我們也就安裝完成了。下面介紹如何利用xpdf讀取pdf文件的內容
二.利用xpdf讀取pdf文件的內容
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.安裝部署
簡體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
繁體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-traditional.tar.gz
(1)進入下載目錄,將主程序解壓至/usr,也可以是其他地方,根據個人情況而定。








export PATH=/usr/xpdf/:$PATH
確保重啟機器后,在控制臺輸入xpdf不會提示找不到命令或文件即可。
(4)資源配置





















方法很簡單,利用著名的Runtime.getRuntime()即可,如下:
/**
*
@param
filePathpdf文件路徑
*
@return
*/
public
StringgetPdfContent(StringfilePath)
{
Stringexcute
=
"
pdftotext
"
;
String[]cmd
=
new
String[]
{excute,
"
-enc
"
,
"
UTF-8
"
,
"
-q
"
,filePath,
"
-
"
}
;
Processp
=
null
;
try
{
p
=
Runtime.getRuntime().exec(cmd);
}
catch
(IOExceptione)
{
e.printStackTrace();
}
BufferedInputStreambis
=
new
BufferedInputStream(p.getInputStream());
InputStreamReaderreader
=
null
;
try
{
reader
=
new
InputStreamReader(bis,
"
UTF-8
"
);
}
catch
(UnsupportedEncodingExceptione1)
{
e1.printStackTrace();
}
StringBuffersb
=
new
StringBuffer();
try
{
BufferedReaderbr
=
new
BufferedReader(reader);
Stringline
=
br.readLine();
sb
=
new
StringBuffer();
while
(line
!=
null
)
{
sb.append(line);
sb.append(
"
"
);
line
=
br.readLine();
}
}
catch
(Exceptione)
{
e.printStackTrace();
}
return
sb.toString();
}










































更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
