在說到 JACOB 之前先來談談 Java 特性
首先 大家都知道的 Java 優點中 其中一項即是 "跨平台"
Java 將程式設計師與底層的作業系統隔開 讓 Java 程式能夠在不同的平台上開發、運行
說到這個優點,也就因為如此導致 Java 與底層的作業系統變的毫無關係
這樣的情況讓 Java 需要透過底層的作業系統操作或運用某些函式庫是格外困難
例如最近遇到的需求,我們需要將 MS office 的檔案轉檔成 HTM
如果 AP 存在於 Window OS 下,要如何透過 Java 實現?有幾種方法
其中一個的解決方案可以透過 JNI 另外一種可以考慮一下 JACOB
JACOB 是透過 C 語言寫成的,並提供一個 Java bridge 讓你的 Java 程式可以呼叫
執行環境需要在 Window OS 下,在 Linux 是不 work 的
因為在使用 JACOB 時,除了導入相關的 JAR 以外,還需將 jacob.dll
放到 system32 底下
可以到 http://danadler.com/jacob/ 下載 JACOB
但是這邊的Project可能是舊版的,它支援的 MS Office 是 2000 之前的
所以如果用了這裡的Library出現了類似以下的問題
Exception in thread "main" com.jacob.com.ComFailException: A COM exception has been encountered
而且找不出原因的話
那建議到 http://sourceforge.net/projects/jacob-project/ 去下載最新版的
如果今天運用 JACOB 的 AP 是一支 WEB 的 project 的話 要是發生的以下問題
Exception in thread "main" java.lang.UnsatisfiedLinkError: no jacob in java.library.path
可以嘗試看看在 WEB-INF/lib 底下加入 JACOB 的 JAR 檔
如果還是有提它問題
建議將 DLL 檔放入到JAVA 安裝路徑中 C:\Program Files\Java\jdk1.6.0_18\bin 底下
之後在來教紹一下 JACOB 如何針對 Office 執行轉檔
沒有留言:
張貼留言