您好,登錄后才能下訂單哦!
怎么在java中使用jacob將word轉換為pdf?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
具體內容如下
jacob 缺點:需要 window 環境,而且速度是最慢的需要安裝 msofficeWord 以及 SaveAsPDFandXPS.exe ( word 的一個插件,用來把 word 轉化為 pdf )
開發流程:
SaveAsPDFandXPS 下載地址
jacob 包下載地址:
1、先安裝SaveAsPDFandXPS
2、下載 jacob 解壓后存放路徑:
jacob.jar 放在 C:\Program Files\Java\jdk1.8.0_171\jre\lib\ext目錄下
jacob.dll 放在 C:\Program Files\Java\jdk1.8.0_171\jre\bin 目錄下
實現代碼如下:
package com.casf.hn.core.util; import java.io.File; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant; /** * 效果最好的一種方法,但是需要 window 環境,而且速度是最慢的需要安裝 msofficeWord 以及 SaveAsPDFandXPS.exe ( * word 的一個插件,用來把 word 轉化為 pdf,可以不用安裝,本次未安裝測試通過 ) * * * */ public class WordToPdf { private static final int wdFormatPDF = 17; // PDF 格式 public void wordToPDF(String sfileName, String toFileName) { System.out.println("啟動 Word..."); long start = System.currentTimeMillis(); ActiveXComponent app = null; Dispatch doc = null; try { app = new ActiveXComponent("Word.Application"); app.setProperty("Visible", new Variant(false)); Dispatch docs = app.getProperty("Documents").toDispatch(); doc = Dispatch.call(docs, "Open", sfileName).toDispatch(); System.out.println("打開文檔..." + sfileName); System.out.println("轉換文檔到 PDF..." + toFileName); File tofile = new File(toFileName); if (tofile.exists()) { tofile.delete(); } Dispatch.call(doc, "SaveAs", toFileName, // FileName wdFormatPDF); long end = System.currentTimeMillis(); System.out.println("轉換完成..用時:" + (end - start) + "ms."); } catch (Exception e) { System.out.println("========Error:文檔轉換失敗:" + e.getMessage()); } finally { Dispatch.call(doc, "Close", false); System.out.println("關閉文檔"); if (app != null) app.invoke("Quit", new Variant[] {}); } // 如果沒有這句話,winword.exe進程將不會關閉 ComThread.Release(); } public static void main(String[] args) { WordToPdf d = new WordToPdf(); d.wordToPDF("D:\\cssj\\xxxx.doc", "D:\\cssj\\xxxx.pdf"); } }
運行結果:
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。