`
Nacdice
  • 浏览: 11544 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

(转载)java调用com组件操作word使用总结(jacob)(3)

阅读更多
1.由于应用程序配置不正确,不能启用dll文件;

解决:版本不对,换另一个版本试一下.

2. ERROR [http-8080-Processor25] - Servlet.service() for servlet FileUploaded threw exception

     java.lang.UnsatisfiedLinkError: no jacob-1.14.3-x86 in java.library.path

     at java.lang.ClassLoader.loadLibrary(Unknown Source)

     at java.lang.Runtime.loadLibrary0(Unknown Source)

     at java.lang.System.loadLibrary(Unknown Source)

将dll文件复制到tomcat\bin目录下重新启动tomcat5.5

3.使用过程中(将项目发布到Tomcat5下运行时)提示

java.lang.UnsatisfiedLinkError:

Native Library D:\Program Files\Apache Software Foundation\Tomcat 5.5\bin\jacob-1.14.3-x86.dll

already loaded in another classloader

解决:将%Tomcat 5.5%\webapps\XXXX\WEB-INF\lib\下的jacob.jar包剪切到%Tomcat 5.5%\shared\lib目录下(或删除).




五.自己改写WordBean类:

1.改写前你要知道VBA,熟悉怎样用VBA操作word;

2.将VBA操作改到java代码;要知道com.jacob.com.Dispatch可容纳任何VBA中的集合对象;

如:Dispatch paragraphs = Dispatch.get(doc, "Paragraphs").toDispatch(); // 将Paragraphs 集合对象赋给Dispatch对象;

3.使用VBA对象属性:

如:int paragraphCount = Dispatch.get(paragraphs, "Count").getInt(); //调用Dispatch.get()方法获取Paragraphs 集合对象的Count属性;

4.调用VBA对象方法:

在VBA帮助中我们找到Document 对象Close方法是这样声明的:

expression.Close(SaveChanges, OriginalFormat, RouteDocument)

expression   必需。该表达式返回以上的一个对象。

SaveChanges   Variant 类型,可选。指定保存文档的操作。可以是下列 WdSaveOptions 常量之一:wdDoNotSaveChanges、wdPromptToSaveChanges 或 wdSaveChanges。

OriginalFormat   Variant 类型,可选。指定保存文档的格式。可以是下列 WdOriginalFormat 常量之一:wdOriginalDocumentFormat、wdPromptUser 或 wdWordDocument。

RouteDocument   Variant 类型,可选。如果该属性值为 True,则将文档发送给下一个收件人。如果文档没有附加传送名单,则忽略该参数。


因些我们可在WordBean添加一个这样的方法关闭文档:

public void closeDocument(int val) {

Dispatch doc = Dispatch.call(documents, "Open", docPath).toDispatch();   //doc是Document对象,调用

Dispatch.call(doc, "Close", new Variant(val));   // val 0不保存修改 -1 保存修改 -2 提示是否保存修改,对应VBA中Document 对象Close方法的SaveChanges参数

doc = null;

}

你会注意到Dispatch类重载了很多call方法,这与VBA中方法基本相似有很多参数是缺省的:

你可还会注意到Dispatch还有个invoke方法其实它和call差不多也是调用VBA对象方法的,只参数的形式不同(我目前这样认为)

Dispatch还有很多方法调用都是为配合调用VBA对象的方法,我还没有时间深入的看,等都明白再补上这部分说明;



参考(自己Gooogle一下):

JAVA 深度控制 WORD;

Aspose.Words for Java 发布-操作word的工具

用Java操作Office 2007(http://blog.163.com/peigen_peigen/blog/static/2704780200863082444566/)

Java/Office2007 以往java程序员要访问office文档,往往要借助各种各样的com组件,jni是难以避免的,因为office文档(word、excel、ppt)是二进制存储的。但是在许多系统中都要用到office文档,这个java程序员带来了一定的麻烦。   随着office2007的出现,文档存储支持OpenXML,使得java程序读写office文档不用必须借助第三方控件。以word2007为例,文档存储为*.docx文件,这实际上是一个压缩文件,通过java的ZIPjar包、TAR jar包,都可以访问,可以使用100%纯java代码完成对word2007文件的读取、写入操作。   比较详细的一个例子如下:http://www.infoq.com/articles/cracking-office-2007-with-java,有兴趣的可以去参考一下。   另外,office文档操作也有很多其他方法,比如POI、j-Interop等第三方工具包。
分享到:
评论

相关推荐

    java调用com组件操作word使用总结

    java调用com组件操作word使用总结(jacob)

    如何利用Java-JACOB操作WORD文档

    使用JACOB允许任何JVM访问COM对象,从而使JAVA应用程序能够调用COM对象。如果你要对 MS Word、Excel 进行处理,JACOB 是一个好的选择。JACOB目前已经成为sourceforge...

    操作com组件的可以java直接调用vb的dll

    操作com组件的可以java直接调用vb的dll 或者直接操作word excel等程序

    JACOB jar 下载 ,方便java 操作office 软件

    com一般表现为dll或exe等二进制文件,像我们呆会会用到的jacob.dll文件这里说说为什么我们用java去操纵office(如:word)要使用com,而不直接 使用java去做? 首先,我们清楚office是建立在windows平台之上的,本身是...

    jacob.jar jacob.jar

    JACOB使得可以通过java调用微软com组件,例如ActivX object( word ,excel )

    word转换为pdf

    1、Java2Word是操作word的工具类,使用Jacod开源包调用word的com组件。 2、WordToPdf是使用Adobe Reader虚拟打印机实现打印word。 3、使用jacob技术调用2007自带的word转pdf工具,WordToPdfOffice2007是使用office...

    jacob-1.17

    jacob.jar,java和com组件间的桥梁,jacob-1.14.3-x64.dll文件。用java通过调用此jar相关的dll去操纵office(如:word)

    Jacob处理Word文档的方法

    在Java中调用Word的COM组件,使用它的方法来获取Word文档中的文本信息。

    使用Jacob来处理Word文档

    Jacob 是Java-COM Bridge...使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。Jacob下载的地址为:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368

    java将Word转换成PDF插件

    JACOB 一个 Java-COM 中间件。通过这个组件你可以在 Java 应用程序中调用 COM 组件和 Win32 程序库。

    jacob_1.9

    操作com组件的可以java直接调用vb的dll 或者直接操作word excel等程序

    jacob.jar下载

    jacob对java操作word文档提供了强大的api,它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库。它可运行在x86和支持32位和64位Java虚拟机 X64的环境。

    jacob.dll+jacob.jar

    Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。

    java猜数字源码-JacobMathType:JACOB是一个Java到微软的COM接口的桥梁。使用JACOB允许任何JVM访问COM对象,

    使用JACOB允许任何JVM访问COM对象,从而使JAVA应用程序能够调用COM对象。如果你要对 MS Word、Excel 进行处理,JACOB 是一个好的选择。JACOB目前已经成为sourceforge的一个开源项目,官网地址为,现在最新的版本是...

    jacob-1.19

    1.jacob最新版本 2.word转pdf 3.java调用com组件转pdf

    jacob.jar开发插件

    jacob 它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库,可以操作word

    巧用Java程序把Word转换成Html文件

    Jacob是Java和Windows下的Com桥,通过它我们可以在Java程序中调用COM组件。如果你的JDK是1.4,那你需要下载Jacob1.9的jni库才能正常运行,早期版本在JDK1.4下有些问题。

    jacob-1.14

    JACOB一个JAva-COM中间件.通过这个组件你可以在Java应用程序中调用COM组件和Win32 libraries。

    JAVA上百实例源码以及开源项目

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

Global site tag (gtag.js) - Google Analytics