【问题标题】:print jfreechart on IE在 IE 上打印 jfreechart
【发布时间】:2017-07-11 19:16:42
【问题描述】:

我在 Internet Explorer 上打印了一个 jfreechart,但我得到了一个空白页。 其实我的IE版本是11.0.9600.18697CO, 11.0.43 (KB4021558)。

旧版 IE 没有这个问题。

我在 Chrome 和 Firefox 上没有这个问题。

我的 freechart 在服务器上生成,通过 servlet 在客户端显示并在服务器上删除(这是一次 jfreechart])。

在 IE 的控制台调试中,当我执行 window.print();有请求发送到服务器。我认为它引起了问题(尽管 http 代码 = 200)。

如果我不删除服务器上的图表,我没有问题。

有人遇到同样的问题吗?解决方案? 多谢, 最好的问候

【问题讨论】:

    标签: internet-explorer-11 jfreechart


    【解决方案1】:

    在使用ChartUtilities 的servlet 上下文中,不要使用save… 方法之一,而是尝试使用相应的write… 方法。

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws … {
        OutputStream out = response.getOutputStream();
        …
        //ChartUtilities.saveChartAsPNG(file, chart, …);
        ChartUtilities.writeChartAsPNG(out, chart, …);
    }
    

    你能解释一下为什么吗?我正在使用ServletUtilities.saveChartAsPNG()

    我猜有一个竞争条件允许文件被过早删除。如果您需要ChartRenderingInfo,则对应的ChartUtilities 方法可能是writeChartAsPNG()。如果无法切换,请使用DelayQueue<File> 推迟删除临时文件。

    【讨论】:

    • 你能解释一下原因吗?我正在使用 [jfree.org/jfreechart/api/javadoc/org/jfree/chart/servlet/…
    • 我已经在上面详细说明了。
    • 我无法将 ServletUtilities.saveChartAsPNG 切换到 ChartUtilities.writeChartAsPNG,因为我绘制了图表并将其显示在一个带有 标记的 jsp 文件中,例如 。我想我会尝试不使用oneTime的图表,然后过一会儿使用cron(系统或spring)删除文件!
    • src 不必是文件;如果可以是 servlet,则为 example
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 2016-02-17
    • 2014-09-11
    相关资源
    最近更新 更多