參考文件: jacob excel轉pdf
使用 jacob 將 excel 或 word文件轉成 pdf時,會讓 java tomEE server當掉,在 bin目錄就會出現兩個檔案,一個是****pid**.log,另一個是 ****pid***.mdmp ,檢視 log檔時在前面幾行會有 The crash happened outside the Java Virtual Machine in native code出現,內容也找的到 jacob variant的文字,在 windows 事件檢示器上可以看的到一個錯誤是關顧 combase.dll的錯誤,目前解決的方法如下,如果解決問題就不用往下個步驟執行
1.針對轉 pdf程式碼
檢查在轉檔完後,不管成功或失敗,要加上 ComThread.Release();,目的在於把 excel 或 word的程序給關掉,沒有這一行的話,可能會造成 office 程序沒關掉, 而且 server 端會開啟多個的狀況
針對 excel,建議不要執行巨集, ActiveXComponent 物件需設定如下
setProperty("AutomationSecurity", new Variant(3));
Property("EnableEvents", new Variant(false));
2.更換 jacob版本 ,下載版本 https://github.com/freemansoft/jacob-project
3.更換 java 版本
4.更換 office版本
沒有留言:
張貼留言