html2pdf使用总结

编程知识 行业动态 更新时间:2024-06-13 00:21:24

起源:

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

环境配置:

jdk1.8.0_77        idea        win10

htmlpdf版本如下

<dependencies>
        <dependency>
            <groupId>com.itextpdf</groupId>
            <artifactId>html2pdf</artifactId>
            <version>2.0.2</version>
        </dependency>
    </dependencies>

项目地址:https://github/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/ttc-unpack

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

<resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <!-- 该配置导致ttf文件发生改变,正确配置如下:1.可以将上面的filter修改为false;2.新添加对ttf文件的配置 -->
                    <include>**/*.ttf</include>
                    <include>**/*.html</include>
                </includes>
            </resource>

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

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

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

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

 

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

更多推荐

html2pdf使用总结

本文发布于:2023-03-31 16:47:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/f12e15ff437d9b42add72ed8c3242059.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:html2pdf

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!