`
雁栖湖
  • 浏览: 23716 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java操作Word——jacob

    博客分类:
  • Java
阅读更多
  1. 需要jacob.dll放在windows/system32下,或者放在%JAVA_HOME%/bin下,jacob.jar放在classpath下
  2. 一个简单的搜索例子:
    /**
    	 * 获取XXX
    	 * @param inFile word文档
    	 * @return
    	 */
    	public static List<String> getNo(String inFile) {
    		List<String> lNo = new ArrayList<String>();
    		ActiveXComponent wordApp = null;
    		Dispatch docs = null;
    		try {
    			ComThread.InitSTA();// 初始化com的线程
    			wordApp = new ActiveXComponent("Word.Application"); // 启动word
    			// Set the visible property as required.
    			Dispatch.put(wordApp, "Visible", new Variant(false));// //设置word可见
    			docs = wordApp.getProperty("Documents").toDispatch();// 所有文档窗口
    //			inFile = "d://testx.docx";
    			Dispatch doc = Dispatch.invoke(
    							docs,
    							"Open",
    							Dispatch.Method,
    							new Object[] { inFile, new Variant(false),
    									new Variant(false) },// 参数3,false:可写,true:只读
    							new int[1]).toDispatch();// 打开文档
    			Dispatch wordContent = Dispatch.get(doc, "Content").toDispatch(); // 取得word文件的内容
    			Dispatch paragraphs = Dispatch.get(wordContent, "Paragraphs")
    					.toDispatch(); // 所有段落
    			int paragraphCount = Dispatch.get(paragraphs, "Count").getInt();// 一共的段落数
    //			System.out.println("paragraphCount:" + paragraphCount);
    			for (int i = 1; i <= paragraphCount; i++) {
    				Dispatch paragraph = Dispatch.call(paragraphs, "Item",
    						new Variant(i)).toDispatch();
    				Dispatch paragraphRange = Dispatch.get(paragraph, "Range")
    						.toDispatch();
    				String paragraphContent = Dispatch.get(paragraphRange, "Text")
    						.toString();
    				if (paragraphContent.contains("abc")) {
    //					System.out.println(paragraphContent.length());
    					paragraphContent = paragraphContent.replace(" ", "");
    //					System.out.println("paragraphContent:"+paragraphContent);
    //					System.out.println(paragraphContent.length());
    					String no = paragraphContent.substring(paragraphContent.indexOf("abc"), paragraphContent.indexOf("abc") + 21);
    //					System.out.println("no:"+no);
    //					System.out.println(no.substring(no.indexOf("abc") + 7));
    					lNo.add(no.substring(no.indexOf("abc") + 7));
    				}
    			}
    		} catch(Exception e) {
    			e.printStackTrace();
    			throw new RuntimeException("发生系统错误!");
    		} finally {
    			if (docs != null) {
    				Dispatch.call(docs, "Close", new Variant(true));
    				docs = null;
    			}
    			if (wordApp != null) {
    				Dispatch.call(wordApp, "Quit");
    				wordApp = null;
    			}
    			ComThread.Release();// 释放com线程
    		}
    		return lNo;
    	}
     
  3. 附件:jacob.dll(x86、x64)、jacob.jar
分享到:
评论

相关推荐

    Java 实现word文件增加图片水印 jacob实现 用到的jar

    本篇将深入探讨如何使用Java和两个特定的库——iTextPDF与Jacob——来实现这一目标。 首先,iTextPDF是一个开源的Java库,专门用于创建、修改PDF文档。虽然标题提到的是Word文件,但iTextPDF通常用于处理PDF,不过...

    通过jacob实现word转为HTML

    "通过jacob实现word转为HTML"这个主题就是关于如何利用Java的一个库——Jacob来完成这项工作。Jacob是一个Java到COM桥接库,允许Java程序调用Windows COM组件,如Microsoft Office,从而实现对Office文档的操作。 ...

    windows下word转pdf所需要用到的jacob.jar包说明

    在Windows环境下将Word文档转换为PDF格式,常常会利用到Java的库——JACOB(Java COM Bridge)。JACOB是一个允许Java代码直接调用COM组件的库,它通过JNI(Java Native Interface)来实现这一功能。在这个场景下,...

    jacob_1.9.rar java调用activex

    Jacob的核心是一个动态链接库(DLL)文件——jacob.dll,它作为Java和COM之间的桥梁。在使用Jacob之前,需要将这个DLL文件放置在系统路径下的特定目录,通常是C:/Windows/System32,以便系统能够找到并加载这个组件...

    jacob-1.17-M2-x64和jaco.rar

    Jacob的核心在于一个动态链接库(DLL)文件——jacob-1.17-M2-x64.dll,以及与其配套的Java类库文件——jaco.jar。这两个文件是使用Jacob库进行开发必不可少的部分。 首先,我们来详细了解jacob-1.17-M2-x64.dll。...

    jacob-1.15-M3-x86.zip

    这时,一个强大的工具——Jacob,就显得尤为重要。Jacob全称为Java和COM桥接器(Java and COM Bridge),它允许Java应用程序调用Windows的COM组件,使得在Java中操作Word文档成为可能。 Jacob的核心是一个名为...

    jacob-1.19版本

    在jacob-1.19版本中,我们看到了针对不同处理器架构的两个动态链接库——jacob-1.19-x64.dll和jacob-1.19-x86.dll,分别适配64位和32位的Windows操作系统。 1. **JACOB的基本概念** - COM:是微软提出的一种组件...

    jacob.jar全包下载

    【标题】"jacob.jar全包下载"涉及的是Java与COM交互的一个重要工具——Jacob库。Jacob库(Java COM Bridge)是一个开源项目,它提供了一个Java到COM桥接,允许Java程序调用Windows上的COM组件,实现Java和COM对象...

    jacob-1.14.3

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

    JAVA 深度控制WORD带完整样例

    在Java中使用JACOB操作Word,首先要创建一个`ActiveXComponent`对象,这个对象代表了Word应用实例。例如: ```java import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; ActiveXComponent...

    jacob1.19.zip

    在Windows操作系统下,如果你已经安装了Microsoft Office,可以借助Java的一个开源库——Jacob来实现这个功能。本文将详细介绍如何使用Jacob 1.19库将Word文件转换为PDF。 Jacob(Java COM Bridge)是一个Java语言...

    jacob-1.14.3-x64

    标题中的"jacob-1.14.3-x64"表明这是一个针对64位系统的特定版本,它包含了Jacob库的核心动态链接库文件——jacob-1.14.3-x64.dll。 当您在运行某个基于Java的软件或进行编译工作时,如果遇到错误提示如“缺少jacob...

    利用jacob将WORD转换为HTML

    "利用jacob将WORD转换为HTML"这个主题聚焦于一个特定的技术解决方案,即使用Java的一个开源库——JACOB(Java COM Bridge)来实现这个转换。下面我们将深入探讨这个过程,以及涉及的相关知识点。 首先,JACOB是一个...

    Java项目中利用Freemarker模板引擎导出--生成Word文档

    基于Java语言来导出Word文档的方式也有很多种,如Jacob,Apache POI,Freemarker,PageOffice,java2word 等等。。。。 在这里将通过Freemarker这个模板引擎来实现导出 Word,项目不限于Swing,SSH,SSM,Spring ...

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

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

    jacob-1.18-MX.rar

    - **文件操作**:除了转换,Jacob还可以用来创建、读取和修改Word、Excel等文件,方便在Java程序中实现复杂的文件处理任务。 - **Windows服务交互**:Jacob允许Java应用程序控制其他Windows服务,比如打印机设置、...

    Jacob+SaveAsPDFandXPS

    "Jacob+SaveAsPDFandXPS"这个主题涉及到了Java编程中的一个关键库——Jacob以及一个用于生成PDF和XPS文档的工具——SaveAsPDFandXPS.exe。接下来,我们将深入探讨这两个组件以及它们如何协同工作。 Jacob(Java ...

    jacob-1.18.jar

    在这个过程中,一个常用的Java库——Jacob(Java Advanced COM Bridge)扮演了关键角色。本文将详细探讨Jacob库的使用方法以及如何借助它实现Office到PDF的转换。 Jacob是一个Java到COM桥接器,允许Java程序调用...

Global site tag (gtag.js) - Google Analytics