1.使用word及PDF工具生成模板
1.1 编辑word模板

1.2 另存为PDF文件
1.3 使用Adobe Acrobat编辑PDF文件,编辑表单域

1.4 编辑完成后,将其保存
2. 编写代码
2.1 在pom.xml文件中导入itextpdf依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
2.2 编写代码 实现生成 PDF、数据插入、导出
2.2.1 ExportParams.java 数据实体类
package com.shexianyu.param;
import lombok.Data;
@Data
public class ExportParams {
private String name;
private String desc;
private String time;
}
2.2.2 ExportPdf.java 导出功能控制器
package com.shexianyu.export;
import com.itextpdf.text.pdf.AcroFields;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.shexianyu.param.ExportParams;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
@RestController
@RequestMapping("/export")
public class ExportPdf {
@RequestMapping("/pdf")
public String export(@RequestBody ExportParams params, HttpServletResponse response) throws UnsupportedEncodingException {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
String filename = "文件导出模板测试.pdf";
String path = "e:/";
response.setContentType("application/pdf");
response.setHeader("Content-Disposition", "attachment;fileName="
+ URLEncoder.encode(filename, "UTF-8"));
OutputStream os = null;
PdfStamper ps = null;
PdfReader reader = null;
try {
os = response.getOutputStream();
reader = new PdfReader(path + "/" + filename);
ps = new PdfStamper(reader, os);
AcroFields form = ps.getAcroFields();
BaseFont bf = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1", BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
form.addSubstitutionFont(bf);
Map<String, String> data = new HashMap<>();
data.put("name", params.getName());
data.put("desc", params.getDesc());
data.put("time", params.getTime());
for (String key : data.keySet()) {
form.setField(key, data.get(key).toString());
}
ps.setFormFlattening(true);
System.out.println("PDF导出成功");
} catch (Exception e) {
e.printStackTrace();
System.out.println("PDF导出失败");
} finally {
try {
ps.close();
reader.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return null;
}
}
3. 使用postman进行测试

4. 导出的PDF文档效果
