为了账号安全,请及时绑定邮箱和手机立即绑定

报的错误是:D:/测试文件.doc 转换文档到PDF...D:/测试文件.doc.pdf

报的错误是:D:/测试文件.doc 转换文档到PDF...D:/测试文件.doc.pdf

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:文档转换失败:" + 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 回答

?
慕哥6287543

TA贡献1831条经验 获得超10个赞

现在你的Microsoft Word上另存为pdf文件试试看。 
看看word的设置。我执行了你的代码就没有报错

查看完整回答
反对 回复 2023-04-23
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

shishi这个方法  

Dispatch.invoke(docs,"Open",Dispatch.Method,new Object[]{filename},new int[1]).toDispatch();  

Dispatch.invoke(docs,"SaveAs",Dispatch.Method,new Object[]{toFilename },new int[1]);  


查看完整回答
反对 回复 2023-04-23
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信