- 浏览: 1437041 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (409)
- Java (48)
- Spring (29)
- struts2 (17)
- hibernate (4)
- 设计模式 (24)
- jbpm (1)
- JavaScript (5)
- 统计报表 (7)
- ExtJS_3.0 (35)
- struts1 (1)
- 分析设计 (3)
- Flex3 (24)
- UML (2)
- 数据库 (18)
- PowerDesigner (2)
- 应用服务器 (3)
- WebService (5)
- ActiveMQ_5.3.2 (6)
- Java通信技术 (11)
- GWT (6)
- OSGi (15)
- android (11)
- liferay6.0.6 (13)
- jquery (13)
- Linux (3)
- java.util.concurrent (16)
- guava (9)
- 开发模式 (1)
- 大数据 (2)
- 互联网金融 (4)
- treegrid-3.0 (7)
- 分布式 (8)
- GO语言 (4)
- maven (1)
- 缓存技术 (6)
- 其他 (2)
- 前端页面 (1)
- heasy (1)
- spring cloud(F版) (21)
- springboot (12)
- springmvc (5)
- mybatis (3)
- dubbo (1)
- 物联网 (0)
最新评论
-
raymond.chen:
谢谢您的分享
使用Ngrok解决通过外网访问内网web应用 -
wangyudong:
速度有点慢,不过在也找到了一个开源的holer,配置一个key ...
使用Ngrok解决通过外网访问内网web应用 -
a1006458222:
...
Axis2的部署和应用 -
偷师来了:
不好意思 这样的博客我觉得就灭有必要分享出来了 命令大家都会看 ...
Consul框架介绍 -
lliiqiang:
怎么直接删除文件夹啊?固定的几个文件可以删除,不固定的呢?需要 ...
Flex AIR —— 文件读写
JACOB 就是 JAVA-COM Bridge的缩写,提供自动化的访问com的功能,也是通过JNI功能访问windows平台下的com组件或者win32系统库的。
/** * 将jacob.dll放入JDK的bin目录下 * 把jacob.jar放入项目的WEB-INF\lib目录下 */ public class JacobHelper { private ActiveXComponent word; private Dispatch documents; private Dispatch doc; private Dispatch selection; private ActiveXComponent excel; private Dispatch workbooks; private Dispatch workbook; private void wordInit(){ if(word==null){ //创建一个word对象 word = new ActiveXComponent("Word.Application"); word.setProperty("Visible", new Variant(false)); //word不可见 word.setProperty("AutomationSecurity", new Variant(3)); //禁用宏 } if(documents==null){ //获取文挡属性 documents = word.getProperty("Documents").toDispatch(); } } private void wordDestory(){ try{ if(doc!=null){ //Dispatch.call(doc, "Close", new Variant(true)); Dispatch.invoke(doc, "Close", Dispatch.Method, new Object[]{new Variant(true)}, new int[1]); doc = null; } if(word!=null){ word.invoke("Quit", new Variant[]{}); word.safeRelease(); word = null; documents = null; } }catch(Exception ex){ ex.printStackTrace(); } } /** * 合并Word文档 */ public boolean wordUnite(String[] filePath, String outputPath){ if(filePath==null || filePath.length==0) return false; boolean successful = false; try{ wordInit(); //添加一个新文挡 doc = Dispatch.call(documents, "Add").toDispatch(); selection = word.getProperty("Selection").toDispatch(); for(int i=0;i<filePath.length;i++){ Dispatch.call(selection, "insertFile", filePath[i]); if(i<filePath.length-1){ Dispatch.call(selection, "TypeParagraph"); //换行 } } //文件另存为 Dispatch.call(doc, "SaveAs", outputPath); successful = true; }catch(Exception ex){ successful = false; ex.printStackTrace(); }finally{ wordDestory(); } return successful; } /** * Word转Html */ public boolean word2html(String wordFilePath, String htmlFilePath){ boolean successful = false; try{ wordInit(); //对象数组第三个表示是否以只读方式打开文件 doc = Dispatch.invoke(documents, "Open", Dispatch.Method, new Object[]{wordFilePath, new Variant(false), new Variant(true)}, new int[1]).toDispatch(); //另存为 Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{htmlFilePath, new Variant(8)}, new int[1]); //html-new Variant(8) txt-new Variant(2) successful = true; }catch(Exception ex){ successful = false; ex.printStackTrace(); }finally{ wordDestory(); } return successful; } private void excelInit(){ if(excel==null){ ComThread.InitSTA(); excel = new ActiveXComponent("Excel.Application"); excel.setProperty("Visible", new Variant(false)); } } private void excelDestory(){ try{ if(workbook!=null){ Dispatch.call(workbook, "Close", new Variant(true)); workbook = null; } if(excel!=null){ excel.invoke("Quit", new Variant[]{}); ComThread.Release(); excel = null; } }catch(Exception ex){ ex.printStackTrace(); } } public boolean excel2html(String excelFilePath, String htmlFilePath){ boolean successful = false; try{ excelInit(); //先删除旧文件 File file = new File(htmlFilePath); if(file.exists() && file.canRead()){ file.delete(); } workbooks = excel.getProperty("Workbooks").toDispatch(); workbook = Dispatch.invoke(workbooks, "Open", Dispatch.Method, new Object[]{excelFilePath, new Variant(false), new Variant(true)}, new int[1]).toDispatch(); //以只读方式打开 Dispatch.invoke(workbook, "SaveAs", Dispatch.Method, new Object[]{htmlFilePath, new Variant(44)}, new int[1]); successful = true; }catch(Exception ex){ successful = false; ex.printStackTrace(); }finally{ excelDestory(); } return successful; } }
//设置字体 Dispatch font = Dispatch.get(selection, "Font").toDispatch(); Dispatch.put(font, "Size", "10"); Dispatch.put(font, "Name", new Variant("宋体")); //设置段落格式 Dispatch align = Dispatch.get(selection, "ParagraphFormat").toDispatch(); Dispatch.put(align, "Alignment", "1"); //1:置中 2:靠右 3:靠左 //插入文本字符串 Dispatch.put(selection, "Text", "经理例会重点问题(" + DatetimeUtil.getToday("MMdd") + ")"); //回车换行 Dispatch.call(selection, "MoveDown"); Dispatch.call(selection, "TypeParagraph"); //重新设置文档内容的字体 selection = Dispatch.get(doc, "Content").toDispatch(); font = Dispatch.get(selection, "Font").toDispatch(); Dispatch.put(font, "Size", "10"); Dispatch.put(font, "Name", new Variant("宋体")); Dispatch.put(font, "Bold", new Variant(false));
发表评论
-
keytool的使用
2019-08-28 15:12 498keytool是密钥和数字证书的管理工具。它使用户能够管理 ... -
Bitset数据结构的使用
2019-03-08 13:53 1879Bitset是Java中的一种数据结构。Bitset中主要 ... -
Disruptor:高性能低延迟的内存有界队列框架
2019-02-24 10:45 945Disruptor是用于在多个线程之间通信的高性能低延时的 ... -
java的类加载机制
2019-02-18 21:37 385ClassLoader的双亲委派模 ... -
ThreadLocal的使用范例
2019-02-16 19:30 519ThreadLocal用于保存某个线程的共享变量。 Thr ... -
反射工具包Reflections的使用
2019-02-16 17:51 3047Reflections 通过扫描 classpath,索引元 ... -
使用CGLIB对实现类进行动态代理
2019-01-31 19:12 2414CGLIB(Code Generation Library ... -
基于JDK动态代理实现Mybatis的Mapper功能
2019-01-31 18:40 910Mybatis通过定义Mapper接口类,类中的方法与map ... -
Java8新特性
2019-01-20 22:04 5291、Lambda表达式 ... -
使用百度API识别图片文字
2018-09-21 22:41 24911、注册百度账号 https://login.bce.b ... -
HanLP自然语言处理包的使用
2018-09-16 23:06 3086HanLP是由一系列模型与算法组成的Java工具包,目标是 ... -
org.apache.commons常用类的使用
2018-09-14 23:29 812/** * 文本相似度计算 */ ... -
图片转换为单色
2017-04-01 00:10 1451/** * 转为单色图片 */ privat ... -
Java事件机制范例
2016-11-28 15:22 2486java事件机制的参与者: event object:事件 ... -
编程方式的quartz2例子
2016-11-09 14:53 670Job类: public class MyJob imp ... -
数字证书格式
2016-11-06 20:44 1959PFX 或 P12 指以pkcs#12 ... -
Drools6使用范例
2016-10-15 23:50 28001、创建kmodule.xml文件 在s ... -
生成带logo的二维码图片
2016-05-25 18:21 1367源码如下: private static final in ... -
用HttpClient访问CXF的RESTful接口
2016-05-18 16:50 4442用CXF可以开发RESTful服务,服务接口的输入和输出支持 ... -
commons-configuration使用范例
2016-05-02 23:50 15301、访问属性文件 PropertiesConfigurat ...
相关推荐
### Jacob 学习笔记 #### 一、Jacob 概述 Jacob,即 Java COM Bridge,是一种用于连接 Java 应用程序与 COM 组件的技术。它允许开发者利用 Java 的跨平台特性,同时能够调用 Windows 平台上丰富的 COM 接口。这种...
总结,Jacob库为Java开发者提供了与Windows COM组件交互的能力,尽管存在性能和平台限制,但在许多场景下,它是连接Java与COM世界的重要工具。通过理解其工作原理,我们可以更好地利用这一资源,解决实际项目中的...
总结来说,Jacob是Java开发中一个强大的工具,它允许开发者充分利用Windows生态系统的丰富资源,而无需学习新的编程语言或技术。通过`jacob-1.19-x86.dll`和`jacob-1.19-x64.dll`,以及`jacob.jar`,开发者能够实现...
在实际开发中,Jacob提供了简单的API,使得Java程序员能够以相对较低的学习曲线来掌握COM编程。 **Jacob的安装与配置** 首先,需要下载Jacob的jar文件和对应的dll动态链接库。dll文件通常需要放在系统的PATH环境...
总结起来,jacob-1.18-x64.dll是Java与Windows COM组件通信的关键,通过Jacob库,Java开发者得以充分利用Windows平台的资源,实现更丰富的功能。尽管存在一定的性能挑战和学习曲线,但其带来的便利性和广泛的应用...
总结来说,这个压缩包提供了Jacob的1.17-M2版本,包含适用于不同体系结构的DLL文件以及相关文档,是Java开发者在Windows环境下利用COM组件进行开发的重要工具。了解和掌握Jacob的使用方法,可以帮助开发人员提高工作...
总结,Jacob-1.16-M1是Java开发者在Windows环境中利用COM组件的得力工具,它简化了Java与COM之间的交互,提高了开发效率。了解并熟练掌握Jacob的使用,对于提升Java应用的Windows兼容性和功能性具有重要意义。
总结起来,Jacob-1.18是一个强大的工具,使得Java开发者能够利用Windows的COM组件扩展其应用程序的功能,无需学习新的编程语言或技术。通过理解并正确使用jacob-1.18-x64.dll、jacob-1.18-x86.dll和jacob-1.18.jar,...
总结起来,Jacob是Java开发者与Windows COM世界沟通的重要桥梁。通过深入理解Jacob-1.18-M2中的内容,开发者可以有效地利用这一工具解决跨平台交互的问题,提升Java应用程序的功能和灵活性。在实际开发中,结合示例...
通过这个示例,我们可以学习到如何在Java代码中引入和使用Jacob,以及如何组织代码来调用COM接口。 在资源包jacob_1.11.zip中,包含了Jacob库的完整版本1.11。这个库不仅包含了Jacob的Java类库,还可能包含必要的...
总结,Jacob-1.18是一个强大的工具,能够让Java开发者充分利用Windows生态中的COM组件。通过理解它的核心功能、文件结构以及如何使用,你可以在Java项目中实现与Windows系统的深度集成。不过,需要注意的是,Jacob只...
开发者可以通过阅读源码来学习和调试相关功能,工具在这里可能指的是Jacob库和相关的IDE,如Eclipse或IntelliJ IDEA,它们可以帮助开发者更方便地管理项目和调试代码。 总结起来,Java Jacob库为Java开发者提供了一...
总结来说,Jacob-1.19是一个强大的工具,为Java开发者打开了通往Windows COM世界的大门,让Java应用程序能够充分利用Windows系统的丰富功能。正确理解和使用Jacob,可以帮助开发者提升工作效率,解决特定环境下的...
总结,Jacob-1.14.3是一个强大的工具,让Java开发者能够充分利用Windows平台上的COM组件资源。无论是自动化办公任务、集成第三方软件,还是开发与Windows环境紧密交互的应用,Jacob都是一个值得信赖的选择。
Java调用ActiveX技术主要涉及的是Java与COM(Component Object Model)组件的交互,而Jacob库正是实现这一功能的关键工具。Jacob全称为"Java ...提供的文档和资源对于学习和使用Jacob进行实际开发具有很高的价值。
在IT行业中,处理和操作Microsoft Word文档是一项常见的任务。在这个场景下,我们关注的是使用Jacob库来实现对Word文档的...通过深入学习和应用Jacob,开发者可以构建强大的Word文档自动化处理工具,适应各种业务需求。
《Jacob-1.19与Java的交互:深入理解DLL集成》 Jacob,全称Java-COM Bridge,是一个Java库,允许Java程序直接调用Windows ...通过学习和实践,开发者可以充分利用Jacob实现各种高级功能,提升Java应用的效率和灵活性。
总结一下,Jacob库为Java开发者提供了一种有效的方式来操作Microsoft Word,通过COM接口实现与Word的交互。这个“Jacob操作Word完整代码实例”是学习和实践这一技术的好材料,它涵盖了从打开文档、编辑内容到保存和...
总结,JACOB作为一个连接Java与COM的强大工具,为开发者提供了灵活的接口,使得在Java平台上操作Windows应用程序成为可能。通过深入学习其源码和实践应用,开发者可以更好地理解和利用这一技术,提升工作效率,解决...