java读取pdf⽂件内容
java读取pdf⽂件内容
在java中要读取pdf⽂件内容,我们可以借助第三⽅软件实现。常⽤的是xpdf,本⽂就简单介绍在linux下如何安装xpdf,及在java中如何利⽤xpdf读取pdf⽂件内容。
⼀.安装xpdf
⼀.安装xpdf
在fc系列下,不⽤安装,可以直接yum,但是笔者建议还是下载安装的好,因为笔者曾经碰到过这样的问题,客户服务器上的xpdf是yum安装的,有⼀些特殊的pdf⽂件就⽆法预览,但是将yum安装的xpdf卸载,然后下载xpdf安装程序,再重新安装后,就可以了。
1.下载
ok,我们需要下载的xpdf安装包主要有三个:
主程序:
简体中⽂⽀持:
繁体中⽂⽀持:
2.安装部署
(1)进⼊下载⽬录,将主程序解压⾄/usr,也可以是其他地⽅,根据个⼈情况⽽定。
#tarzvfxxpdf-3.-C/usr
#cd usr
然后将其重命名,这样看起来简单点
mvxpdf-3.01pl2-linux/xpdf
(2)建⽴中⽂⽀持。回到下载⽬录,依次执⾏:
#-C/usr/xpdf
#mv/usr/xpdf/xpdf-chinese-simplified/usr/xpdf/chinese-simplified
#-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/..../f
#-----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/..../f
#-----end ChineseTraditionalsupportpackage
然后再执⾏:
#cpxpdfrc/usr/local/etc/
好了,到这⾥我们也就安装完成了。下⾯介绍如何利⽤xpdf读取pdf⽂件的内容
⼆.利⽤xpdf读取pdf⽂件的内容
⼆.利⽤xpdf读取pdf⽂件的内容
⽅法很简单,利⽤著名的Runtime()即可,如下:
/***/ /**
*@param filePathpdf⽂件路径
*@return
*/
public StringgetPdfContent(StringfilePath) ... {
Stringexcute="pdftotext";
String[]cmd=new String[]...{excute,"-enc","UTF-8","-q",filePath,"-"}; Processp=null;
<{
Runtime().exec(cmd);
}catch(IOExceptione)...{
e.printStackTrace();
}
BufferedInputStreambis=new InputStream());
InputStreamReaderreader=null;
<{
reader=new InputStreamReader(bis,"UTF-8");
}catch(UnsupportedEncodingExceptione1)...{
e1.printStackTrace();
}
StringBuffersb=new StringBuffer();
<{
linux怎么读取文件内容BufferedReaderbr=new BufferedReader(reader);
adLine();
sb=new StringBuffer();
while(line!=null)...{
sb.append(line);
sb.append(" ");
adLine();
}
}catch(Exceptione)...{
e.printStackTrace();
}
String();
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论