java讀取pdf文件內(nèi)容
在java中要讀取pdf文件內(nèi)容,我們可以借助第三方軟件實(shí)現(xiàn)。常用的是xpdf,本文就簡(jiǎn)單介紹在linux下如何安裝xpdf,及在java中如何利用xpdf讀取pdf文件內(nèi)容。一.安裝xpdf
在fc系列下,不用安裝,可以直接yum,但是筆者建議還是下載安裝的好,因?yàn)楣P者曾經(jīng)碰到過(guò)這樣的問(wèn)題,客戶服務(wù)器上的xpdf是yum安裝的,有一些特殊的pdf文件就無(wú)法預(yù)覽,但是將yum安裝的xpdf卸載,然后下載xpdf安裝程序,再重新安裝后,就可以了。
1.下載
ok,我們需要下載的xpdf安裝包主要有三個(gè):
(1)進(jìn)入下載目錄,將主程序解壓至/usr,也可以是其他地方,根據(jù)個(gè)人情況而定。
#
tarzvfxxpdf-
3
.
01pl2-linux
.
tar
.
gz-C
/
usr
#
cd
usr
然后將其重命名,這樣看起來(lái)簡(jiǎn)單點(diǎn)
mvxpdf-
3
.
01pl2-linux
/
xpdf
(2)建立中文支持?;氐较螺d目錄,依次執(zhí)行:
#
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)配置環(huán)境
#
vi
/
etc
/
bashrc
增加如下內(nèi)容
export PATH=/usr/xpdf/:$PATH
確保重啟機(jī)器后,在控制臺(tái)輸入xpdf不會(huì)提示找不到命令或文件即可。
(4)資源配置
#
cd
/
usr
/
xpdf
#
cpsample-xpdfrcxpdfrc
#
vixpdfrc
*在文件開(kāi)始處增加如下內(nèi)容(將/usr/xpdf替換為xpdf的實(shí)際路徑)*
#
-----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
然后再執(zhí)行:
#
cpxpdfrc
/
usr
/
local
/
etc
/
好了,到這里我們也就安裝完成了。下面介紹如何利用xpdf讀取pdf文件的內(nèi)容
二.利用xpdf讀取pdf文件的內(nèi)容
1.下載
ok,我們需要下載的xpdf安裝包主要有三個(gè):
主程序:
ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.01pl2-linux.tar.gz
簡(jiǎn)體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
繁體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-traditional.tar.gz
2.安裝部署
簡(jiǎn)體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-simplified.tar.gz
繁體中文支持: ftp://ftp.foolabs.com/pub/xpdf/xpdf-chinese-traditional.tar.gz
(1)進(jìn)入下載目錄,將主程序解壓至/usr,也可以是其他地方,根據(jù)個(gè)人情況而定。








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





















方法很簡(jiǎn)單,利用著名的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();
}










































更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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