java2word对word替换操作与jacob连接打印机

先看一下java2word.jar与jacob的区别,其实java2word已经包含了jacob了,只不过多了对文档操作的部分

 

之前做了一个项目要用到操作word文档,然后打印文档,就用到java2word。

只要是用到了java2word的替换操作。其中的书签是在word中设置的,如果没有设置就会报错

import java.io.File;

import com.heavenlake.wordapi.Document;
import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.ComThread;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

/**
* 生成文件类
*
@author us
*
*/
public class test {
public test() {
Document doc
= null;
try {
doc
= new Document();
doc.open(
"e:/test.doc"); //打开模板
doc.saveAs("e:/test2.doc");//把模板保存为临时文件
doc.open("e:/test2.doc");//然后打开临时文件,操作的是临时文件,不是模板
doc.replaceAll("name", "张三");
doc.replaceAll(
"sex", "");
doc.replaceAll(
"birthday", "2011-01-01");
doc.replaceAll(
"place", "广东");
doc.replaceAll(
"people", "汉族");
doc.replaceAll(
"id", "4xxxxxxxxxxxxxxxxxxx");
doc.replaceAll(
"address", "广东");
doc.insertAtBookmark(
"pic",new java.io.File("C:/test.jpg"));
//插入书签之后,把书签给替换了
doc.replaceAll("pic", "");
System.out.println(
"操作结束!");
}
catch (Exception e) {
e.printStackTrace();
}
finally {
try {
if(doc!=null) doc.close(true);
}
catch (Exception e) {
e.printStackTrace();
}
}
}

/**
* 功能:实现打印工作
*
@param path word文件路径
*/
public static void print(String path){
ComThread.InitSTA();
ActiveXComponent word
= new ActiveXComponent("Word.Application");
Dispatch doc
=null;
try {
//不打开文档
Dispatch.put(word, "Visible", new Variant(true)); //相当于wordObject.Visible = true
Dispatch docs = word.getProperty("Documents").toDispatch();
//打开文档
doc=Dispatch.call(docs,"Open",path).toDispatch();

//开始打印
//Dispatch.get(doc,"PrintOut");
Dispatch.call(doc, "PrintOut"); //打印

}
catch (Exception e) {
e.printStackTrace();
System.out.println(
"打印失败");
}
finally {

try {
if(doc!=null)
Dispatch.call(doc,
"Close",new Variant(0));
//word.invoke("Quit", new Variant[0]);
}
catch (Exception e) {
e.printStackTrace();
}
//始终释放资源
ComThread.Release();

}
}

public static void main(String[] args) {
test test1
= new test();
print(
"e:/test2.doc");
}

}

最后提醒一下,这在后台服务器端的打印机打印的,如果你想在b/s中在客户端打印机打印的话,肯定不行。

posted @ 2011-08-26 10:01  未来是个梦  阅读(1701)  评论(0)    收藏  举报