JACOB – a JAVA-COM Bridge

來源:互聯網
上載者:User

今天瀏覽CSDN論壇,無意中看到了一篇關於JACOB的文章
名為:用java 將doc轉換成html檔案...
http://community.csdn.net/Expert/TopicView1.asp?id=5497442

接著就看了一下有關JACOB的網站,該項目現在已經在sourceforge.net上發布.
http://sourceforge.net/projects/jacob-project/

JACOB is a JAVA-COM Bridge that allows you to call COM Automation components from Java. It uses JNI to make native calls into the COM and Win32 libraries.  

雖然目前項目中還用不到,但是知道一下也是好的.以後用到的時候不用再費盡心思滿Google找了,呵呵.

標記一下.

下面還有一部分JACOB應用的執行個體和注意,來自http://shuxudong.blog.hexun.com/7591618_d.html

 

將doc檔案發布以後可能要在頁面上瀏覽,那麼在瀏覽的時候頁面上肯定要載入相應的瀏覽工具,如:autvue這樣在用戶端就必須安裝相應的瀏覽工具。如果將doc問及檔案轉換成html檔案就省去很多功夫。

上面是些如下內容的目的,希望你也清楚。

 

/**
  * @author sxd1
  * @param paths
  * @param savepaths
  * @see 完成從word文檔向HTML的轉換
  */
 public static void change(String paths, String savepaths) {
  File[] lists = getFileList(paths);
  String pathss = new String("");
  // 對目前的目錄下面所有檔案進行檢索
  for (int i = 0; i < lists.length; i++) {
   if (lists[i].isFile()) {
    String filename = lists[i].getName();
    // 判斷是否為doc檔案
    if (filename.endsWith("doc")) {
     ActiveXComponent app = new ActiveXComponent(
       "Word.Application");// Excel.Application
     // 啟動word
     String docpath = paths + filename;
     String htmlpath = savepaths
       + filename.substring(0, (filename.length() - 4));
     String inFile = docpath;
     // 要轉換的word檔案
     String tpFile = htmlpath;
     // HTML檔案
     boolean flag = false;
     try {
      app.setProperty("Visible", new Variant(false));
      // 設定word不可見
      Object docs = app.getProperty("Documents").toDispatch();
      Object doc = Dispatch.invoke((Dispatch) docs, "Open",
        Dispatch.Method, new Object[] { inFile },
        new int[1]).toDispatch();
      // 開啟word檔案
      Dispatch.invoke((Dispatch) doc, "SaveAs",
        Dispatch.Method, new Object[] { tpFile,
          new Variant(8) }, new int[1]);
      // 作為html格式儲存到臨時檔案
      Variant f = new Variant(false);
      Dispatch.invoke((Dispatch) doc, "Close",
        Dispatch.Method, new Object[] { new Variant(
          false) }, new int[1]);
      flag = true;
     } catch (Exception e) {
      e.printStackTrace();
     } finally {
      app.invoke("Quit", new Variant[] {});
     }
     System.out.println("轉化完畢!");
    }
   } else {
    pathss = paths;
    // 進入下一級目錄
    pathss = pathss + lists[i].getName() + "/";
    // 遞迴遍曆所有目錄
    change(pathss, savepaths);
   }
  }
 }

上面的代碼是程式的主體。

/**
  * @author sxd1
  * @param dirName
  * @return string[]
  * @see 得到給定目錄下面的所有檔案名稱,並存放到string[]中
  */
 private static File[] getFileList(String dirName) {
  File[] fileList = null;
  File dir = new File(dirName);
  if (dir.isDirectory())
   fileList = dir.listFiles();
  return fileList;
 }

這裡需要注意的是:程式是用jadoc包完成的。在寫程式之前需要完成下面的工作。因為JDK裡面沒有這個包。

1,下載jadoc.jar包,可以訪問:http://danadler.com/jacob/,找Version1.7

2,需要注意的是Version1.7中包括jadoc.jar和jadoc.dll兩個檔案但是在這裡只能用jadoc.jar,jardoc.dll需要重新下載。:http://tech.groups.yahoo.com/group/jacob-project/點“files”(當然你必須事先註冊並登陸並加入組,才能進入)找就jacod_jer142fix_bin.zip並下載。

3,將下載的jacod.jar拷貝到jdk的/jre/lib/ext下面如:C:/jdk1.5.0_01/jre/lib/ext

4,將下載的jacod.dll拷貝到jdk的jre/bin下面如:C:/jdk1.5.0_01/jre/bin

然後就可以運行了,祝成功!

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1592453

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.