山那边是海 发表于 2015-1-18 11:26:45

发布一篇Java抽取Office、PDF的四件刀兵

进而能拉拢大多数程序员用windows产品。并且从net网页编程网页编程AJAX可以跨平台这一点上,间接证明了我们的推断,至少证明了微软做过这方面的研究。所以如果哪一天突然听说了.net网页编程可以跨平台了,那么请不要吃惊,如果这一天真的到来,java就到了真正和.net网页编程决战的时刻。因为不到万不得以的时候微软是不会推出跨平台的.net网页编程的,如果跨平台的.net网页编程还不足以对抗java的话,那么微软还剩的手段就是开源了,呵呵。
良多人问到怎样抽取word、excel、pdf等文件,在这里我总结一下抽取word、pdf的几种办法。
1、用jacob.
实在jacob是一个bridage,毗连java和com大概win32函数的一其中间件,jacob其实不能间接抽取word,excel等文件,必要本人写dll哦,不外已无为你写好的了,就是jacob的作者一并供应了。
jacob下载: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:        est.doc";
StringtpFile="c:        emp.htm";
StringotFile="c:        emp.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).toDispatch();
Dispatch.invoke(doc,"SaveAs",Dispatch.Method,newObject[]{tpFile,newVariant(8)},newint);
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包: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);
}
}
<p>
到时我们不用学struts,不用学spring,不用学Hibernate,只要能把jsf学会了,完全可以替代所有的框架,包括AJAX,都知道AJAX并不是新技术,虽说我没深入学习jsf但我认为jsf应该已经能通过其它技术替代AJAX,实现无缝刷新。

莫相离 发表于 2015-1-21 06:54:16

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

小女巫 发表于 2015-1-25 15:14:28

Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。

精灵巫婆 发表于 2015-1-27 05:05:41

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

谁可相欹 发表于 2015-1-28 08:21:56

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

再见西城 发表于 2015-1-31 18:00:34

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

山那边是海 发表于 2015-2-4 09:56:08

如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。

乐观 发表于 2015-2-6 00:31:14

你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?

活着的死人 发表于 2015-2-9 07:45:45

在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。

灵魂腐蚀 发表于 2015-2-23 12:55:20

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

飘飘悠悠 发表于 2015-2-27 20:12:32

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

因胸联盟 发表于 2015-3-9 12:41:03

一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从

老尸 发表于 2015-3-11 18:05:35

你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。

愤怒的大鸟 发表于 2015-3-13 01:11:36

Java是一种计算机编程语言,拥有跨平台、面向对java

admin 发表于 2015-3-20 08:50:41

J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
页: [1]
查看完整版本: 发布一篇Java抽取Office、PDF的四件刀兵