日期:2014-05-17  浏览次数:21179 次

包含图片的页面导出成WORD时候,图片不见了,请高手指教
我现在要将一个JSP页面导出成WORD文档,页面包括图片、表格等内容
使用的是JS导出
JScript code

function createReportToWord(){
    var fileName="定期分析报告("+"${visitDate}"+")";
    
    var oWD=new ActiveXObject("Word.Application");
    
    oWD.WindowState=2;

    var oDC=oWD.Documents.Add("",0,1);

    var oRange=oDC.Range(0,1);

    var sel=document.body.createTextRange();

    sel.moveToElementText(startPrint);

    sel.select();
    sel.execCommand("Copy");

    oRange.Paste();

    oWD.Application.visible=true;

    oDC.saveAs("d:\\"+fileName+".doc");
}


图片使用的是jfreechart生成的,不过生成之后没有保存到服务器文件夹中,但是能在页面显示出来。
我在做静态图片的时候,WORD文档里面图片可以显示出来,但是换成jfreechart生成的话,就是一张空白的图片。后台报异常如下:
2010-9-26 12:17:14 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet DisplayChart threw exception
javax.servlet.ServletException: Chart image not found
at org.jfree.chart.servlet.DisplayChart.service(DisplayChart.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
at com.foundersc.au.webapp.filter.FilterDispatcher.doFilter(FilterDispatcher.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
请高手指教


------解决方案--------------------
图片使用的是jfreechart生成的,不过生成之后没有保存到服务器文件夹中,但是能在页面显示出来。

你这样导成的图片,当然看不到了。保存的WORD,最多是保存一个URL,这种在线的文档,和你在单机上那种内嵌图片的WORD文档机制不同,对于图片,始终使用的是一种“链接”的原理,而不是数据嵌入,怎么可能保存成一样的呢。