Java 將word轉為pdf jacob方式
阿新 • • 發佈:2018-02-22
name .aspx false quit void exception tof ant div
package com.doctopdf; 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 * * 下載地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=7* jacob 包下載地址:http://sourceforge.net/projects/jacob-project/ * 將解壓出來的文件 * jacob.jar 放在 E:\jdk1.8.0_14\jre\lib\ext 這裏使用自己的jdk安裝位置 * jacob.dll 放在 E:\jdk1.8.0_14\jre\bin 這裏使用自己的jdk安裝位置 * 如果沒放或者放錯位置,將出現報錯 * 註: x86是指32位系統 * x64是指64位系統 * * @author u Y * 支持doc docx文件轉pdf */ public classDocToPdf { private static final int wdFormatPDF = 17; // PDF 格式 17表示word轉pdf 44表示execl轉html 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(); } // 作為 html 格式保存到臨時文件: 17表示word轉pdf 44表示execl轉html 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) { DocToPdf d = new DocToPdf(); d.wordToPDF("C:\\Users\\Administrator\\Desktop\\畢業設計表結構設計.docx", "C:\\Spring.pdf"); } }
需要添加 jacob.jar
Java 將word轉為pdf jacob方式