当前位置:编程学习 > JAVA >>

关于jacob插件打开word文件的路径问题

程序代码如下:
public void mhtToWord(String mhtFile, String wordFile) {
        ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
        try {
            app.setProperty("Visible", new Variant(false));
            Dispatch wordDoc = app.getProperty("Documents").toDispatch();
            wordDoc = Dispatch.invoke(wordDoc, "Add", Dispatch.Method,
                    new Object[0], new int[1]).toDispatch();
            Dispatch.invoke(app.getProperty("Selection").toDispatch(),
                    "InsertFile", Dispatch.Method, new Object[] { mhtFile, "",
                            new Variant(false), new Variant(false),
                            new Variant(false) }, new int[3]);
            Dispatch.invoke(wordDoc, "SaveAs", Dispatch.Method, new Object[] {
                    wordFile, new Variant(1) }, new int[1]);
            Dispatch.call(wordDoc, "Close", new Variant(false));
        } catch (Exception e){
            e.printStackTrace();
        } finally {
            app.invoke("Quit", new Variant[] {});
            ComThread.Release();
        }
mhtFile传进来的值为:"D:/20120227191436.html".
出现的异常为:
com.jacob.com.ComFailException: Invoke of: InsertFile
Source: Microsoft Word
Description: 文档名或其路径无效。 (D:/20120227191436.html)

at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:625)
at com.jacob.com.Dispatch.invoke(Dispatch.java:498)
at org.util.WordManager.mhtToWord(WordManager.java:103)


真的不太懂为什么这里的路径或者文件名无效... 求指教 --------------------编程问答-------------------- --------------------编程问答-------------------- 求高手啊... --------------------编程问答-------------------- 最坑爹的是.用tomcat控制台启动就没有这个异常,程序运行很正常.改用tomcat7w.exe这个可视化界面启动tomcat时,就会出错 --------------------编程问答--------------------
换个盘符试试,曾经也碰到过这问题,换个盘就好了。 --------------------编程问答-------------------- 没用啊。我换过盘符也试过的。。 --------------------编程问答--------------------
引用楼主  的回复:
程序代码如下:
public void mhtToWord(String mhtFile, String wordFile) {
  ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
  try {
  app.setProperty("Visible", new Variant(false……

我也出现这问题,请问楼主解决了吗?怎么解决的?Thanks --------------------编程问答--------------------
引用 5 楼  的回复:
没用啊。我换过盘符也试过的。。

换盘后你重启web服务器然后再试一下了吗? --------------------编程问答-------------------- 有个dll文件你放到 jdk下面了吗~ word没有操作过~ 只是操作调用delphi了 --------------------编程问答--------------------
引用 8 楼  的回复:
有个dll文件你放到 jdk下面了吗~ word没有操作过~ 只是操作调用delphi了

不是dll存放位置的问题 --------------------编程问答-------------------- 有这个文件么 换 // 试试 --------------------编程问答--------------------
引用 10 楼  的回复:
有这个文件么 换 // 试试

谢谢,你给我了启发!要打开的文件不存在时确实会报这种错误,不过我本机的环境跟客户的环境不一样,下午我到客户那试试,祝愿是这个原因。 --------------------编程问答--------------------
引用楼主  的回复:
程序代码如下:
public void mhtToWord(String mhtFile, String wordFile) {
  ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
  try {
  app.setProperty("Visible", new Variant(false……

1、楼主检查一下打开的文件是否确实存在
2、如果有保存的话,检查一下保存的目录是否存在
另外,找到解决办法后回复我一下,我也遇到这个问题了,我找到了以上两点原因,下午还得到客户那验证下是否是这两个原因。 --------------------编程问答--------------------
引用 12 楼  的回复:
引用楼主 的回复:
程序代码如下:
public void mhtToWord(String mhtFile, String wordFile) {
ActiveXComponent app = new ActiveXComponent("Word.Application"); // 启动word
try {
app.setProperty("Visible", new Variant(……

问题解决了,就是以下两个原因
1、检查一下打开的文件是否确实存在
2、如果有保存的话,检查一下保存的目录是否存在
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,