1.将word文档另存为pdf
2.通过工具 Adobe Acrobat DC 将word文档转成pdf模板
该工具会将word里的输入框修改成变量如图
双击fill_1字段可以自定义变量名称如图
代码部分:
//模板路径 String templatePath = "D:\\测试.pdf"; //生成的新文件路径 String newPDFPath = "D:\\测试test.pdf"; PdfReader reader; FileOutputStream out; ByteArrayOutputStream bos; PdfStamper stamper; try { out = new FileOutputStream(newPDFPath);//输出流 reader = new PdfReader(templatePath);//读取pdf模板 bos = new ByteArrayOutputStream(); stamper = new PdfStamper(reader, bos); AcroFields form = stamper.getAcroFields(); java.util.Iterator<String> it = form.getFields().keySet().iterator(); while(it.hasNext()){ String name = it.next().toString(); if("name".equals(name)){ form.setField(name, "张三"); } if("type".equals(name)){ form.setField(name, "1"); } if("years".equals(name)){ form.setField(name, "5"); } if("position".equals(name)){ form.setField(name, "经理"); } } stamper.setFormFlattening(true); stamper.close(); Document doc = new Document(); PdfCopy copy = new PdfCopy(doc, out); doc.open(); PdfImportedPage importPage = copy.getImportedPage( new PdfReader(bos.toByteArray()), 1); copy.addPage(importPage); doc.close(); } catch (Exception e) { e.printStackTrace(); }
使用到的jar包:
针对导出pdf中汉字不显示的问题如图:
解决方法如下:
1.通过工具 Adobe Acrobat DC 将word文档转成pdf模板时删除自动生成的变量如图:
2.在空白处右击选择文本域如图:
3.重新定义变量如图:
保存为新的pdf模板进行导出则不会出现汉字不显示的问题。