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格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值