一、简介
本工具类复制即可使用,内附测试代码,包含以下操作:
-- word 中 属性值替换
-- word 中 列表动态插入数据
-- word 转 pdf
-- 版本更新:
1、链式调用
2、方法解耦
二、环境
com.itextpdf
itextpdf
5.5.13.2
freemarker
freemarker
2.3.8
org.docx4j
docx4j
6.1.2
org.docx4j
docx4j-export-fo
8.1.7 //版本号不能高于8.1.7
net.sf.barcode4j
barcode4j-light
2.0
javax.xml.bind
jaxb-api
2.3.1
javax.activation
activation
1.1
org.glassfish.jaxb
jaxb-runtime
2.3.5
三、工具类
package com.dily.scaffold.common.utils;
import com.itextpdf.text.Image;
import com.itextpdf.text.pdf.PdfContentByte;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import org.docx4j.Docx4J;
import org.docx4j.TraversalUtil;
import org.docx4j.XmlUtils;
import org.docx4j.convert.out.FOSettings;
import org.docx4j.dml.wordprocessingDrawing.Inline;
import org.docx4j.finders.ClassFinder;
import org.docx4j.fonts.IdentityPlusMapper;
import org.docx4j.fonts.Mapper;
import org.docx4j.fonts.PhysicalFonts;
import org.docx4j.jaxb.Context;
import org.docx4j.model.datastorage.migration.VariablePrepare;
import org.docx4j.model.table.TblFactory;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.docx4j.wml.*;
import org.springframework.core.io.ClassPathResource;
import javax.xml.bind.JAXBElement;
import java.io.*;
import java.util.*;
public class Docx4jUtils {
public static WordOption getWordOption() {
return new WordOption();
}
public static List
四、水印工具类
Java 生成水印https://mp.csdn.net/mp_blog/creation/editor/121976565https://mp.csdn.net/mp_blog/creation/editor/121976565https://mp.csdn.net/mp_blog/creation/editor/121976565
五、docx模板及替换结果
Word模板文档
替换后的PDF文档(未加水印)