![JAR search and dependency download from the Maven repository](/logo.png)
love.keeping.starter.web.utils.PrintUtil Maven / Gradle / Ivy
The newest version!
package love.keeping.starter.web.utils;
import love.keeping.starter.common.exceptions.impl.DefaultSysException;
import love.keeping.starter.common.utils.CollectionUtil;
import love.keeping.starter.web.bo.BasePrintDataBo;
import love.keeping.starter.web.dto.BaseDto;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import freemarker.template.TemplateExceptionHandler;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.util.Map;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class PrintUtil {
/**
* 获取freeMarker Template
*
* @param templateName
* @return
*/
private static Template getTemplate(String templateName) {
Configuration cfg = new Configuration(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS);
cfg.setClassForTemplateLoading(PrintUtil.class, "/");
cfg.setDefaultEncoding("UTF-8");
cfg.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
try {
return cfg.getTemplate(templateName);
} catch (IOException e) {
log.error(e.getMessage(), e);
throw new DefaultSysException(e.getMessage());
}
}
/**
* 生成打印模板的html
*
* @param templateName 模板名称
* @param data 数据
* @return
*/
public static > String generate(String templateName,
T data) {
Template template = getTemplate(templateName);
Map root = data == null ? CollectionUtil.emptyMap() : JsonUtil.convert(data, Map.class);
StringWriter stringWriter = new StringWriter();
BufferedWriter writer = new BufferedWriter(stringWriter);
try {
template.process(root, writer);
} catch (TemplateException | IOException e) {
log.error(e.getMessage(), e);
throw new DefaultSysException(e.getMessage());
}
return stringWriter.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy