`
ypluck
  • 浏览: 77693 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

JACOB解析WORD的理解

    博客分类:
  • JAVA
阅读更多
最近因一个项目需要通过上传后解析WORD里面的TABLE,弄的我焦头烂额。。。

一。先说说ComThread.InitMTA(true)和ComThread.InitMTA()的区别吧,看上去这两个方法的使用是一样的,但实际上还是不一样。我的英语不是很好,从文章上面我的理解是:前者实际上是执行一个主的单线程(Main InitSTA)。而后者在用的时候,需要先启用ComThread.startMainSTA();这两者的用法大概就是:
Thread 1:
ComThread.InitMTA(true); // a true tells JACOB to create a Main STA
...
...
ComThread.Release();
...
Thread 2:
ComThread.InitMTA();
...
...
ComThread.Release();
...
...
ComThread.quitMainSTA();

而后者的用法是:
ComThread.startMainSTA();
...
...
Thread 1:
ComThread.InitMTA();
...
...
ComThread.Release();
...
Thread 2:
ComThread.InitMTA();
...
...
ComThread.Release();
...
...
ComThread.quitMainSTA();

二。ComThread这个线程的资源JVM是回收不了的,所以在用完的时候一定要像C++一样,随用随释放。在这个系统中我就犯了一个错误,没有释放,结果导致一个功能只能用一次,其他的都用不了,呵呵,不过第一次接触这东西,虽说很老的东西了,不过用上去感觉还不错。

三。解析WORD
try
{
   app= new ActiveXComponent("Word.Application"); //启动word, 生成 一个ActiveXComponent 对象
app.setProperty("Visible", new Variant(false)); //设置文档可见性
docs = app.getProperty("Documents").toDispatch();      //获得document对象
doc = Dispatch.invoke(docs, "Open", Dispatch.Method,
new Object[]{filePath, new Variant(false), new Variant(true)} , new int[1]).toDispatch(); //打开word文件 
wordContent = Dispatch.get(doc, "Content").toDispatch(); // 取得word文件的内容

}
catch(Exception e)
{
   // closeWord();//此方法需要自己写
}
finally
{
   closeWord();//此方法需要自己写
}


public void closeWord() //关闭文档
{
try
{
Dispatch.call(doc,"close",new Variant(false)); //false表示关闭时,不保存文档; true 关闭时保存文档
}
catch(Exception e){ }
finally
{
try
{
app.invoke("Quit", new Variant[] {}); //退出word application对象
}
catch(Exception e)
{
System.out.println("退出时出错");
}
}
}


四。以上纯属于自己用的体验,只能给大家看看,不对的地方请大家指出来,谢谢
2
0
分享到:
评论

相关推荐

    jacob操作word小结

    ### 使用Jacob操作Word知识点总结 #### 一、Jacob简介与Word自动化操作背景 ...以上是使用Jacob操作Word的基本知识点和实现细节,通过这些内容可以帮助开发者更好地理解和运用Jacob进行Word自动化处理。

    java将word转图片转pdf_jacob.zip

    另一种是通过使用支持PDF生成的库,如iText或Apache POI,直接解析Word文档内容并重新构建为PDF格式。在这个项目中,由于提到了Jacob,很可能是采用了前一种方法,通过截图方式将Word内容转换为PDF,这要求开发者对...

    word转换成html程序及所需jacob架包

    转换过程通常包括解析Word文档的样式、图片和布局,并在HTML中重现它们。 5. **转换流程**: - 首先,程序通过JACOB加载Word文档。 - 然后,它遍历文档的各个部分,包括文本、段落、图片等。 - 接着,将Word的...

    com.jacob.jacob_1.10jar包下载.zip

    《深入理解Java Jacob库:解析com.jacob.jacob_1.10.jar包》 在Java编程中,有时候我们需要与Windows API进行交互,比如自动化办公文档处理、打印任务或者访问硬件设备等。这时,Java Jacob库(Java和COM Bridge)...

    jacob.jar及jacob-1.20-x64.dll文件

    **Jacob库介绍** Jacob(Java和COM Bridge)是一个开源Java库,它允许Java应用程序与Microsoft Windows...在使用过程中,理解Jacob的工作原理并合理配置环境,可以极大地提升Java应用在Windows平台上的功能和灵活性。

    jacob1.18,jacob1.19.zip两个版本

    本文将详细解析"jacob1.18"和"jacob1.19"这两个版本的特性、使用方法以及它们在Windows环境下的应用。 首先,我们来看"jacob1.18"版本。此版本是Jacob的一个较早发行版,它包含了一个名为"jacob.jar"的Java类库,这...

    Jacob1.9.zip

    Jacob是Java和COM之间的一个桥梁库...以上是对"Jacob1.9.zip"压缩包及其内容的详细解析,包括Jacob库的基本概念、使用方法以及可能的应用场景。如果你打算在Java项目中使用COM组件,理解并熟练掌握Jacob是非常有用的。

    jacob-1.15-M4.rar

    描述中提到“解析word 封装好了的接口 直接调用就ok”,这表明Jacob提供了一套封装好的API,使得Java开发者能够方便地操作Word文档,而无需深入理解COM接口的复杂性。通过Jacob,你可以创建、打开、编辑、保存Word...

    jacob-1.19资源下载(包含dll文件)

    对于描述中提到的“能够实现word文档从xml格式转化为docx格式”,这意味着Jacob提供了解析XML并将其转换为Microsoft Word的docx格式的能力。这是因为Word文档在.docx格式下实际上是基于ZIP的包装器,内含XML文件,...

    jacob以目录和段落分析读取Word文档(自己写的)

    在IT行业中,尤其是在文档处理和自动化领域...但根据标题和描述,我们可以推断这是一个关于如何使用Jacob库解析Word文档目录和段落的实例,涵盖了如何获取标题、处理段落文本以及如何扩展来处理表格和图片的基础知识。

    jacob源码加示例文档

    本文将围绕JACOB的源码解析、使用方法以及实际应用案例展开详细讨论。 一、JACOB源码解析 JACOB的核心在于它的JNI(Java Native Interface)实现,通过JNI,Java代码能够与本地的COM对象进行通信。源码中,我们...

    jacob-1_jacob-1.1864_jacob-1.18dll_jacob64_源码.zip

    《Jacob库:深入解析与应用》 Jacob库,全称为Java COM Bridge,是Java与COM组件之间通信的一个重要桥梁。这个库使得Java开发者能够利用Windows平台上的COM对象,实现跨语言交互,极大地拓宽了Java在Windows环境下...

    jacob-1.18源码

    **Jacob-1.18源码解析** Jacob(Java-COM Bridge)是一个开源项目,它为Java应用程序提供了与Microsoft COM(Component Object Model)组件交互的能力。这个库使得开发者能够在Java程序中调用COM对象,执行那些只能...

    jacob API 源码

    **Jacob API 源码详解** Jacob(Java COm Bridge)是一个开源的Java库,它提供了与...通过深入理解Jacob的源码,开发者可以更好地控制Office应用,实现复杂的文档处理任务,同时也能了解Java与本地系统交互的原理。

    jacob-1.14.3

    《Java解析Word——深入理解JACOB库》 在Java编程中,处理Microsoft Office文档,尤其是Word文档,是一项常见的需求。然而,Java本身并不直接支持与Office应用进行交互,这时就需要借助第三方库来实现。JACOB(Java...

    jacob-1.9(源码+jar+dll)

    源码的提供意味着我们可以深入理解转换的实现细节,包括但不限于文件的读取、内容解析、格式转换以及生成HTML的逻辑。 **JACOB库的核心功能:** 1. **COM接口**:JACOB使用Java Native Interface (JNI) 实现了对COM...

    word转html带目录结构的实现方式.docx

    - 使用Apache POI库可以解析Word文档的XML内容,识别出各个标题段落及其级别。例如,使用`XWPFDocument`类读取DOCX文件,然后遍历`XWPFParagraph`对象,检查其样式ID来确定是否为目录项。 - 生成HTML树目录的过程...

    jacob-1.18-x64.dll文件

    《深入解析jacob-1.18-x64.dll文件及其在Java中的应用》 jacob-1.18-x64.dll文件是Jacob库的一个重要组成部分,它为Java应用程序提供了一个桥梁,使得Java能够与Microsoft Windows平台上的本地DLL(动态链接库)...

    jacobgen与jacob的源码包

    《深入解析Jacob与Jacobgen:Java与COM交互的利器》 在IT行业中,尤其是在Windows平台上的应用程序开发中,有时我们需要将Java程序与COM组件进行交互,此时 Jacob库和Jacobgen工具就显得尤为重要。这两个工具是Java...

    java word转pdf jacob.jar、aspectjweaver.jar、poi、dom4j

    在Word转PDF的过程中,可能需要使用Dom4j来解析Word文档中的XML结构,以便理解和处理文档的样式、布局等信息。 5. **标签:“word转p 解决pdf显 pdf变宽显”**: 这个标签表明了转换过程中可能会遇到的问题,即...

Global site tag (gtag.js) - Google Analytics