Html 轉 PDF
- 使用 flying-saucer 插件來完成
- 導入flying-saucer依賴
<dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>flying-saucer-pdf</artifactId> <version>9.0.8</version> </dependency>
- java 代碼實現
/** * @param inputFile 你的html 路徑 * @param outFile 生成PDF的路徑 * @return */ public static Boolean HtmlCovertPdf(String inputFile,String outFile){ FileOutputStream os = null; try { os = new FileOutputStream(outFile); ITextRenderer renderer = new ITextRenderer(); ITextFontResolver fontResolver = renderer.getFontResolver(); //處理中文 fontResolver.addFont("simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); String url = new File(inputFile).toURI().toURL().toString(); renderer.setDocument(url); renderer.layout(); renderer.createPDF(os); return true; } catch (Exception e) { e.printStackTrace(); return false; } finally { try { os.close(); System.out.println("aa"); } catch (IOException e) { e.printStackTrace(); } } }
- 中文亂碼問題:確保你項目下有simhei.ttf文件,加上此行代碼
//這是處理黑體的 java ontResolver.addFont("simhei.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); //這是處理宋體的 fontResolver.addFont("simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
注意:flying-saucer對Html格式要求很是嚴格,每一個標籤元素必需要結尾,對css3的支持也不是特別的好。css