公司有这么两个需求:
需求一、给了一个表单,让把查出来的数据组装到表单中并且提供以PDF格式的下载功能。
需求二、将数据查出来以Excel表格的形式下载下来。
二、Java实现PDF的生成和数据动态插入、导出功能
1、第一步:PDF制作模板
因为PDF常用的软件不让支持编辑,我们就先使用WPS以Word的形式进行编辑制作出与客户需求一样的样式,然后直接另存为 .pdf 的形式如下图所示:
1)Word里面制作模板
2)更改名字为 .pdf形式
3)这时需要用到一个叫:Adobe Acrobat DC的软件(可以白嫖7天_),具体操作如下:
用Adobe Acrobat DC打开我们刚才改过名字的PDF文件,点击右下角的“更多工具”按钮
到下面这个页面再点击“准备表单”按钮
4)接下来就需要详细的配置你的数据源了
数据源即:你代码中实体类中对应的数据(注意字段一定要一一对应),配置完毕就可以保存进行下面的代码编写工作了。
2、代码的编写(假定我们实体类什么的都已经编写完成、数据通过前端传入获取、模板位置在E盘根目录下名字为:车辆维修审批单.pdf)
导入jar包:
com.itextpdf
itextpdf
5.5.13
实现生成PDF、数据插入、导出
@RegisterToSMP(serviceDisplay = “预览页面PDF下载”)
@RequestMapping(value = “/DM/gwclwxsq/qygl/exportPDF$m=query.service”,method =RequestMethod.POST)
public String exportPdf(@RequestBody GwclwxsqBean gwclwxsqBean , HttpServletResponse response) throws UnsupportedEncodingException {
// 1.指定解析器
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();
// 2 读入pdf表单
reader = new PdfReader(path+ “/”+filename);
//