package cn.edu.sdu.test; import java.io.File; import com.jacob.activeX.ActiveXComponent; import com.jacob.com.Dispatch; public class Word2PDF { static final int wdDoNotSaveChanges = 0;// 不保存待定的更改。 static final int wdFormatPDF = 17;// PDF 格式 public static void main(String[] args) { String filename = "D:/測試文件.doc"; String toFilename = filename + ".pdf"; System.out.println("啟動Word..."); long start = System.currentTimeMillis(); ActiveXComponent app = null; try { app = new ActiveXComponent("Word.Application"); app.setProperty("Visible", false); Dispatch docs = app.getProperty("Documents").toDispatch(); System.out.println("打開文檔..." + filename); Dispatch doc = Dispatch.call(docs,// "Open", // filename,// FileName false,// ConfirmConversions true // ReadOnly ).toDispatch(); System.out.println("轉換文檔到PDF..." + toFilename); File tofile = new File(toFilename); if (tofile.exists()) { tofile.delete(); } Dispatch.call(doc,// "SaveAs", // toFilename, // FileName wdFormatPDF); Dispatch.call(doc, "Close", false); long end = System.currentTimeMillis(); System.out.println("轉換完成..用時:" + (end - start) + "ms."); } catch (Exception e) { e.printStackTrace(); System.out.println("========Error:文檔轉換失?。?quot; + e.getMessage()); } finally { if (app != null) app.invoke("Quit", wdDoNotSaveChanges); } } } 報的錯誤是: 啟動Word... 打開文檔...D:/測試文件.doc 轉換文檔到PDF...D:/測試文件.doc.pdf com.jacob.com.ComFailException: Invoke of: SaveAs Source: Microsoft Word Description: 數值超出范圍 ========Error:文檔轉換失敗:Invoke of: SaveAs Source: Microsoft Word Description: 數值超出范圍 at com.jacob.com.Dispatch.invokev(Native Method) at com.jacob.com.Dispatch.invokev(Dispatch.java:858) at com.jacob.com.Dispatch.callN(Dispatch.java:455) at com.jacob.com.Dispatch.call(Dispatch.java:557) at cn.edu.sdu.test.Word2PDF.main(Word2PDF.java:37) 怎么解決?
2 回答
- 2 回答
- 0 關注
- 266 瀏覽
添加回答
舉報
0/150
提交
取消