当前位置:网站首页 > 网站建设教程 > HTML教程 > 正文

使用freemarker动态填充html并可转为图片

教程管理员 发布于2023-09-29 11:42 HTML教程 149

简介: 使用freemarker动态填充html并可转为图片

1. 引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>


2. 模板html文件中将需要替换的地方使用占位符进行替换

  1. 使用占位符${}进行占位操作;
<div style="height: 17px;">
  <span style="height: 100%;
  line-height: 17px;">姓名:</span>
  <span style="height: 100%;
  line-height: 17px;">${name}</span>
</div>


3. 编写Util类

  1. 使用try (FileWriter writer = new FileWriter(targetHtmlPath)) { }来自动关闭流,避免手动释放;
  2. 将模板html文件放到starter目录下的resource里的templates包下即可;
public class GenHtmlUtil {

    public static void genNewHtml(String template, Map<String, Object> map, String targetHtmlPath) {

        try (FileWriter writer = new FileWriter(targetHtmlPath)) {
            Configuration configuration = new Configuration(Configuration.getVersion());
            String templatePath = GenHtmlUtil.class.getResource("/").getPath() + "templates";
            configuration.setDirectoryForTemplateLoading(new File(templatePath));
            Template t = configuration.getTemplate(template);
            String content = FreeMarkerTemplateUtils.processTemplateIntoString(t, map);
            writer.write(content);
            writer.flush();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4. 调用Util

  1. 对第2步中使用${}进行占位的地方使用Map进行填充,并调用Util;
Map<String, Object> map = Maps.newHashMap();
map.put("name", name);
map.put("sex", sex);
map.put("age", age);

GenHtmlUtil.genNewHtml("template.html", map, "result.html");


然后就可在项目根目录下找到生成的名为"result.html"html文件啦。

那么如何将生成的html文件转为图片文件呢?


琼ICP备09004296号-12