java Html 轉 PDF

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

相關文章
相關標籤/搜索