我想将D3.js(或者也许是Raphaël)用于XSL- FO和Java生成的后端报告。使用这些JavaScript库的原因有几个:
因此,使用任何类似的Java库都是不太理想的选择。
现在,将D3.js与Java结合使用的最直接的方法是使用诸如selenium之类的笨重的工具来渲染虚拟HTML页面并在其中执行JavaScript。但这对我来说似乎太过分了。
有没有更简单的方法可以在同一Java进程中直接执行这种JavaScript?我问是因为D3.js旨在在HTML文档的上下文中工作。我不确定Rhino或其他Java脚本实现是否可以做到这一点
您可以使用phantom.js。这是一个基于webkit的无头浏览器,可让您无需浏览器即可运行JavaScript。
使用此方法,您只需执行一个系统调用即可运行phantom.js,并为其添加JavaScript代码和输入。然后它将相应地创建您的输出。请参阅此示例。