html2pdf使用总结

起源:

项目中用到使用html转pdf功能,将开发过程中,几个主要功能提炼出来,分享给大家并有github例子,clone下来配置好jdk就能直接跑例子,代码和逻辑也超简单,一看就能明白。

环境配置:

jdk1.8.0_77        idea        win10

htmlpdf版本如下


        
            com.itextpdf
            html2pdf
            2.0.2
        
    

项目地址:https://github.com/patrickWuP/html2pdf

项目解析:

项目主要分三块:

一:快速将html转换为pdf,在 com.wp.html2pdf.simple.QuickHtml2Pdf 文件下,有三种方式将html转换为pdf(html2pdf工具类本身提供不止三种);

二:将中文html文件转换为pdf并支持粗细字体;SimSun-01.ttf(细字体)Dengb.ttf(粗字体);

三:在中文html基础上,实现相对路径和绝对路径添加图片转换为pdf方式,通过调整样式实现图片覆盖文章,类似公章的效果(前提图片背景得是透明的);

遇到的坑:

1.ttf字体从哪里来,刚开始从网上搜罗来的ttf字体,可信度和版本无法得知,本例子中的ttf字体都来自win10系统,默认路径:

C:\Windows\Fonts ,注意,你找不到我项目中的字体,因为我是将系统中ttc文件解压为多个ttf文件,任意挑取的,ttc转换为ttf在线转换地址为 https://transfonter.org/ttc-unpack

2.maven编译后ttf文件发生改变,导致中文转换失败,出错原因如下:


                src/main/resources
                true
                
                    
                    **/*.ttf
                    **/*.html
                
            

当时这个问题排查了好一会儿,如何判断文件是否改变,编译后的target下的ttf文件和源ttf文件的大小比对下,不一样大肯定发生了改变。

3.图片绝对路径,使用https开头的连接无法正常转换。

4.img最后为第一级(没有被其他元素,比如div、span包裹)元素,保证转换为pdf时,将其作为img元素转换,而不是其他元素。

5.html转换为pdf的元素中,最好不要出现width,会导致生成的pdf页面尺寸发生改变。

 

以上,就是全部内容,剩下的所有精华都在代码里面了,等待大家去探索,有什么问题可以留言,大家共同进步!

你可能感兴趣的:(中文html转换pdf,带图片的html转换pdf,pdf2html总结,pdf2html详细代码示例,pdf2html问题总结,java)