- 论坛徽章:
- 0
|
项目中有一个需求是这样的:
希望在用户打开word文档时已经存在定义好的域,然后用户直接输入相关内容,
点“保存”,将word域里的内容直接保存到后台数据库ORACLE对应的表里。
表已经根据word域名建立好了。
1 请问有什么办法可以在程序中得到用户在word域中输入的内容。
2 另外,在显示的时候,又如何让word域能读出数据库表中对应的字段内容呢?
jacob包,网址 http://danadler.com/jacob/
import com.jacob.activeX.*;
import com.jacob.com.*;
import java.io.File;
public class testJab {
public testJab() {
}
public static void testFindReplace() {
try {
String sInputDoc = "E:\\work\\testWord\\file_in.doc";
String sOutputDoc = "E:\\work\\testWord\\file_out.doc";
String sOldText = "[label:import:1]";
String sNewText = "I am some horribly long sentence, so long that [insert bullshit here]";
boolean tVisible = true;
boolean tSaveOnExit = false;
/////////////////////////////////////////////////////////////
ActiveXComponent oWord = new ActiveXComponent("Word.Application");
oWord.setProperty("Visible", new Variant(tVisible));
Object oDocuments = oWord.getProperty("Documents").toDispatch();
Object oDocument = Dispatch.call(oDocuments, "Open", sInputDoc).toDispatch();
Object oSelection = oWord.getProperty("Selection").toDispatch();
Object oFind = oWord.call(oSelection, "Find").toDispatch();
//////////////////////////////////////////////////////////////////////
Dispatch.put(oFind, "Text", sOldText);
Dispatch.call(oFind, "Execute");
Dispatch.put(oSelection, "Text", sNewText);
//////////////////////////////////////////////////////////////////////
Dispatch.call(oSelection, "MoveDown");
Dispatch.put(oSelection, "Text", "\nSo we got the next line including BR.\n");
//////////////////////////////////////////////////////////////////////
Object oFont = Dispatch.get(oSelection, "Font").toDispatch();
Dispatch.put(oFont, "Bold", "1");
Dispatch.put(oFont, "Italic", "1");
Dispatch.put(oFont, "Underline", "0");
Dispatch.put(oFont, "Size", "20");
Dispatch.put(oFont, "Color", "1,0,0,0");
//////////////////////////////////////////////////////////////////////
Object oAlign = Dispatch.get(oSelection, "ParagraphFormat").toDispatch();
Dispatch.put(oAlign, "Alignment", "1");
//////////////////////////////////////////////////////////////////////
Object oWordBasic = Dispatch.call(oWord, "WordBasic").getDispatch();
Dispatch.call(oWord, "SaveAs", sInputDoc);
Dispatch.call(oDocument, "Close", new Variant(tSaveOnExit));
oWord.invoke("Quit", new Variant[0]);
}
catch (Exception eEe) {
eEe.printStackTrace();
}
}
public static void main(String[] args) {
testJab.testFindReplace();
}
}
第二个
iText包,网址 http://www.lowagie.com/iText/ 自带的demo有例子。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/15317/showart_268360.html |
|