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 阅读 42 次 更新于 2025-09-09 19:36:27 我来答关注问题0
  •  翡希信息咨询 Java根据PDF模板动态生成PDF文件

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

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

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

  •  翡希信息咨询 在 Java 中以编程的方式将 Excel XLSX 转换为 PDF

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

  •  誉祥祥知识 Java快速生成PDF文档,这款开源工具类牛X!

    两大模块:x-easypdf目前拥有两大模块——pdfbox模块与fop模块。pdfbox模块主打PDF编辑功能,以组件化的形式进行PDF的构建;而fop模块则主打PDF导出功能,采用数据源的方式对XSL-FO模板进行转换,同时提供Java对象的方式构建DOM模板文档,即使完全不懂XSL-FO的语法,也能轻松上手写出对应的模板。简单易用...

  •  阿暄生活 excel转pdf java高效方案

    1. 使用Apache POI和iText库:这种方法是免费的,但需要一定的编程能力来编写转换逻辑。首先,需要确保项目中已经导入了Apache POI和iText库的相关依赖。使用Apache POI库读取Excel文件的内容,并将其转换为适合PDF格式的数据。然后,使用iText库将这些数据写入PDF文件中。虽然这种方法需要编写较多的代码,但...

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

Java相关话题

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