How to use a JavaScript chart library like D3.js or Raphaël in server-side Java

前端 未结 3 1106
面向向阳花
面向向阳花 2021-02-04 11:56

I would like to use D3.js (or maybe Raphaël) for backend-generated reports using XSL-FO with Java. These JavaScript libraries should be used for several reasons:

  1. T
相关标签:
3条回答
  • 2021-02-04 12:21

    I worked on that about a year ago. I managed to have parts of HighCharts (SVG graphing in javascript) working with Rhino. I had to plugged env.js into it and ran into a lot of problems regarding canvas Element, especially around Bounding Boxes computations. Objects in Rhino doesn't implement getBBox(), which can't easily be faked.

    My goal was to finally render it in PDF with Batik... It took too much time, and we decided to switch to another technology.

    So, today, we're using wkhtmltopdf, which is not Java, but which is a static executable that can be embedded in a jar and launched easily from java side. By the way, xvfb is mandatory on Linux if you want to render something. That's pretty the same thing as PhantomJS

    0 讨论(0)
  • 2021-02-04 12:28

    You might want to have a look at these d3 wrappers:

    • javafx-d3

    https://github.com/stefaneidelloth/javafx-d3

    • gwt-d3:

    https://github.com/gwtd3/gwt-d3

    • "Freecode Charts and D3 Wrapper":

    https://vaadin.com/directory#!addon/freecode-charts-and-d3-wrapper

    0 讨论(0)
  • 2021-02-04 12:37

    You could use phantom.js. It's a headless browser based on webkit, which allows you to run JavaScript without the need for a browser.

    Using this you could just execute a system call to run phantom.js with for your JavaScript code and inputs. It would then create your output accordingly. See this example.

    0 讨论(0)
提交回复
热议问题