java生成pdf(利用dom4j、freemarker生成固定模板格式的pdf文件)

本文介绍了如何使用Java结合Freemarker模板和DOM4J库来生成固定格式的PDF文件。首先,通过Word创建模板,用${arg0!""}标记替换内容,然后保存为XML。接着,将XML转换为FTL文件,再将FTL转回XML,进一步转化为Word,最后用DOM4J转换为PDF。这种方式支持复杂的数据替换和模板操作,步骤清晰,易于实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景:跟着我的步骤一步一步,最后一定会成功!!

首先生成pdf有很多种方式:
  • iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;
  • Apache PDFBox,生成、合并PDF文档;
  • docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。
比较:
  • iText开源协议为AGPL,而其他两个框架协议均为Apache License v2.0。需要用画笔去花模板,很繁琐!
  • Apache PDFBox,生成、合并PDF文档;
  • docx4j,生成docx、pptx、xlsx文档,支持转换为PDF格式。
本文使用最后一种,思路如下图:

在这里插入图片描述

步骤

1.首先将你要生成的pdf,用worl画出来,比如你需要特定结构的pdf,你没办法做到,但是一个wold你可以通过编辑,得到你想要的模板 。如下:(你想要替换的内容换成${arg0!""},就是用将来你需要替换的数据暂时用变量表示出来,后续只要替换变量的值即可!而模板本身不变

在这里插入图片描述

2.其次将word的字体换成宋体(通用),文件另存为xml格式文件如下:

在这里插入图片描述

3.将文件改名,以.ftl形式结尾(利用freemarker,所以改成freemarker文件形式

在这里插入图片描述

4.读取ftl文件,将其转化成xml字符串。读取xml字符串,将其转换成word,读取word,利用dom4j将其转换成你想要的模式的pdf

@SuppressWarnings({ "unchecked", "rawtypes" })
	private Map createPdf(List<Loan> loanList) {

		Map fileMap = new HashMap();
		for (Loan loan : loanList) {
			// 创建数据
			String bankParentName =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值