Vaadin SVGConversor 日期格式

Vaadin SVGConversor date format

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

问题来了,当我想将此图表转换为 PDF 文件或创建 Web 服务时 returns 此图表作为要包含在其他地方的图像。

为了从图表创建图像,我使用推荐的 SVGGenerator in the documentation。总的来说,它工作得很好,我可以创建里面有图表的 PDF。但是对于这张图表,如果 X 轴使用 dates,我会遇到问题。这里我把转换成SVG后的图表复制过来:

(我删除了一些图表控件作为导航和范围选择器,因为它们在图像或 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 轴上显示正确的日期?

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

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

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