开源库 openhtmltopdf 将 html 转 为 pdf 页面优化、美化的不得不知道的经验

本文介绍了如何使用开源库openhtmltopdf将html转换为美观的pdf,包括页面大小设置、页边距和背景颜色调整、body边距设定以及分页优化。在页面大小设置中,需要注意解析器会取第一页的宽度作为body宽度。通过特定方式可消除pdf的默认边距。此外,提供了分页设置的参考资料链接。
3171886-d96c01a5a7109232.jpg
image

概述

在我们项目中会使用freemark 生成 html,然后用 html 转 pdf。那么美化是必不可少的程序。

页面设置

页面大小设置

可以在style中设置如下属性修改页面大小。可以通过size 设置任意大小的page(不能是百分比),也可以设置标准的页面大小,如a4, a5, a3, b3, b4, letter, legal,ledger
理论上来说,可以在一个文档中设置不同的页面尺寸。但这个解析器仅仅取第一页的page 的宽度作为 html 中body 的宽度,所以实际上,宽度只能设置一个,高度可以是设置多个。

@page { 
    size: 500px 1000px;
    margin: 50px;
    }

页边距设置、背景颜色等

可以在@page属性中设置的当前页的页边距,内边距、背景颜色等。和一般的 html 设置类似。

        @page {
            size: 210mm 297mm;               margin: 0;
            padding: 0;
            background: #ebeef3;

        }

不过当我这里设置所有边框都为0 时候发现生成的pdf 仍然有边界。其实那是body 的边距。可以通过下面的方法设置

设置body 边距

和页面大小设置相似,这样所有的边距都就没了。这是一个需要注意的地方

body {
            margin: 0;
        }

设置分页

这里就不多说了,看我另一篇文章即可。分页优化

参考文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值