Java spring boot根据html模板导出PDF

maven依赖html

<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>html2pdf</artifactId>
<version>2.1.5</version>
</dependency>

itext官网地址(里面有最新的导出api文档):https://itextpdf.com/en/products/itext-7/pdfhtml

后端controller方法(后端生成对应的pdf文件流返回给前端):
@GetMappingpublic void export() throws IOException {  FileReader fileReader1 = new FileReader("XXX/front.html");//  html模板文件body以上部分  String frontHtml = fileReader1.readString();  FileReader fileReader2 = new FileReader("XXX/body.html");//  html模板文件body中的内容  String bodyHtml = fileReader2.readString();  FileReader fileReader3 = new FileReader("XXX/end.html");//   html模板文件body标签后面的内容(能够不用这个,直接用一个string拼接到最后便可)  String endHtml = fileReader3.readString();  OutputStream out = response.getOutputStream();  String a = frontHtml + bodyHtml + endHtml;  ConverterProperties properties = new ConverterProperties();  HtmlConverter.convertToPdf(a, out, properties);  out.flush();  out.close();}注:若是只用导出一个html数据,直接读取一次就好,这里是由于须要多我的的动态数据绑定到一个模板中,因此循环body中的内容能够生成多张pdf(由于实际业务须要将多我的的数据使用该模板一次打印多页pdf)
相关文章
相关标签/搜索