Svg 从Java web应用程序导出PDF,带有客户端可视化

Svg 从Java web应用程序导出PDF,带有客户端可视化,svg,pdf-generation,wkhtmltopdf,phantomjs,Svg,Pdf Generation,Wkhtmltopdf,Phantomjs,我一直在用服务器端Java将HTML+CSS转换为PDF,例如飞碟() 现在,我需要看看随着客户端可视化API(如RaphaelJS)的增长而出现的其他方法,这些方法也应该包括在PDF导出中 理想情况下,我只需要一个打印友好的布局和CSS(有点像GoogleMaps),还有一种神奇的方式,Javascript调用可以将窗口静默地“打印”成PDF文件,而不是使用单独的PDF生成管道 有这样的事吗 如果没有,您会推荐什么其他方法 比如说 使用node.js或Rhino运行Raphael服务器端,使

我一直在用服务器端Java将HTML+CSS转换为PDF,例如飞碟()

现在,我需要看看随着客户端可视化API(如RaphaelJS)的增长而出现的其他方法,这些方法也应该包括在PDF导出中

理想情况下,我只需要一个打印友好的布局和CSS(有点像GoogleMaps),还有一种神奇的方式,Javascript调用可以将窗口静默地“打印”成PDF文件,而不是使用单独的PDF生成管道

有这样的事吗

如果没有,您会推荐什么其他方法

比如说

  • 使用node.js或Rhino运行Raphael服务器端,使用Batik将SVG输出转换为图像,渲染PDF服务器端
  • 同样的事情,但是做一些黑客从Raphael已经做的客户端工作中获取SVG
  • 在服务器上使用无头浏览器,如wkhtmltopdf或phantomjs,捕获并执行生成的HTML/JS服务器端

这些方法或其他建议是否成功?

这两个选项对我很有用:

  • 使用生成客户端PNG(仅适用于支持画布的情况)

  • 服务器端PDF或PNG生成,带有(您可能需要

请询问您是否需要有关如何使用这些解决方案的更多详细信息。

为了能够使用无头浏览器打印PDF服务器端,我对PhantomJS和CasperJS进行了(非常)简单的测试。它确实需要额外的非Java工具,但我认为这种方法更适合未来。 在这些示例中,我能够动态加载网页,让angular初始化,然后用Javascript代码与之交互,以便打印页面,就像用户在真实浏览器中修改页面一样


以下是我的示例:

您可能想看看[zing][1],或者您可以使用java和batik直接将svg转换为pdf-请参见[Here][2]-不知道他们是否有javascript verison。[1] :[2]:wkhtmltopdf看起来是一个可行的选择。这比phantomjs好吗?我发现它更容易使用;您只需执行一个命令行即可将PDF(或PNG)放入所需文件夹中。如果您必须显示的页面依赖于会话,则可以添加cookie。