求一个JACOB调用DLL完整的示例,有心人贡献一下吧 求一个JACOB调用DLL完整的示例,有心人贡献一下吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 供参考http://www.cnjsp.org/view.jsp?column=2&id=793 /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author not attributable * @version 1.0 */import java.awt.*;import org.xml.sax.*;import com.jacob.activeX.*;import com.jacob.com.*;public class WordBean{ public static void main(String[] args) { //启动word,生成一个ActivexComponent对象 ActiveXComponent app = new ActiveXComponent("Word.Application"); //要转换的word文件 String inFile = "D:\\test1.doc"; //要报存的目标文件 String tpFile = "D:\\test2.doc"; boolean flag = false; String oldText = "1234"; String newText = "test"; boolean visible = false; String bookMarkKey = "BOOK"; try { //设置word不可见 app.setProperty("Visible", new Variant(visible)); //log.info("设置word不可见成功!"); System.out.println("设置word不可见成功!"); Dispatch docs = app.get(app,"Documents").toDispatch();//得到所有的WORD文档Active Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method , new Object[] {inFile, new Variant(false), new Variant(true)} , new int[1]).toDispatch(); //打开word文件 Dispatch selection = app.getProperty("Selection").toDispatch();//selection就是doc //得到一个组件 System.out.println("Selection"); Dispatch find = app.call(selection, "Find").toDispatch(); Dispatch tables = Dispatch.get(selection, "tables").toDispatch(); int nTableAmount = Dispatch.get(tables, "count").toInt(); System.out.println(nTableAmount); //查找什么文本 Dispatch.put(find, "Text", oldText); //替换文本 Dispatch.call(find, "ClearFormatting"); Dispatch.put(find, "Text", oldText); Dispatch.call(find, "Execute"); Dispatch.put(selection, "Text", newText); System.out.println("replace"); //Dispatch.call //把指定的值设置到指定的标签中去 Dispatch activeDocument = app.getProperty("ActiveDocument").toDispatch(); System.out.println("activedocument"); Dispatch bookMarks = app.call(activeDocument, "Books").toDispatch(); System.out.println(bookMarks.toString()); System.out.println("books"); boolean bookMarkExist1 = Dispatch.call(bookMarks, "Exists", bookMarkKey). toBoolean(); if (bookMarkExist1 == true) { System.out.println("exists book!"); Dispatch rangeItem = Dispatch.call(bookMarks, "Item", bookMarkKey). toDispatch(); System.out.println("range item!"); Dispatch range1 = Dispatch.call(rangeItem, "Range").toDispatch(); System.out.println("range !"); //取标签的值 String bookMarkValue = Dispatch.get(range1, "Text").toString(); bookMarkValue = "test"; if (bookMarkValue != null) { Dispatch.put(range1, "Text", new Variant(bookMarkValue)); } } else { System.out.println("not exists book!"); } //保存文件 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[] {}); } }} 大神们帮我看一下下面的程序有什么地方可以优化,并指出存在的问题 一段代码中,有wait()和notify()成对,如果两者互换,那么我觉得是等效的,是不是? 怎么做到的,这么强的软件?? Jcs方面问题,请教个位大侠~ 怎样实现图像的亮度调整? Jbuider7中的光标位置不对。 ■■请问各位JAVA开发一般使用什么方便工具查询帮助,MSDN吗,还有更好的吗?■■ 有没有可以编译、运行并且可以生成可执行文件的Java编辑器? 帮忙看一下小代码 使用文本文件,存储用户验证信息的问题? 我的窗口为什么不显示按钮??? 大量Java入门资料,jdk安装配制、swing技巧等
http://www.cnjsp.org/view.jsp?column=2&id=793
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import java.awt.*;
import org.xml.sax.*;
import com.jacob.activeX.*;
import com.jacob.com.*;public class WordBean{ public static void main(String[] args) {
//启动word,生成一个ActivexComponent对象
ActiveXComponent app = new ActiveXComponent("Word.Application");
//要转换的word文件
String inFile = "D:\\test1.doc";
//要报存的目标文件
String tpFile = "D:\\test2.doc";
boolean flag = false;
String oldText = "1234";
String newText = "test";
boolean visible = false;
String bookMarkKey = "BOOK";
try {
//设置word不可见
app.setProperty("Visible", new Variant(visible));
//log.info("设置word不可见成功!");
System.out.println("设置word不可见成功!"); Dispatch docs = app.get(app,"Documents").toDispatch();//得到所有的WORD文档Active
Dispatch doc = Dispatch.invoke(docs, "Open", Dispatch.Method
, new Object[] {inFile, new Variant(false),
new Variant(true)}
, new int[1]).toDispatch(); //打开word文件
Dispatch selection = app.getProperty("Selection").toDispatch();//selection就是doc
//得到一个组件
System.out.println("Selection");
Dispatch find = app.call(selection, "Find").toDispatch();
Dispatch tables = Dispatch.get(selection, "tables").toDispatch();
int nTableAmount = Dispatch.get(tables, "count").toInt();
System.out.println(nTableAmount); //查找什么文本
Dispatch.put(find, "Text", oldText);
//替换文本
Dispatch.call(find, "ClearFormatting");
Dispatch.put(find, "Text", oldText);
Dispatch.call(find, "Execute");
Dispatch.put(selection, "Text", newText);
System.out.println("replace"); //Dispatch.call //把指定的值设置到指定的标签中去
Dispatch activeDocument = app.getProperty("ActiveDocument").toDispatch();
System.out.println("activedocument");
Dispatch bookMarks = app.call(activeDocument, "Books").toDispatch();
System.out.println(bookMarks.toString());
System.out.println("books");
boolean bookMarkExist1 = Dispatch.call(bookMarks, "Exists", bookMarkKey).
toBoolean();
if (bookMarkExist1 == true) {
System.out.println("exists book!");
Dispatch rangeItem = Dispatch.call(bookMarks, "Item", bookMarkKey).
toDispatch();
System.out.println("range item!");
Dispatch range1 = Dispatch.call(rangeItem, "Range").toDispatch();
System.out.println("range !");
//取标签的值
String bookMarkValue = Dispatch.get(range1, "Text").toString();
bookMarkValue = "test";
if (bookMarkValue != null) {
Dispatch.put(range1, "Text",
new Variant(bookMarkValue));
} }
else {
System.out.println("not exists book!");
} //保存文件
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[] {});
}
}
}