Freemarker生成电子协议并转png图片
Tue 23 September 2025
Freemarker生成电子协议并转png图片 目录 依赖包 配置模板文件目录 Java代码 html转png图片需要用到wkhtmltopdf Freemarker 是一种流行的模板引擎,它可以使用 Java、C#、PHP 等语言编写模板,并从模板中生成 HTML、XML、文本等各种文件格式。Freemarker 模板由一个或多个包含变量和指令的文本文件组成,这些变量和指令可以在运行时被替换或执行。
依赖包
public void test() {
Configuration configuration = freeMarkerConfigurer.getConfiguration();
Template template = configuration.getTemplate("indexHTKWECHAT_PAY.html");
// 数据
Map
// html 替换占位符
private File writeHtml(Template template, Map
// html 转png 示例代码 private File createAgreementPicture(File htmlFile) throws IOException { File outputFile = new File(FileUtil.getTmpDir(), htmlFile.getName() + ".png"); log.info("生成图片开始, HTML地址 {}, 图片地址:{}", htmlFile.getAbsolutePath(), outputFile.getAbsolutePath()); String commandProcess = "wkhtmltoimage --width 400 --quality 94 " + htmlFile.getPath() + " " + outputFile.getPath(); log.info("协议执行procommand:{}", commandProcess); long startTime = System.currentTimeMillis(); //获取开始时间 Process process = Runtime.getRuntime().exec(commandProcess); try { int exitVal = process.waitFor(); log.info("协议html转换png结果:{}", exitVal); } catch (InterruptedException e) { e.printStackTrace(); log.info("协议html转换png错误:{}", e.getMessage()); throw new IOException(e); } long endTime = System.currentTimeMillis(); //获取结束时间 log.info("程序运行时间: " + (endTime - startTime) + "ms"); log.info("生成图片结束,地址: {}", outputFile.getPath()); Thumbnails.of(outputFile).scale(1).outputQuality(0.9).toFile(outputFile); return outputFile; }
Category: 待整理