輕鬆架起Java連線COM物件的橋樑(續二) (轉)

worldblog發表於2008-01-21
輕鬆架起Java連線COM物件的橋樑(續二) (轉)[@more@]

  本來沒想到自己會為《輕鬆架起連線COM的橋樑》作續,而今還寫了續二,可知我們上探討技術的網友們還是挺多的,非常欣慰!這次內容是利用jacob實現在文件中替換字串。關於jacob的使用這裡不詳述,請見《輕鬆架起Java連線COM物件的橋樑》,具體實現如下:
import com.jacob.com.*;
import com.jacob..*;

public class Exam_9 {
 
 public static void main(String[] args) {
 
 ActiveXComponent app = new ActiveXComponent("Word.Application");//啟動word
 String inFile = "H:Majix-1_2_2_fullsamplemy.doc";//要替換的word
 boolean flag = false;
 try {
 app.setProperty("Visible", new Variant(false));//設定word不可見
  docs = app.getProperty("Documents").toDispatch();
 Object doc = Dispatch.invoke(docs,"Open", Dispatch.Method, new Object[]{inFile,new Variant(false), new Variant(false)}, new int[1]).toDispatch();//開啟word檔案,注意這裡第三個引數要設為false,這個參數列示是否以只讀方式開啟,因為我們要儲存原檔案,所以以可寫方式開啟。
 Object content = Dispatch.get(doc, "Content").toDispatch();//提取word文件內容物件
 Object finder = Dispatch.get(content, "Find").toDispatch();//提取find物件,也就查詢替換的那個物件
 Variant f = new Variant(false);
 
 boolean rt = true;
 while ( rt ) { 
 rt = Dispatch.invoke(finder,"Execute", Dispatch.Method, new Object[]{"Old", f, f, f, f, f, f, f, f, "New", new Variant(true)}, new int[1]).toBoolean();//替換Old ---&gt New
 }
 
 Dispatch.call(doc,"Save");//儲存
 Dispatch.call(doc, "Close", f);
 flag = true;
 } catch (Exception e) {
 e.printStackTrace();
 } finally {
 app.invoke("Quit", new Variant[] {});
 }
 }
}

有疑問聯絡to:zlyperson@163">zlyperson@163.net


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-997865/,如需轉載,請註明出處,否則將追究法律責任。

相關文章