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)
相關文章
相關標籤/搜索