- 浏览: 242601 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
wfzhanga:
不错, 存一下
DruidDataSource配置 -
peiyicong_:
...
☆误删除数据后快速恢复☆ -
peiyicong_:
...
spring ioc 解析 -
zhaozhihang:
代码,第十四行,有语法错误。
List,Set,Map用法以及区别 -
大头成为火影:
...
List,Set,Map用法以及区别
简要说明:
jacob.dll 放到 C:\WINDOWS\system32 下
jacob.dll 放到 %JAVA_HOME%\bin 下,这个比较关键,决定你项目启动时候是否报错的问题
jacob.jar 放到应用开发项目的 lib里面
我使用的Jacob版本是jacob_1.9
以下是我在实际开发中写的一个实现类
package cn.com.ivisions.management; import java.io.*; import java.net.URL; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import cn.com.ivisions.dipper2.Dipper; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; import com.jacob.com.Variant; import cn.com.ivisions.management.DocManage; public class COMBridge { private static final Log log = LogFactory.getLog(COMBridge.class); lugb.util.NamedIndexedHashMap constants = Dipper.getConfigInfo().getConstants(); //方正公章服务器地址 private String Founder_Host = constants.get("SEAL_SERVER").toString(); //判断CEB是否盖章文件 public boolean isCertifiedCEB(String fileurl) { try { String test1=getCEBID(fileurl); if(test1==null) { return false; } if(getCEBID(fileurl).equals(getCEBID(fileurl))) { return true; } else { return false; } } catch(Exception e) { return false; } } //得到CEB的UUID public String getCEBID(String fileurl) { try { ActiveXComponent objArchSend = new ActiveXComponent("PrintURLChangeSvr.ChangePrintURL"); Dispatch myCom = (Dispatch) objArchSend.getObject(); String returnString = Dispatch.call(myCom, "ChangeURL",fileurl, "http://"+Founder_Host).getString(); //objArchSend.release(); return returnString; } catch(Exception e) { return ""; } } //生成XML jason public boolean getPrintXml(String strXml,String XmlUrl) { ActiveXComponent objArchSend = new ActiveXComponent("StampPubCom.StampPubFuncCom"); Dispatch myCom = (Dispatch) objArchSend.getObject(); try { Dispatch.call(myCom, "BSTR2File",strXml,XmlUrl).getString(); // System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); //objArchSend.release(); return true; } catch(Exception e) { System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); e.printStackTrace(); return false; } } //上传公文分数XML到公章服务器 public boolean uploadCountXml(String XmlUrl) { ActiveXComponent objArchSend = new ActiveXComponent("LocalSealStamp.ConductFile"); Dispatch myCom = (Dispatch) objArchSend.getObject(); try { Dispatch.call(myCom, "HTTPUploadFile",XmlUrl, "http://"+Founder_Host+"/stampserver/extend/interfaces/printlic2db.aspx").getString(); // System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); //objArchSend.release(); return true; } catch(Exception e) { System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); e.printStackTrace(); return false; } } //上传XML到OA服务器 public boolean uploadFileforXml(String XmlUrl,String serverURL) { ActiveXComponent objArchSend = new ActiveXComponent("ASPCom.PostRecv"); Dispatch myCom = (Dispatch) objArchSend.getObject(); try { Dispatch.call(myCom, "HTTPUploadFile",XmlUrl, serverURL).getString(); return true; } catch(Exception e) { System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); e.printStackTrace(); return false; } } //文件上传到服务器的方法 public boolean SendFileEx(String strURL,String strRetFileName) { try { // System.runFinalizersOnExit(true); ActiveXComponent objArchSend = new ActiveXComponent("ASPCom.PostRecv"); Dispatch myCom = (Dispatch) objArchSend.getObject(); Variant vResult = Dispatch.call(myCom, "SendFile", new Variant(strURL), new Variant(strRetFileName) ); Variant vResult1 = Dispatch.call(myCom, "GetErrorMessage"); int nRes = vResult.getInt(); String strError = vResult1.getString(); //objArchSend.release(); // if(nRes == SysConfig.RET) return true; if(strError != null && strError.equals("S_OK")) return true; return false; } catch(Exception e) { e.printStackTrace(); return false; } } //JAVA实现的文化下载 Jason public void downloadFile(String urls,String strRetFileName) throws IOException{ URL url=new URL(urls); InputStream in= url.openConnection().getInputStream(); File file=new File(strRetFileName); FileOutputStream out=new FileOutputStream(file,true); //计数器 int counter=0; //开始读 int ch; byte[] buffer=new byte[1024]; while((ch=in.read(buffer))!=-1){ out.write(buffer,0,ch); counter+=ch; } out.flush(); in.close(); out.close(); } //文件下载到本地的方法 public boolean HTTPDownloadFile(String strURL,String strRetFileName) { try { // System.runFinalizersOnExit(true); ActiveXComponent objArchSend = new ActiveXComponent("ASPCom.PostRecv"); Dispatch myCom = (Dispatch) objArchSend.getObject(); Variant vResult = Dispatch.call(myCom, "HTTPDownloadFile", new Variant(strURL), new Variant(strRetFileName) ); Variant vResult1 = Dispatch.call(myCom, "GetErrorMessage"); int nRes = vResult.getInt(); String strError = vResult1.getString(); //objArchSend.release(); // if(nRes == SysConfig.RET) return true; if(strError != null && strError.equals("S_OK")) return true; return false; } catch(Exception e) { e.printStackTrace(); return false; } } //删除本机的各种临时文件 jason public void deleteTempFile(String fileUrl) { ActiveXComponent objArchSend = new ActiveXComponent("StampPubCom.StampPubFuncCom"); Dispatch myCom = (Dispatch) objArchSend.getObject(); try { Dispatch.call(myCom, "DeleteFile",fileUrl).getString(); } catch(Exception e) { System.out.println(Dispatch.call(myCom, "GetErrorMessage").getString()); e.printStackTrace(); } } public boolean sendXmlToFounder(int docId,String serverPath,String serverProPath){ try{ COMBridge com=new COMBridge(); DocManage docManage=new DocManage(); //打印份数 String printNum = constants.get("PRINT_NUM").toString(); //文档后缀名 String sealGwExtend = constants.get("SEAL_GW_EXTEND").toString(); //默认下载路径 String download_dir = constants.get("DOWNLOAD_DIR").toString(); //获得主送和抄送单位 String receiveDept = docManage.getReceiveDepts(docId); String printNums = ""; for(int i=0;i<receiveDept.split(";").length;i++){ printNums += printNum+";"; } if(printNums.length()>0) printNums = printNums.substring(0,printNums.length()-1); //获得公文附件是ceb的附件 String[] attachFile = docManage.getAttachment(docId,sealGwExtend); for(int i=0;i<attachFile.length;i++){ String cebfileName=attachFile[i]; String fileurl=download_dir+cebfileName; String remoteFileUrl=serverPath+"/files/upload/"+cebfileName; //下载ceb文件到本地 com.downloadFile(remoteFileUrl,fileurl); //获取CEBID String cebId=com.getCEBID(fileurl); //拼装方正公章接口的XML String strXml = "<?xml version = \"1.0\" encoding=\"gb2312\"?>"; strXml +="<Doc>"; strXml +="<DocumentID>"+cebId+"</DocumentID>"; strXml +="<Receivers>"+receiveDept+"</Receivers>"; strXml +="<PrnNums>"+printNums+"</PrnNums>"; strXml +="<SendType>1</SendType>"; strXml +="<Count>"+receiveDept.split(";").length+"</Count>"; strXml +="</Doc>"; log.info("strXml==="+strXml); String xmlFileName=docId+"["+i+"]"+".xml"; String xmlUrl=download_dir+xmlFileName; //生成本地的XML boolean flag1=com.getPrintXml(strXml,xmlUrl); String strURL="http://"+Founder_Host+"/stampserver/extend/interfaces/PrintLic2DB.aspx"; //上传本地的XML到方正公章服务器 boolean flag2=com.SendFileEx(strURL, xmlUrl); String strOAURL=serverProPath+"/apabi/upload.jsp?fileName="+xmlFileName; //上传本地的XML到OA服务器 boolean flag3=com.uploadFileforXml(xmlUrl,strOAURL); //删除本机的各种临时文件包括下载的CEB和生成的XML deleteTempFile(fileurl); deleteTempFile(xmlUrl); } return true; }catch(Exception ex){ ex.printStackTrace(); return false; } } }
- jacob_1.9.zip (231.2 KB)
- 下载次数: 86
发表评论
-
mybatis generator
2013-07-29 16:15 100581. 在 Mybatis 主页 http://code.go ... -
Axis,axis2,Xfire以及cxf对比
2011-10-25 10:48 1110http://ws.apache.org/axis/ htt ... -
List,Set,Map用法以及区别
2011-10-14 12:44 63551List,Set,Map是否继承自Collection接口? ... -
Excel读写
2011-04-29 15:19 975要导入一个HSSF包 import org.apac ... -
JSTL XML <x:parse> 解析xml 的Tag标签
2011-04-13 16:15 2295The <x:parse> tag is used ... -
客户端缓存cookie的使用
2011-03-11 15:41 2715====================写入cookie=== ... -
awstats和tomcat配置指南
2011-03-04 13:55 2251引言为达到网站优化的理想效果,对网站访问者进行必要的、甚至细 ... -
oscache缓存技术
2011-03-03 17:07 2686一、OSCache是当前运用最广的缓存方案,JBoss,Hib ... -
用ant 编写 build,xml 把一个web项目打成war 不依赖eclipse
2011-03-02 16:49 9466把一个WEB项目打成了一个WAR包,其实原理很简单,就是 ... -
增加tomcat/Eclipse/JDK内存的方法
2013-05-16 18:18 13351.增加tomcat内存的方法 tomcat默认可以使用的 ... -
Eclipse查看调试jar包中的源文件
2010-10-13 13:57 7057Eclipse查看调试jar包中的源文件方法如附件图: ... -
cas在tomcat实现单点登录
2010-10-12 16:55 1055使用cas在tomcat实现单点 ... -
增加tomcat/Eclipse/JDK内存的方法
2010-10-12 16:48 38381.增加tomcat内存的方法 tomcat默认可以使用的内存 ... -
myeclipse 注册码生成代码源码
2010-10-12 16:31 1653myeclipse 注册码生成代码源码注意:注册Myeclip ... -
Excel读写
2010-10-12 16:30 1107要导入一个HSSF包 import org.apache.p ... -
跨站脚本注入问题详解
2010-10-12 16:26 3053===========================问题描述 ...
相关推荐
接下来,为了能够在Java应用中使用Jacob,你需要确保系统路径中包含了`jacob.dll`。这个动态链接库文件实现了Java层与COM层的桥接,使得Java能够调用COM组件。通常,`jacob.dll`需要放在Java的系统库目录下,或者在...
因此,需要将jacob-1.17-x64.dll和jacob-1.17-x86.dll文件拷贝到Java开发工具包(JDK)的bin目录下。此外,需要在项目中导入jacob.jar包,这样才能在Java代码中调用JACOB的API。 接下来是OCX控件的注册。这一步骤与...
1. **COM互操作性**:Jacob使得Java开发者可以方便地访问和控制任何COM接口,包括ActiveX控件、Office应用(如Excel、Word)、Windows API等。这对于需要在Java应用中集成Windows特定功能的开发者来说尤其有用。 2....
6. **使用Jacob**:在Java项目中使用Jacob时,需要将Jacob的.jar文件添加到项目的类路径中,并根据系统的架构选择合适的.dll文件放置在正确的位置,通常是系统的PATH环境变量所包含的目录下。然后,通过导入Jacob...
Java操作DDL(Data Definition Language)通常指的是在Java应用程序中创建、修改或删除数据库结构,如表、视图、索引等。在这个场景中,"Java操作DDL使用jacob"指的是利用Jacob库来实现这一功能。Jacob是Java和COM...
通过Jacob,你可以执行诸如操作Excel、Word文档,控制Internet Explorer浏览器等任务。 **平台依赖:jacob-1.14.3-x64.dll和jacob-1.14.3-x86.dll** Jacob库虽然以Java编写,但为了实现与COM组件的交互,还需要...
Jacob允许Java代码调用COM对象的方法,访问其属性,实现与Windows系统的深度集成,比如自动化Office文档处理、利用ActiveX控件等。此资源集合包含了Jacob的多个版本,包括1.15、1.16、1.17以及1.9,同时提供了适用于...
这个压缩包"jacob1.19"包含了两个版本的Jacob动态链接库(DLL)文件:jacob-1.19-x64.dll适用于64位系统,而jacob-1.19-x86.dll则适用于32位系统。这两个文件是Jacob库的核心组成部分,它们实现了Java和COM之间的...
Jacob是Java和COM之间的一个桥梁,它允许Java代码与COM组件进行交互,使得开发者能够利用Java编程语言调用Windows下的各种ActiveX控件或者DLL库。这个资源是关于Jacob的版本1.18,其中包含了重要的组件——jar和dll...
在使用Jacob时,我们首先需要将jacob-1.18-x64.dll添加到系统的PATH环境变量中,这样Java虚拟机才能找到并加载这个库。此外,还需要在项目中添加对Jacob.jar的引用,这包含了Java层面的API,供开发者编写调用COM组件...
5. **配置环境**:使用Jacob前,除了在项目中添加`jacob.jar`到类路径外,还需要在系统环境变量`PATH`中添加Jacob的dll文件路径,或者在Java代码中使用`System.loadLibrary()`方法指定dll文件的位置。 6. **文件...
1. **与Office集成**:Java开发者可以使用jacob.dll来读写Excel电子表格、创建Word文档、处理PowerPoint演示文稿等,使得Java程序具备了与Microsoft Office深度集成的能力。 2. **自动化任务**:通过COM接口,jacob...
如果你在其他操作系统上,如Linux或macOS,可能需要寻找其他解决方案,如使用Java的`javax.speech`包或者跨平台的TTS库如`eSpeak`。 总的来说,`jacob`为Java开发者提供了一种方便的方式来调用Windows的本地资源,...
Java调用C# DLL是跨语言交互的一种常见需求,特别是在企业级应用开发中,可能会遇到已有的C#组件需要在Java环境中使用的场景。Jacob(Java COM Bridge)是一个开源项目,它提供了一个Java到COM(Component Object ...
使用Jacob进行Java操作Word的基本步骤如下: 1. **添加依赖**:首先,将`jacob.jar`添加到项目的类路径中。如果是Windows环境,还需要将`jacob.dll`放到系统PATH环境变量所包含的目录下,或者放在Java运行时可以...
"jacob-1.18-x64.dll" 和 "jacob-1.18-x86.dll" 是Jacob库的动态链接库文件,分别对应于64位和32位的Windows操作系统。Jacob的核心功能就是通过这些DLL文件来实现Java和COM接口的通信。 "jacob.jar" 是Jacob的Java...
在使用Jacob时,正确配置dll和jar文件的位置至关重要,否则可能会导致运行时错误。本文将详细解释如何设置Jacob-1.18-M2的dll和jar文件。 首先,我们来了解Jacob的核心组件。Jacob项目包含两个主要部分:一个Java...
这个压缩包包含了Jacob的最新版本,即1.20版,包括两个动态链接库(DLL)文件:`jacob-1.20-x64.dll`和`jacob-1.20-x86.dll`,以及Java类库`jacob-1.20.jar`。这些文件分别用于64位和32位的Windows系统,确保了在...
通过理解`jacob-1.14.3.dll`的作用,以及如何正确配置和使用Jacob库,开发者可以轻松地在Java项目中集成Office文档处理、PDF生成等功能,提高工作效率。在实际开发中,一定要根据具体需求选择合适的dll版本,并确保...
本示例"jacob-js调用ocx"提供了一个详细的教程,演示了如何使用Jacob库在Java中调用OCX控件,并通过JavaScript在网页中与之通信。 首先,Jacob库是一个Java到COM(Component Object Model)桥接器,它允许Java应用...