JAVA实现HTML文档转PDF格式

这是在我之前写的扒取网页源码在本地生成html文档之后的新需求。
就是用户的需求变了,除了html,他们还需要pdf文档。
于是开始百度有那些方法,其实实现的方法有很多:itext、flying-saucer、wkhtmltopdf等等,其中itext对css等的支持不够、wkhtmltopdf需要下载额外的exe工具,在我的使用场景里,采用了flying-saucer方式。

MAVEN依赖

<dependency>  
    <groupId>org.xhtmlrenderer</groupId>  
    <artifactId>flying-saucer-pdf</artifactId>  
    <version>9.0.8</version>  
</dependency>  

代码

    System.out.println("Text PDF");

    String inputFile = "html文档绝对路径";  
    String outFile = "带生成PDF文档路径+命名";  

    OutputStream os = new FileOutputStream(outFile);  

    ITextRenderer renderer = new ITextRenderer();  

    ITextFontResolver fontResolver = renderer.getFontResolver(); 
    //启动中文支持
    fontResolver.addFont("C:\\Windows/fonts/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);  

    String url = new File(inputFile).toURI().toURL().toString();  
    renderer.setDocument(url);  
    renderer.layout();  
    renderer.createPDF(os);  
    os.close();   

注意

想让起支持中文和css样式,必须做到以下几点:

1- 对中文的支持:在后台代码必须注明字体,同时在html中的css中用 body:XXX 的方式指定字体。
2- 对颜色的支持:在html的css中,颜色必须使用RGB格式。

猜你喜欢

转载自blog.csdn.net/weixin_39389850/article/details/79152557