jacob实现将word转为其他文件格式,但是不知道为什么转pdf的时候就报错,求高手指点!!!!!

huxinkun15 2011-11-05 03:12:24
启动Word
打开文档D:\aa.doc
转换文档到PDF D:\aa.pdf

========Error:文档转换失败:Invoke of: SaveAs
Source: Microsoft Word
Description:



转txt,html,dot,xml都可以,唯独转pdf时候出现这个异常,求高手指点!!!!!

jacob.jar和jacob.dll都已弄好,可编译运行的代码:



import java.io.File;

import com.jacob.activeX.ActiveXComponent;
import com.jacob.com.Dispatch;
import com.jacob.com.Variant;

public class Word2Pdf {

static final int wdDoNotSaveChanges = 0;// 不保存待定的更改。
static final int wdFormatPDF = 17;// PDF 格式



public static void main(String[] args) {

String filename = "D:\\aa.doc";
String toFilename = "D:\\aa.pdf";
System.out.println("启动Word");
ActiveXComponent app = new ActiveXComponent("Word.Application");
try {
app.setProperty("Visible", new Variant(false));

Dispatch docs = app.getProperty("Documents").toDispatch();
System.out.println("打开文档" + filename);
Dispatch doc = Dispatch.invoke(docs, "open", Dispatch.Method, new Object[]{filename,new Variant(false)
,new Variant(true)}, new int[1]).toDispatch();

System.out.println("转换文档到PDF" + toFilename);
File tofile = new File(toFilename);
if (tofile.exists()) {
tofile.delete();
}
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[]{toFilename,new Variant(wdFormatPDF)}, new int[1]); //设置17,即转为pdf
Variant file = new Variant(false);
Dispatch.call(doc, "Close", file);
}
catch (Exception e) {
System.out.println("========Error:文档转换失败:" + e.getMessage());
}
finally {
if (app != null)
app.invoke("Quit", wdDoNotSaveChanges);
}
}
}
...全文
67 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
huxinkun15 2011-11-05
  • 打赏
  • 举报
回复
问题解决了~~~不敢独享,希望能帮到有同样问题的大牛们吧~~
其实就是少了一个小插件,SaveAsPDFandXPS 下载一个,900K~~我的是word2007对应的~~~

这样运行代码就能正常转换了~
huxinkun15 2011-11-05
  • 打赏
  • 举报
回复
up!!!急啊~~

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧