- 浏览: 240665 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 99991. 在 Mybatis 主页 http://code.go ... -
Axis,axis2,Xfire以及cxf对比
2011-10-25 10:48 1079http://ws.apache.org/axis/ htt ... -
List,Set,Map用法以及区别
2011-10-14 12:44 63491List,Set,Map是否继承自Collection接口? ... -
Excel读写
2011-04-29 15:19 939要导入一个HSSF包 import org.apac ... -
JSTL XML <x:parse> 解析xml 的Tag标签
2011-04-13 16:15 2261The <x:parse> tag is used ... -
客户端缓存cookie的使用
2011-03-11 15:41 2684====================写入cookie=== ... -
awstats和tomcat配置指南
2011-03-04 13:55 2228引言为达到网站优化的理想效果,对网站访问者进行必要的、甚至细 ... -
oscache缓存技术
2011-03-03 17:07 2646一、OSCache是当前运用最广的缓存方案,JBoss,Hib ... -
用ant 编写 build,xml 把一个web项目打成war 不依赖eclipse
2011-03-02 16:49 9429把一个WEB项目打成了一个WAR包,其实原理很简单,就是 ... -
增加tomcat/Eclipse/JDK内存的方法
2013-05-16 18:18 12981.增加tomcat内存的方法 tomcat默认可以使用的 ... -
Eclipse查看调试jar包中的源文件
2010-10-13 13:57 7011Eclipse查看调试jar包中的源文件方法如附件图: ... -
cas在tomcat实现单点登录
2010-10-12 16:55 1000使用cas在tomcat实现单点 ... -
增加tomcat/Eclipse/JDK内存的方法
2010-10-12 16:48 37981.增加tomcat内存的方法 tomcat默认可以使用的内存 ... -
myeclipse 注册码生成代码源码
2010-10-12 16:31 1623myeclipse 注册码生成代码源码注意:注册Myeclip ... -
Excel读写
2010-10-12 16:30 1071要导入一个HSSF包 import org.apache.p ... -
跨站脚本注入问题详解
2010-10-12 16:26 3004===========================问题描述 ...
相关推荐
java调用ocx控件,jacob,jar和dll文件
jacob.jar1.20及使用方法 解压后获得3个文件 jacob.jar jacob-1.20-x64.dll jacob-1.20-x86.dll 包含(32位,64位)以及文档 jacob(java com bradge) 通过调用MS OFFICE可以快捷的将word excel ppt等转换为pdf
java操作word之jacob(jacob.dll + jacob.jar),绝对实用
jacob1.19(包含jacob-1.19-x64.dll和jacob-1.19-x86.dll)
3. 如果是32位系统 将jacob-1.18-x86.dll 文件复制到下面目录下,如果是64位操作系统 将jacob-1.18-x64.dll C:\Program Files\Java\jdk1.8.0_45\jre\bin 可以直接去官方下载:jacob已经挪到GitHub上了,下载地址:...
Java调用C# dll jacob包类资源.zip
java操作office的jar包,其中jacob.jar放在项目jar文件夹中,jacob.dll放在C:\Windows\System32文件夹下
jacob1.19(包含jacob-1.19-x64.dll和jacob-1.19-x86.dll)
java朗读简单字符串所需的包及dll文件
java 操作office文档 jacob 16,把jacob.dll文件放在jdk的bin目录下,调用api就可以操作文档。api提供了很多功能强大的方法。
通过 JACOB 实现 Java调用ocx控件,一MSCOMM32.OCX为例,有代码
jacob是java对word操作的两种途径之一,由于是调用原有word中的方法原理,所以比较好用,格式也可以尽可能的保留。但由于基于dll控件,所以只能在windows系统中运行。 我的包中有jacob的包和一下说明文档
jacob-1.14.3.dll及使用方法
jacob 1.9语音生成文件,jacob x64.dll和jacob.jar 版本为1.9。 jacob.dll放入 C:\Program Files\Java\jdk1.8.0_121\jre\bin jacob.jar通过idea配置到项目dependencies
从而建立起java到jacob dll到jni的之间的联系 LSH 调用Microsoft MediaPlayer等 )">JACOB里的总共有两个包: com jacob activeX:JACOB可以通过它调度(Dispatch)activeX 控件 com jacob com:JACOB通过它...
java生成excel 操作word jacob java操作office poi jacob
jacob 操作word太复杂,用office_wrapper更加简单直接。 dll文件开始在我机子上不能用 我改了个版本,
java操作ddl文件的开源项目
jacobjar包和dll文件,使用时将jacob.dll放入system32目录下或者放到jre的bin目录下。
jacob 32位操作系统dll