Java 填充HTML文档数据

559 阅读1分钟

一、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 {​​
    /**     
     * 填充HTML模板数据     
     * @param templatePath 模板文件名     
     * @param outFileName 输出文件名     
     * @param paramMap 输入数据     
     * @throws Exception     
     */    
     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);
    }​
}