一、HTML填充数据
import com.alibaba.fastjson.JSONObject;
import freemarker.template.Configuration;
import freemarker.template.Template;
import lombok.extern.slf4j.Slf4j;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class HtmlUtil {
public static File getTemplateContent(String templatePath,
File pdfFile, String outFileName, Map<String, Object> paramMap) throws Exception {
Configuration configuration =
new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
File templateFile = new File(templatePath);
File file = new File(pdfFile.getParent() + File.separator + outFileName);
file.createNewFile();
log.info("填充数据:{}", paramMap);
try {
configuration.setDirectoryForTemplateLoading(templateFile.getParentFile());
configuration.setDefaultEncoding("UTF-8");
Template template = configuration.getTemplate(templateFile.getName(),"UTF-8");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw, 1024);
template.process(paramMap, bw);
bw.flush();
bw.close();
} catch (Exception e) {
log.info("填充HTML模板数据异常:{}", e, e.getMessage());
}
return file;
}
public static void main(String[] args) throws Exception {
Map<String, Object> paramMap = new HashMap<>();
paramMap.put("custName", "张三");
paramMap.put("idNo", "123456");
paramMap.put("subjectName", "1");
paramMap.put("txnAmt", "1");
paramMap.put("loanPactNo", "123456789");
paramMap.put("beginYear", "2022");
paramMap.put("beginMonth", "07");
paramMap.put("beginDay", "20");
paramMap.put("repayYear", "2022");
paramMap.put("repayMonth", "07");
paramMap.put("repayDay", "20");
paramMap.put("currYear", "2022");
paramMap.put("currMonth", "07");
paramMap.put("currDay", "20");
HtmlUtil.getTemplateContent("D://compensate.html", new File("D://1.pdf"), "/2.html", paramMap);
}
}