js 将html 某个dom 导出pdf,并处理分页

1、场景

由前端实现的报表(含echarts图和table表格),需要将整个报表进行导出下载,但不包括页面中的导航栏及其他元素。

2、问题

1)在导出pdf时 ,如果页面长度超过一页,插件无法只能识别分页,会将内容切割,如下所示:
在这里插入图片描述
2)目的:实现当前页放不下该页面元素时,插入空白元素将该元素下挤,实现分页但不分割内容

3、解决方案

通过计算dom元素的高度逐一拆分,动态增加dom元素使布局满足分页但不分割内容,效果如下:
在这里插入图片描述
注意:
1)计算高度时,切莫忘记margin;
2)由于通过dom.children 获取子元素,逐一累计并拆分,在添加空白元素节点后,获取的子集也会增加,注意循环中的计数单位自增,对空白元素做标记,如果进入到循环则排除;
3)由于本案例中是将页面元素直接做的变化,再pdf下载后,需移除所有增加的空白元素,恢复页面布局;
4)html2PDF插件中的dom元素参数,只能传页面中有的元素,如若隐藏或深度克隆但未添加到html中的元素,则识别不到,控制台会报错(隐藏了的元素也无法导出);
5)如果将克隆

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值