Java で XSL-FO を使用してバックエンドで生成されたレポートにD3.js (またはおそらくRaphaël )を使用したいと考えています。これらの JavaScript ライブラリは、いくつかの理由で使用する必要があります。
- Java ライブラリ (IMO) で見たものよりも美しいグラフをレンダリングします。
- XSL-FOで必要なSVGとPNGの両方をサポートしています(私が知っていることから)。
- また、アプリケーションのフロントエンド部分でも使用されます。Java を使用してバックエンドでもそれらを再利用すると、開発者の学習曲線とコードベースのフットプリントが削減されます。
したがって、同様の Java ライブラリを使用することはあまり好ましくありません。
Java で D3.js を使用する最も簡単な方法は、セレンのような重いツールを使用して、ダミーの HTML ページをレンダリングし、その中で JavaScript を実行することです。しかし、それは私にはやり過ぎのように思えます。
この種の JavaScript を同じ Java プロセスで直接実行する簡単な方法はありますか? D3.js は HTML ドキュメントのコンテキストで動作するように設計されているため、質問しています。それがRhinoや他のJavaスクリプトの実装で可能かどうかはわかりません