java通过jacob调用word

word

  public static void main(String[] args) {    //启动word,生成一个ActivexComponent对象    ActiveXComponent app = new ActiveXComponent("Word.Application");    //要转换的word文件    String inFile = "D:\\project\\java_word\\java_word\\wordtemplet.doc";    //要报存的目标文件    String tpFile ="D:\\project\\java_word\\java_word\\wordtemplet3.doc";    boolean flag = false;    Dispatch xlo = app.getObject();    String oldText="1234";    String newText="test";    boolean visible=false;    String bookMarkKey="LB_KJGG";    try {      //设置word不可见      app.setProperty("Visible", new Variant(visible));      //log.info("设置word不可见成功!");      System.out.println("设置word不可见成功!");      Dispatch docs = app.getProperty("Documents").toDispatch();      Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method                                   ,new Object[]                                   {inFile, new Variant(false), new Variant(true)}                                   , new int[1]).toDispatch(); //打开word文件      //在word2003的vba文档中application有UserName属性。      String userName=app.getPropertyAsString("UserName");      System.out.println("用户名:"+userName);      Dispatch selection=app.getProperty("Selection").toDispatch();      //得到一个组件      System.out.println("Selection");      Dispatch find = app.call(selection, "Find").toDispatch();

       //查找什么文本       Dispatch.put(find, "Text", oldText);       //替换文本       Dispatch.call(find,"ClearFormatting");       Dispatch.put(find, "Text", oldText);       Dispatch.call(find, "Execute");       Dispatch.put(selection, "Text", newText);       // Dispatch.call(app, "SaveAs", inFile);       System.out.println("replace");              //把指定的值设置到指定的标签中去       Dispatch activeDocument=app.getProperty("ActiveDocument").toDispatch();       System.out.println("activedocument");       Dispatch bookMarks = app.call(activeDocument, "Bookmarks").toDispatch();       System.out.println("bookmarks");       boolean bookMarkExist1=Dispatch.call(bookMarks,"Exists",bookMarkKey).toBoolean();       if(bookMarkExist1==true){         System.out.println("exists bookmark!");         Dispatch rangeItem = Dispatch.call(bookMarks, "Item",bookMarkKey).                        toDispatch();                    System.out.println("range item!");                    Dispatch range = Dispatch.call(rangeItem, "Range").toDispatch();                    System.out.println("range !");                    //取标签的值                    String bookMarkValue=Dispatch.get(range,"Text").toString();                    bookMarkValue="test";                    if(bookMarkValue!=null){                      Dispatch.put(range, "Text",                             new Variant(bookMarkValue));                    }                }       else{         System.out.println("not exists bookmark!");       }      //保存文件      Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {tpFile, new Variant(0)}                      , new int[1]);      //作为word格式保存到目标文件      Variant f = new Variant(false);      Dispatch.call(doc, "Close", f);      flag = true;    }    catch (Exception e) {      e.printStackTrace();    }    finally {      app.invoke("Quit", new Variant[] {});    }

时间: 2024-11-01 13:08:10

java通过jacob调用word的相关文章

openss-如何用java 通过jacob 调用opendss

问题描述 如何用java 通过jacob 调用opendss 利用java通过Jacob调用opendss 实现数据处理...方法行的通不?有没有做过的?应该如何处理啊.. 解决方案 java通过jacob调用wordJava调用COM组件 JACOBjava中通过jacob调用word方法 解决方案二: http://download.csdn.net/detail/hugongda123/8759489

初始化-java中jacob操作word文档

问题描述 java中jacob操作word文档 org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.ExceptionInInitializerError Caused by: java.lang.ExceptionInInitializerError Caused by: java.lang.IllegalStateExcept

java jacob对word文档操作时怎样选中全文

问题描述 java jacob对word文档操作时怎样选中全文 用做一个对word操作的程序,一切顺利,就是需要选中全文时卡住了,查了很对资料找不到相关方法.请大神指教!

java web-在javaWeb程序中通过jacob调用dll出现Can't co-create object

问题描述 在javaWeb程序中通过jacob调用dll出现Can't co-create object 公司的web程序中需要调用一个C++开发的DLL动态库文件,在使用jacob过程中在出现以下为题: 首先在开发前使用mian方法测试调用dll可以正常实现功能需求,但将代码放在web程序中出现Can't co-create object错误.求大神解救 解决方案 Account requires an assignment to a CO objectCan't create handler

关于java中使用jacob调用c++写的ocx时参数传递的问题

问题描述 我用c++写了一个简单的ocx写了3个方法TestFunc()TestFunc3(SHORTport)TestFunc2(SHORTport,CHAR*strIP)在java中这么调用ActiveXComponentcomx=newActiveXComponent("ACEWEB.ACEWebCtrl.1");Dispatchdisp=comx.getObject();Dispatch.call(disp,"TestFunc");Dispatch.call

利用java程序 如何 将 word 转化为 pdf

问题描述 用什么框架都行..只要把demo给我看..上面写清配置注释..我的邮箱是xiu53542306@sohu.com小弟在这里谢谢了..十分感谢 解决方案 解决方案二:自己用POI读取word后生成PDF文件解决方案三:给你几个参考吧:第三个的话,需要安装AdobeAcrobat,转换是通过jacob调用AdobeAcrobat的虚拟打印机来完成的,以前也用过这个,个人感觉是效果最好的,推荐采用这种方式.解决方案四:最好的方式用Jacob,通过它操作WordActivex,但这个是JNI解

JACOB进行Word编程中如果指定位置建立表格

问题描述 请问使用JACOB进行Word编程中,createNewTable方法(如下)如果指定@paramselection插入点新增表格该如何实现(下面的方法中并没有使用这个参数).因为要新增两个表格,如果没有指定插入点,会默认后一个覆盖前一个表格,最终只会显示一个表格./***创建新的表格**@paramselection插入点*@paramdocument文档对象*@paramrowCount行数*@paramcolCount列数*@paramwidth边框数值0浅色1深色*@retur

jacob操纵word文件中控制行间距的问题

问题描述 jacob操纵word文件中控制行间距的问题 代码如下:如果参数lineSpace=4;及行间距设为固定值,但在word中设为固定值后, 还要设置一个磅值,请问在下面代码中如何设置磅值?或者有大侠知道磅值的参数名称是什么? /** * 对当前段落进行格式化 * * @param align * 设置排列方式 默认:居左 0:居左 1:居中 2:居右 3:两端对齐 4:分散对齐 * @param lineSpace * 设置行间距 默认:1.0 0:1.0 1:1.5 2:2.0 3:最

谈谈JAVA中的调用方式

很多书籍都说Java支持传引用调用的方式,类似于C++中的Person &a引用调用,而近来编程遇到一系列问题让我对此产生了怀疑,于是将这些方法一一列出,我们来一起看看JAVA中的调用方式:   看下面的程序:  class Person {      private String name;//姓名     private String sex;//性别     public Person(String x, String y) {         this.name = x;