附件.工具类代码
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.docx4j.Docx4J;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.PresentationMLPackage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.List;
import java.util.Locale;
import java.util.Map;
public class FreeMarkerUtil {
private static FreeMarkerUtil instance = new FreeMarkerUtil();
private static final String TEMPLATE_XML_NAME_ZH = "word_zh.ftl";
private static final String TEMPLATE_XML_NAME_EN = "word_en.ftl";
private static final String INSPECTION_TEMPLATE_ZH = "template_zh.ftl";
private static final String EXCEL_SUFFIX_XLSX = ".xlsx";
private static final String EXCEL_SUFFIX_XLSM = ".xlsm";
private static final String EXCEL_SUFFIX_XLS = ".xls";
private static final String FILE_SUFFIX_XML = ".xml";
private static final String FILE_SUFFIX_PPTX = ".pptx";
private FreeMarkerUtil() {
}
public static FreeMarkerUtil getInstance() {
return instance;
}
public String getMergeXml(boolean isMergeRestartDown, boolean isMergeDown) {
if (isMergeRestartDown) {
return FreeMarkerConstants.CELL_MERGE_RESTART;
}
if (isMergeDown) {
return FreeMarkerConstants.CELL_MERGE;
}
return Constants.NOTHING_STR;
}
public String getValueXml(String value, boolean isFontBold) {
String fontBold = Constants.NOTHING_STR;
if (isFontBold) {
fontBold = FreeMarkerConstants.FONT_BOLD;
}
return String.format(Locale.ROOT, FreeMarkerConstants.CELL_CONTENT, fontBold, WordUtil.replaceToXmlFlag(value));
}
public String getCellXml(String width, String merge, String color, String valueXml) {
return String.format(Locale.ROOT, FreeMarkerConstants.TABLE_CELL, width, merge