使用ActiveXComponent word = ActiveXComponent.connectToActiveInstance("Word.Application")得到应用,引发的多线程问题。
1、 使用是同一word进程,Open或打开文档后,不能退出word即不能调用Quit。
2、 按照Selection的描述是ActiveWindow的属性,每个Document都有一个Selection,
使用word获取的是当前活动Document的Selection。故所有获取Selection都应以下述方式获取
Dispatch activeWindow = Dispatch.get(document, "ActiveWindow").toDispatch();
Dispatch selection = Dispatch.get(activeWindow, "Selection").toDispatch();而不是
Dispatch selection = Dispatch.get(word, "Selection").toDispatch();
3、获取书签也同2,获取Document的Bookmarks属性对象。
4、关于Find对象,模版文档文字替换(经常用),经常使用word的同学都知道,文档A,打开的查找窗口和文档B(同Aword进程)的查找窗口,查找的属性是一致的。故代码编写时使用同步机制。
锁定
获取Find对象
Dispatch find = Dispatch.get(selection, "Find").toDispatch();
设置查找内容
Dispatch.put(find, "Text", "查找内容");
...设置其它查找属性
执行查找
boolean result = Dispatch.call(find, "Execute").getBoolean();
解除锁定