当前位置: 首页 > news >正文

Vue3实现打印功能

1、安装插件

npm i vue3-print-nb --save

2、main.js全局配置

import print from 'vue3-print-nb'
app.use(print)

3、设置打印区域

为打印区域设置 id 选择器

<div id="printData"><el-table border :data="tableData" style="width: 100%"><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" width="180" label="Address" /></el-table>
</div>

 4、绑定打印事件

为打印按钮绑定 v-print

<el-button v-print="print" type="success">点击打印</el-button>
// 打印
const print = {id: "printData",popTitle: "打印数据",
};

 5、完整代码

<template><div><el-card><template #header><el-button v-print="print" type="success">点击打印</el-button></template><div id="printData"><el-table border :data="tableData" style="width: 100%"><el-table-column prop="date" label="Date" width="180" /><el-table-column prop="name" label="Name" width="180" /><el-table-column prop="address" width="180" label="Address" /></el-table></div></el-card></div>
</template>
<script setup>
const tableData = [{date: "2024-05-03",name: "知否君",address: "中国北京",},{date: "2024-05-02",name: "工藤新一",address: "中国上海",},
];
// 打印
const print = {id: "printData",popTitle: "打印数据",
};
</script>
<style lang="scss" scoped>
@page {size: auto;margin-bottom: 5mm;
}
</style>

6、解决打印表格无边框

使用原生table
 

<div id="printData"><table class="printTable" border="1"><thead><tr><th>姓名</th><th>生日</th><th>地址</th></tr></thead><tbody><tr><td>张三</td><td>1998-02-25</td><td>河北避暑山庄</td></tr><tr><td>李四</td><td>1996-02-24</td><td>北京大兴</td></tr><tr><td>王五</td><td>1997-02-26</td><td>浙江杭州</td></tr></tbody></table>
</div>
.printTable {color: #616161;width: 100%;border-collapse: collapse;border: 0.25px solid #ededed;text-align: left;font-size: 15px;th,td {padding: 6px;}
}

7、解决单选框复选框打印不选中

@media print {::v-deep .el-radio__input,::v-deep .el-checkbox__input {-webkit-print-color-adjust: exact;-moz-print-color-adjust: exact;color-adjust: exact;}
}

8、去除页脚页眉

@page {size: auto;margin: 0mm;}

9、解决打印內容不自动换行

word-wrap:break-word;

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LeetCode[中等] 3. 无重复字符的最长子串
  • 简洁明了!中缀表达式转为后缀表达式规则及代码
  • 第L6周:机器学习-随机森林(RF)
  • 计算机网络 ---- 计算机网络的体系结构【计算机网络的分层结构】
  • Python和MATLAB及C++信噪比导图(算法模型)
  • python绘制3d建筑
  • 数据清洗-缺失值填充-K-NN算法(K-Nearest Neighbors, K-NN算法)
  • 排队免单模式小程序开发
  • ElementUI 布局——行与列的灵活运用
  • 初学Linux(学习笔记)
  • 【区块链通用服务平台及组件】基于向量数据库与 LLM 的智能合约 Copilot
  • 【STM32】外部中断
  • C++ | Leetcode C++题解之第406题根据身高重建队列
  • 栈与队列(c语言实现)
  • linux命令学习-sed命令
  • Google 是如何开发 Web 框架的
  • classpath对获取配置文件的影响
  • Cumulo 的 ClojureScript 模块已经成型
  • Joomla 2.x, 3.x useful code cheatsheet
  • MYSQL 的 IF 函数
  • Node 版本管理
  • Spring核心 Bean的高级装配
  • Swoft 源码剖析 - 代码自动更新机制
  • 闭包,sync使用细节
  • 从0实现一个tiny react(三)生命周期
  • 分类模型——Logistics Regression
  • 构建二叉树进行数值数组的去重及优化
  • 聚类分析——Kmeans
  • 如何在GitHub上创建个人博客
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 通过来模仿稀土掘金个人页面的布局来学习使用CoordinatorLayout
  • 一些css基础学习笔记
  • 怎么将电脑中的声音录制成WAV格式
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 如何在招聘中考核.NET架构师
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • ​【已解决】npm install​卡主不动的情况
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #pragma once
  • #单片机(TB6600驱动42步进电机)
  • #微信小程序(布局、渲染层基础知识)
  • (javaweb)Http协议
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net MVC4 上传大文件,并保存表单
  • .NET 依赖注入和配置系统
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • :not(:first-child)和:not(:last-child)的用法
  • @ 代码随想录算法训练营第8周(C语言)|Day53(动态规划)