45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:java操作word pdf的四种武器介绍

java操作word pdf的四种武器介绍

2016-08-31 06:20:59 来源:www.45fan.com 【

java操作word pdf的四种武器介绍

1。用jacob.
其实jacob是一个bridage,连接java和com或者win32函数的一个中间件,jacob并不能直接抽取word,excel等文件,需要自己写dll哦,不过已经有为你写好的了,就是jacob的作者一并提供了。
jacob下载:java操作word pdf的四种武器介绍
http://www.matrix.org.cn/down_view.asp?id=13
下载了jacob并放到指定的路径之后(dll放到path,jar文件放到classpath),就可以写你自己的抽取程序了,下面是一个例子:
importjava.io.File;
importcom.jacob.com.*;
importcom.jacob.activeX.*;

publicclassFileExtracter{

publicstaticvoidmain(String[]args){

ActiveXComponentapp=newActiveXComponent("Word.Application");
StringinFile="c://test.doc";
StringtpFile="c://temp.htm";
StringotFile="c://temp.xml";
booleanflag=false;
try{
app.setProperty("Visible",newVariant(false));
Objectdocs=app.getProperty("document.").toDispatch();
Objectdoc=Dispatch.invoke(docs,"Open",Dispatch.Method,newObject[]{inFile,newVariant(false),newVariant(true)},newint[1]).toDispatch();
Dispatch.invoke(doc,"SaveAs",Dispatch.Method,newObject[]{tpFile,newVariant(8)},newint[1]);
Variantf=newVariant(false);
Dispatch.call(doc,"Close",f);
flag=true;
}catch(Exceptione){
e.printStackTrace();
}finally{
app.invoke("Quit",newVariant[]{});
}

}
}
2。用apache的poi来抽取word,excel。
poi是apache的一个项目,不过就算用poi你可能都觉得很烦,不过不要紧,这里提供了更加简单的一个接口给你:
下载经过封装后的poi包:java操作word pdf的四种武器介绍
http://www.matrix.org.cn/down_view.asp?id=14
下载之后,放到你的classpath就可以了,下面是如何使用它的一个例子:
importjava.io.*;
importorg.textmining.text.extraction.WordExtractor;
/**
*<p>Title:pdfextraction</p>
*<p>Description:email:chris@matrix.org.cn</p>
*<p>Copyright:MatrixCopyright(c)2003</p>
*<p>Company:Matrix.org.cn</p>
*@authorchris
*@version1.0,whousethisexampleplsremainthedeclare
*/

publicclassPdfExtractor{
publicPdfExtractor(){
}
publicstaticvoidmain(Stringargs[])throwsException
{
FileInputStreamin=newFileInputStream("c://a.doc");
WordExtractorextractor=newWordExtractor();
Stringstr=extractor.extractText(in);
System.out.println("theresultlengthis"+str.length());
System.out.println("theresultis"+str);
}
}

3。pdfbox-用来抽取pdf文件
但是pdfbox对中文支持还不好,先下载pdfbox:java操作word pdf的四种武器介绍
http://www.matrix.org.cn/down_view.asp?id=12
下面是一个如何使用pdfbox抽取pdf文件的例子:
importorg.pdfbox.pdmodel.PDdocument.
importorg.pdfbox.pdfparser.PDFParser;
importjava.io.*;
importorg.pdfbox.util.PDFTextStripper;
importjava.util.Date;
/**
*<p>Title:pdfextraction</p>
*<p>Description:email:chris@matrix.org.cn</p>
*<p>Copyright:MatrixCopyright(c)2003</p>
*<p>Company:Matrix.org.cn</p>
*@authorchris
*@version1.0,whousethisexampleplsremainthedeclare
*/

publicclassPdfExtracter{

publicPdfExtracter(){
}
publicStringGetTextFromPdf(Stringfilename)throwsException
{
Stringtemp=null;
PDdocument.nbsppdfdocument.null;
FileInputStreamis=newFileInputStream(filename);
PDFParserparser=newPDFParser(is);
parser.parse();
pdfdocument.nbsp=parser.getPDdocument.);
ByteArrayOutputStreamout=newByteArrayOutputStream();
OutputStreamWriterwriter=newOutputStreamWriter(out);
PDFTextStripperstripper=newPDFTextStripper();
stripper.writeText(pdfdocument.getdocument.),writer);
writer.close();
byte[]contents=out.toByteArray();

Stringts=newString(contents);
System.out.println("thestringlengthis"+contents.length+"");
returnts;
}
publicstaticvoidmain(Stringargs[])
{
PdfExtracterpf=newPdfExtracter();
PDdocument.nbsppdfdocument.nbsp=null;

try{
Stringts=pf.GetTextFromPdf("c://a.pdf");
System.out.println(ts);
}
catch(Exceptione)
{
e.printStackTrace();
}
}

}

4.抽取支持中文的pdf文件-xpdf
xpdf是一个开源项目,我们可以调用他的本地方法来实现抽取中文pdf文件。
下载xpdf函数包:java操作word pdf的四种武器介绍
http://www.matrix.org.cn/down_view.asp?id=15
同时需要下载支持中文的补丁包:java操作word pdf的四种武器介绍http://www.matrix.org.cn/down_view.asp?id=16
按照readme放好中文的patch,就可以开始写调用本地方法的java程序了
下面是一个如何调用的例子:
importjava.io.*;
/**
*<p>Title:pdfextraction</p>
*<p>Description:email:chris@matrix.org.cn</p>
*<p>Copyright:MatrixCopyright(c)2003</p>
*<p>Company:Matrix.org.cn</p>
*@authorchris
*@version1.0,whousethisexampleplsremainthedeclare
*/


publicclassPdfWin{
publicPdfWin(){
}
publicstaticvoidmain(Stringargs[])throwsException
{
StringPATH_TO_XPDF="C://ProgramFiles//xpdf//pdftotext.exe";
Stringfilename="c://a.pdf";
String[]cmd=newString[]{PATH_TO_XPDF,"-enc","UTF-8","-q",filename,"-"};
Processp=Runtime.getRuntime().exec(cmd);
BufferedInputStreambis=newBufferedInputStream(p.getInputStream());
InputStreamReaderreader=newInputStreamReader(bis,"UTF-8");
StringWriterout=newStringWriter();
char[]buf=newchar[10000];
intlen;
while((len=reader.read(buf))>=0){
//out.write(buf,0,len);
System.out.println("thelengthis"+len);
}
reader.close();
Stringts=newString(buf);
System.out.println("thestris"+ts);
}
}


 

本文地址:http://www.45fan.com/dnjc/70025.html
Tags: word 操作 Java
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部