java Springboot服务器端图表创建

fdbelqdn  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(171)

我想在服务器端创建谷歌图表。我发现了一些插件,如-GWT Tutorial,但我没有发现它有帮助,因为我们需要在这里的客户端交互。我需要的东西,我可以使用它在服务器端创建图表,这样我就可以存储这些图表图像,而不需要用户交互。我还发现了一个插件-Charts4j,但我没有找到任何有用的例子或教程这个插件。
Update-使用Thymeleaf,我能够将HTML文件加载到后端,并能够使用HTMLToPDF插件将HTML转换为PDF。HTML工作得很好。PDF正在生成。现在唯一剩下的问题是HTML中的javascript没有得到评估。有什么解决方案吗?
Another Update -
当我找到一个解决方案时,我发现了另一个障碍。我能够使用ScripEngine执行脚本,但ScriptEngine没有找到document。然后我使用Java Jsoup's Document,将对象发送到ScriptEngine,但Jsoup的文档与Javascript的文档具有不同的方法。

oxosxuxt

oxosxuxt1#

我找到了一个解决方案。我使用ThymeleafSeleniumIText HTML2PDF解决了我的问题。我按照给定的步骤-
我在POM中添加了以下依赖项-

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
        <groupId>io.github.bonigarcia</groupId>
        <artifactId>webdrivermanager</artifactId>
        <version>5.0.3</version>
    </dependency>
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.141.59</version>
</dependency>
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>html2pdf</artifactId>
    <version>4.0.4</version>
</dependency>

然后,我使用ThymeleafResolver解析了包含javascript的HTML模板-

public ServletContextTemplateResolver templateResolver() {
    ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver();
    templateResolver.setPrefix("/<My folder name in resources>/");
    templateResolver.setSuffix(".html");
    templateResolver.setTemplateMode("HTML");

    return templateResolver;
}

public SpringTemplateEngine templateEngine() {
    SpringTemplateEngine templateEngine = new SpringTemplateEngine();
    templateEngine.setTemplateResolver(templateResolver());
    templateEngine.setTemplateEngineMessageSource(messageSource());
    return templateEngine;
}

在我的代码里我用了-

Context ctx = new Context();
String html = templateEngine.process(<My HTML file name>, ctx);

这解决了我的HTML。现在,关于JavaScript,我引用了这个-Evaludate JS,我的问题解决了。
谢谢你。

相关问题