vue3 打印功能,踩坑记录

寻找打印功能的插件

  • vue3-print-nb
  • print-js

vue3-print-nb 使用情况

实际使用时表格打印不全,直接漏了几个字段;字体的样式也没有;
寻找解决方法时发现要改源码。vue-print-nb使用和解决打印element表格不全问题

当我进入node_modules找到 vue3-print-nb 时发现文件目录和模块都变了…
询问版本,无果

print-js 使用情况

实际使用时表格打印不全,直接漏了几个字段;
查看配置项后发现可以使用maxWidth进行调整,于是解决了表格字段残缺的问题

新的问题出现了,表格边框的缺失

在这里插入图片描述

寻找解决方法时发现要改源码。 Vue——printjs打印el-table,echarts等打印不全,异常解决
当我进入node_modules找到 print-js 时发现文件目录和模块都变了…
询问版本,无果
也可以结合html2Canvas使用,但博主说有bug。windows上面打印预览没有任何问题,但是在Mac上面所有的字体间距均被放大,于是没有使用该方法。

最后我还是从CSS的层面优化了这个bug

在这里插入图片描述
调整CSS

.printContainer {
  -webkit-print-color-adjust: exact;
  /* 打印时表格上边框会消失 貌似是因为 使用伪元素的缘故 */
  ::v-deep(.el-table__inner-wrapper::after) {
    height: 0px !important;
  }
  /* 使用自己的表格上边框 */
  ::v-deep(.el-table__inner-wrapper) {
    border-top: 1px solid #e5e7eb;
  }
  /* 打印时边框太小会被挤没,那让边框变大点就好了*/
  ::v-deep(.el-table__cell) {
    border-right: 2px solid #e5e7eb;
  }
}
  <!-- 打印的内容 -->
  <div id="org-sku-print" class="printContainer">
    .....
  </div>
const openPrint = () => {
  printJS({
    printable: 'org-sku-print',
    type: 'html',
    documentTitle: title.value,
    maxWidth: 1000, // 最大宽度
    targetStyles: ['*'],
    style: ''
  })
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值