//world文件转pdf需要的jar包
<dependency>
<groupId>fr.opensagres.xdocreport</groupId>
<artifactId>org.apache.poi.xwpf.converter.pdf</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-Internal</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-MOXy</artifactId>
<version>8.0.0</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-export-fo</artifactId>
<version>8.0.0</version>
</dependency>
vo:实体
package ......vo;
import lombok.Data;
@Data
public class CreditWordVO {
/**
* 业务id
*/
private String applyId;
/**
* 合同id
*/
private String contractId;
/**
* 合同类型
*/
private String type;
}
1、工具类
package ....common.utils;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.ZipUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.pactera.jep.common.constant.TemplateEnum;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xwpf.usermodel.*;
import org.docx4j.Docx4J;
import org.docx4j.fonts.IdentityPlusMapper;
import org.docx4j.fonts.Mapper;
import org.docx4j.fonts.PhysicalFonts;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.springframework.core.io.ClassPathResource;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* @author
*/
@Slf4j
public class FileUtils {
/**
* 文件临时目录
*/
public final static String ZIP_FILE_ZIPTEMPORARY = System.getProperty("user.home") + File.separator + "zipTemporary";
/**
* 判断文件格式
*
* @param file
* @return
*/
public static boolean checkFileFormat(MultipartFile file) {
if (file == null) {
return false;
}
if (file.isEmpty() || file.getSize() == 0) {
return false;
}
try {
String type = FileTypeJudge.getFileType(file.getInputStream());
// TXT,DOCX
if (FileType.TXT.getValue().equals(type)) {
return true;
}
// TXT
if (type == null) {
return true;
}
// PPT,DOC,XLS
if (FileType.XLS_DOC.getValue().equals(type)) {
return true;
}
// XLSX
if (FileType.XLSX_DOCX.getValue().equals(type)) {
return true;
}
// PDF
if (FileType.PDF.getValue().equals(type)) {
return true;
}
// PNG
if (FileType.PNG.getValue(