Vaadin-SVG发生器,有其他选择吗?
这周我一直在研究瓦丁图表,我发现了一个我无法解决的问题。我需要发送几个图表到一个PDF生成(使用iTextpdf),我可以使用SVGGenerator。主要问题是我无法使用此解决方案,因为最终的笔记本电脑不允许任何安装,并且SVG生成器需要Phantomjs(也不能安装任何附加组件)。我试图找到一个不同的解决方案,将图表内容转换为我可以管理的文件或缓冲区,但我想我已经阅读了太多的帖子,我无法区分解决方案 因此,我将首先尝试澄清基本问题: a) 是否可以在笔记本电脑中不安装任何设备就管理SVG生成器 b) 如果没有,是否有其他方法将图表转换为对象?可以管理哪个类将其插入PDF 我可以向你保证,我曾试图阅读本论坛和官方瓦丁论坛中与此主题相关的所有文档,但我找不到任何解决方案。我不想显得懒惰,我只想避免花费更多的时间,并澄清主要的先决条件来解决这个问题 提前感谢您的时间和帮助 亲切问候,Vaadin-SVG发生器,有其他选择吗?,svg,charts,vaadin,Svg,Charts,Vaadin,这周我一直在研究瓦丁图表,我发现了一个我无法解决的问题。我需要发送几个图表到一个PDF生成(使用iTextpdf),我可以使用SVGGenerator。主要问题是我无法使用此解决方案,因为最终的笔记本电脑不允许任何安装,并且SVG生成器需要Phantomjs(也不能安装任何附加组件)。我试图找到一个不同的解决方案,将图表内容转换为我可以管理的文件或缓冲区,但我想我已经阅读了太多的帖子,我无法区分解决方案 因此,我将首先尝试澄清基本问题: a) 是否可以在笔记本电脑中不安装任何设备就管理SVG生成
David。如果没有某种web浏览器引擎,您将无法渲染Vaadin图表。这就是PhantomJS提供的。但是,如果您拥有一个成熟的web浏览器,您可以从那里手动获取SVG标记;自动化只是有点困难。这在Chrome中起作用:
copy(document.getElementsByTagName('svg')[0].outerHTML)
您不需要安装phantomjs,只需将其二进制文件与web应用程序捆绑在一起()。我在Amazon AWS部署中也做了同样的事情,效果很好。您可以截图并将其附加到pdf:
Screenshot screenshot = new Screenshot();
screenshot.setTargetComponent(myTargetComponent);
myChartLayout.addComponent(screenshot);
//when complete
screenshot.addScreenshotListener(new ScreenshotListener() {
public void screenshotComplete(ScreenshotImage image) {
//do something
}
});
//take screenshot
screenshot.takeScreenshot();