帮忙分析一下这个jacob读word转换为html 的代码

sunburn2010 2010-05-16 05:16:13
jacob把word转换为html后再读html输出到页面.报错说html文件不存在.


org.apache.jasper.JasperException: Exception in JSP: /office.jsp:154

151: app.invoke("Quit", new Variant[] {});
152: }
153:
154: FileReader fr = new FileReader(htmlfile); //
155: BufferedReader br = new BufferedReader(fr); //建立BufferedReader对象,并设定由br对象变量引
156:
157: /* BufferedInputStream bis = null;


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:361)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)


root cause

java.io.FileNotFoundException: temp.html (系统找不到指定的文件。)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(Unknown Source)
java.io.FileInputStream.<init>(Unknown Source)
java.io.FileReader.<init>(Unknown Source)
org.apache.jsp.office_jsp._jspService(office_jsp.java:209)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:321)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:257)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)



代码:

String docfile = path + "\\" + fileName;
String htmlfile = "temp.html";

ActiveXComponent app = new ActiveXComponent("Word.Application");// 查找word组件

try {
app.setProperty("Visible", new Variant(false));// 设置word不可见
Dispatch docs = app.getProperty("Documents").toDispatch();
Dispatch doc = Dispatch.invoke(
docs,
"Open",
Dispatch.Method,
new Object[] { docfile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();// 打开word文件,注意这里第三个参数要设为true,这个参数表示是否以只读方式打开,因为我们不用保存原文件,所以以只读方式打开,如果你想进行读写,那么就得设为false。
Dispatch.invoke(doc, "SaveAs", Dispatch.Method, new Object[] {
htmlfile, new Variant(8) }, new int[1]);//作为html格式保存到目标文件(html-new Variant(8) txt-new Variant(2))
Variant f = new Variant(false);
Dispatch.call(doc, "Close", f); //关闭word文件
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke("Quit", new Variant[] {});
}

FileReader fr = new FileReader(htmlfile); //
BufferedReader br = new BufferedReader(fr);
String Line;
while((Line= br.readLine())!=null) { //读取一行数据
//String tmpStr=new String(Line.getBytes("iso-8859-1"),"GB2312");
out.write(Line);
...全文
107 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
通过未来 2012-02-24
  • 打赏
  • 举报
回复
root cause

java.io.FileNotFoundException: temp.html (系统找不到指定的文件。)



错误不是很明显吗 是找不到temp.html 路径的问题吧
shy_snow 2010-09-28
  • 打赏
  • 举报
回复
你的htmlfile变量要包含完整的路径信息,不然怎么能建立输入流啊。
要像这样htmlfile="D://tomcat//temp.html"
japt88_115656292 2010-05-17
  • 打赏
  • 举报
回复
帮顶!。。。。。
naruto__ 2010-05-16
  • 打赏
  • 举报
回复
帮顶!
hnxxhc 2010-05-16
  • 打赏
  • 举报
回复
可能UTF-8的问题,不过也不是很确定,我没有这样使用过
qustgjk 2010-05-16
  • 打赏
  • 举报
回复
帮顶!

81,091

社区成员

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

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