java生成pdf表格java生成pdf模板动态表格

/** * 根据模板生成pdf * * @param contract * @return */ @SneakyThrows public void createPDF(ContractData contract, HttpServletResponse response) { PdfReader reader = null; AcroFields s = null; PdfStamper ps = null; ByteArrayOutputStream bos = nu...
java生成pdf表格java生成pdf模板动态表格
制作模板首先需要安装Adobe Acrobat DC来制作模板
打开dc工具——》准备表单,然后打开你需要制作的pdf源文件

将文本域拖到你需要代码替换的位置

你可以双击文本域修改当前文本域的key值,便于代码中替换

也可以修改文本域的字体大小以及颜色等,在外观这一栏下
设置好文本域之后保存,如果发现保存之后一直卡住,可以按如下操作,打开编辑——》首选项

点击一般,将红框内的在线存储取消掉即可

程序实现
org.apache.pdfbox pdfbox 2.0.13 com.itextpdf itextpdf 5.5.10 com.itextpdf itext-asian 5.2.0 依赖包
将制作好的模板文件放在resources目录下

/** * 根据模板生成pdf * * @param contract * @return */ @SneakyThrows public void createPDF(ContractData contract, HttpServletResponse response) { PdfReader reader = null; AcroFields s = null; PdfStamper ps = null; ByteArrayOutputStream bos = null; try { ClassPathResource resource = new ClassPathResource("contractTemplate.pdf"); InputStream is = resource.getInputStream(); reader = new PdfReader(is); bos = new ByteArrayOutputStream(); ps = new PdfStamper(reader, bos); s = ps.getAcroFields(); Class clazz = ContractData.class; Field[] fields = clazz.getDeclaredFields(); try { for (Field f : fields) { f.setAccessible(true); if (f.get(contract) != null) { s.setField(f.getName(), f.get(contract).toString()); } } } catch (IllegalAccessException e) { throw new CommonException(); } // 如果为false那么生成的PDF文件还能编辑,一定要设为true ps.setFormFlattening(true); ps.close(); response.reset(); response.setContentType("application/pdf"); ServletOutputStream fos = response.getOutputStream(); fos.write(bos.toByteArray()); fos.flush(); fos.close(); } catch (IOException | DocumentException e) { e.printStackTrace(); } finally { try { bos.close(); reader.close(); } catch (IOException e) { e.printStackTrace(); } } }核心代码
@Data class ContractData { private String contractNo; private String partyAName; private String partyBName; }实体类
这样就可以了
下面是生成的最终pdf文件
最后生成的效果

大功告成~2024-11-21
mengvlog 阅读 8 次 更新于 2025-07-19 08:03:00 我来答关注问题0
  •  翡希信息咨询 在 Java 中以编程的方式将 Excel XLSX 转换为 PDF

    1. 确保字体路径正确: 在使用 GcExcel Java 将 Excel 文件转换为 PDF 前,需要确保将用于导出 PDF 的字体放置在 workbook.FontFolderPath 指向的路径中。2. 创建或加载 Excel 文件: 如果你是从头创建 Excel 文件,可以使用 GcExcel Java 提供的 API 创建电子表格。 如果已有 Excel 文件,需要加载...

  •  翡希信息咨询 Java根据PDF模板动态生成PDF文件

    创建PDF模板:使用Adobe Acrobat DC等专业工具创建一个PDF模板文件。在模板中构建表单,确保每个表单字段与将要填充的数据相对应。将表单字段的名称设置为用户数据的相应属性名,例如“姓名”、“地址”等。保存模板文件,为后续的数据填充做准备。引入必要的工具包或库:在Java项目中引入PDF生成库,如iText...

  • /** * 根据模板生成pdf * * @param contract * @return */ @SneakyThrows public void createPDF(ContractData contract, HttpServletResponse response) { PdfReader reader = null; AcroFields s = null; PdfStamper ps = null; ByteArrayOutputStream bos = nu...

  •  文暄生活科普 在 Java 中以编程的方式将 Excel XLSX 转换为 PDF

    步骤一:使用 Excel API 创建 Excel 文件。通过代码示例,你将能够生成一个 Excel 电子表格,并以可视化的形式呈现结果。步骤二:通过保存方法将电子表格保存为 PDF 格式。在这一步骤中,你将直接将工作簿保存为 PDF 文件,而不是 Excel 格式。导出后的 PDF 文件将包含两页内容,且支持进一步的自定义...

  • 具体实现过程中,可以借助Adobe Acrobat DC这样的专业工具。首先,创建一个PDF模板文件,步骤是为模板构建表单,确保每个字段都与你将要填充的数据相对应。例如,将表单字段的名称设置为用户数据的相应属性名,如姓名、地址等。完成表单设计后,保存你的模板文件,为后续的数据填充做好准备。在编写代码实现这...

檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部