公司最近要求写一个邮件发送功能,要将凭据以附件的形式发送给客户的邮箱。因为页面使用的是Freemarker模板,而且不同业务的凭据内容不同,不能去一个个的画pdf页面,所以将ftl模板转换成pdf文件这个想法比较合理。在网上找了很多的资料,下面整理的是一套可用的代码ftl-->html-->pdf,分享出来。不过在公司中并没有使用这些代码,因为公司的ftl模板内容比较复杂,在ftl-->html的过程中一直报错,解决办法在下面介绍。
首先是pom文件,即依赖的准备,因为使用的是Freemarker模板,所以一定要有freemarker相关依赖,另外两个依赖是用来进行html-->pdf转换的,版本号一定不要搞错,否则可能会报错。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>
接下来是代码部分,代码在我自己的电脑上是成功运行的