本篇文章主要讲解的是如何采用itext7进行模板填充。
- 创建PdfReader PdfWriter,构造函数支持路径已经流的形式。
- 创建PDFDocument
- 创建并设置中文字体
- 获取文本域的信息
- 判断文本框长度是否够单行显示
- 填充信息
- 设置模板不可编辑
private static void fillParam(PdfReader pdfReader, PdfWriter pdfWriter,
Map<String, Object> map, List<PdfPositon> pdfPositons) throws MalformedURLException {
//1、创建pdf文件
PdfDocument pdf = new PdfDocument(pdfReader, pdfWriter);
//2、创建中文字体
PdfFont f2 = null;
try {
f2 = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", true);
} catch (IOException e) {
logger.error("create Font Error");
}
pdf.addFont(f2);
//3、获取pdf模板中的域值信息
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
Map<String, PdfFormField> fieldMap = form.getFormFields();