由于工作需要,要实现后端根据模板动态填充数据生成 PDF 文档,通过技术选型,使用 Ireport5.6 来设计模板,结合 JasperReports5.6 工具库来调用渲染生成 PDF 文档。
一、使用 Ireport designer 5.6 设计模板
ireport 的使用由于时间关系不便多说,设计好之后,将其进行编译生成 jasper 文件,然后将其拷贝放置于项目 jasper 目录下,以供访问获取该文件。
二、在 Spring Boot 项目中引入依赖包
<!-- jasperreports-->
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports-fonts</artifactId>
<version>6.0.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.4.11</version>
</dependency>
复制代码
三、自定义 spring mvc 通用导出 PDF 视图类 PdfReportView(继承自 AbstractView )
四、spring mvc 调用案例
五、解决 linux 下宋体渲染问题
1、在 src/main/resources 路径下新建 jasperreports_extension.properties 文件,内容如下:
2、在 src/main/resources 路径下新建 fonts 目录,并新建 fonts.xml 文件
3、在 src/main/resources/fonts 目录放入宋体字体文件 simsun.ttf
4、线上(linux 环境)预览效果如下:
如若转载,请注明出处:开源字节 https://sourcebyte.vip/article/335.html
评论