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)