使用itextpdf编辑PDF
生活随笔
收集整理的這篇文章主要介紹了
使用itextpdf编辑PDF
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
制作PDF模板
Word里面制作模板,并另存為PDF格式
制作模板,使用工具:Adobe Acrobat DC
選擇更多工具
?
選擇準備表單
開始編輯數據源
代碼的編寫
導入jar包
<!-- PDF導出-->
<!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13</version>
</dependency>
實現生成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="D:/";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);// 3 根據表單生成一個新的pdfps = new PdfStamper(reader, os);// 4 獲取pdf表單AcroFields form = ps.getAcroFields();// 5給表單添加中文字體 這里采用系統字體。不設置的話,中文可能無法顯示BaseFont bf = BaseFont.createFont("C:/WINDOWS/Fonts/SIMSUN.TTC,1",BaseFont.IDENTITY_H, BaseFont.EMBEDDED);form.addSubstitutionFont(bf);// 6查詢數據================================================Map<String, String> data = new HashMap<String, String>();data.put("commitTime", gwclwxsqBean.getCommitTime());data.put("driver", gwclwxsqBean.getDriver());data.put("carId", gwclwxsqBean.getCarId());data.put("carType", gwclwxsqBean.getCarType());data.put("repairAddress", gwclwxsqBean.getRepairAddress());data.put("repairCost",gwclwxsqBean.getRepairCost());data.put("project", gwclwxsqBean.getProject());data.put("fwbzzxfzrYj", gwclwxsqBean.getFwbzzxfzrYj());data.put("fgldspYj", gwclwxsqBean.getFgldspYj());data.put("remarks", gwclwxsqBean.getRemarks());// 7遍歷data 給pdf表單表格賦值for (String key : data.keySet()) {form.setField(key,data.get(key).toString());}ps.setFormFlattening(true);log.info("*******************PDF導出成功***********************");} catch (Exception e) { log.error("*******************PDF導出失敗***********************");e.printStackTrace();} finally {try {ps.close();reader.close();os.close();} catch (Exception e) {e.printStackTrace();}}return null;
}
測試
總結
以上是生活随笔為你收集整理的使用itextpdf编辑PDF的全部內容,希望文章能夠幫你解決所遇到的問題。