Vaadin SVGConversor日期格式

时间:2016-12-16 09:14:40

标签: svg charts vaadin7

我正在使用vaadin 7.7.6中的Vaadin图表。当我创建一个图表,其中我在不同的日期获得了几​​个值,图表是正确创建的。这里我把所得结果的图像放在每个值都是要表示的对中。

Correct chart with dates

当我想将此图表转换为PDF文件或创建将此图表作为图像返回其他位置的Web服务时,问题就出现了。

为了从图表中创建图像,我按照建议in the documentation使用SVGGenerator。一般来说,它工作得很好,我能够创建内部图表的PDF。但是如果X轴使用日期,我会遇到这个问题。在这里,我转换为SVG后复制图表:

Incorrect chart with dates

(我删除了一些图表控件作为导航和范围选择器,因为在图像或PDF中无用)。

在图像中我们可以观察到现在在X轴上日期没有正确显示。我已经检查了几个小时的问题,我很确定这个问题与SVGConversor有关。

读取SVGConversor代码,我找到了withLang(String lang)方法。我的想法是,如果我设置语言,日期会正确显示(类似于本地化)。我无法找到此函数所需值的任何文档,因此,我尝试了一些值,例如enen_ENen-ENEnglish ,. ......但是我放在那里的价值并不重要,总是会发生这个错误:

java.lang.RuntimeException: SVG generation failed: ReferenceError: Can't find variable: en

尽管如此,我不确定withLang(String lang)方法是解决我的问题的方法。

问题是:转换为SVG时,如何在图表的X轴上显示正确的日期?

1 个答案:

答案 0 :(得分:0)

似乎最终的解决方案非常简单。问题是我没有设置xAxis类型。在Vaadin视图中使用图表时不是问题,但SVGConverter必须知道轴。然后添加这行代码:

        chart.getConfiguration().getxAxis().setType(AxisType.DATETIME);

修复SVGConverter的问题。现在,我的PDF文档中正确表示了图表。