vue+antd——实现table表格的打印——分页换行,每页都有表头——基础积累

这里写目录标题

  • 场景
  • 效果图
  • 功能实现1:html代码
  • 功能实现2:css样式
  • 功能实现3:js代码
  • 补充内容
        • page-break-inside 属性
        • page-break-after属性
        • page-break-before 属性

场景

最近在写后台管理系统时,遇到一个需求,就是要实现表格的打印功能。

下面整理一下需求:

1.表格是antd中的table组件
2.表格中含有多个字段,打印时不能出现滚动条,支持多页打印
3.表格内容很多时,要保证不能出现单元格断页,且每页需要添加表头
4.打印的内容只有table区域,其余内容不要打印

效果图

在这里插入图片描述
横向打印预览效果:
在这里插入图片描述
纵向打印预览效果:
在这里插入图片描述

功能实现1:html代码

<a-card class="box-card topSearchBox"><a-button type="primary" @click="handlePrint">打印余料清单</a-button><a-tableid="printContent":loading="spinning":data-source="tableList"bordered:columns="columns":pagination="false"></a-table>
</a-card>

功能实现2:css样式

<style type="text/css" scoped lang="less">
@page {size: auto;margin: 10mm 20mm;
}
@media print {/* 打印时隐藏相关文章链接 */#printContent {width: 900px;transform: scale(0.68);zoom: 0.5;border: 1px solid red;}
}#printContent {width: 100%;margin-top: 20px;transform: scale(1);zoom: 1;
}
#printContent table {width: 100%;border: 1px solid #000;border-right: none;border-bottom: none;page-break-inside: avoid;page-break-after: avoid;page-break-before: avoid;
}
::v-deep {#printContent table td,#printContent table th {vertical-align: middle;font-size: 3.4mm;text-align: left;}
}
</style>

功能实现3:js代码

handlePrint() {this.$nextTick(() => {let printWrap = document.getElementById('printContent');let oldStr = window.document.body.innerHTML;let newStr = printWrap.innerHTML;window.document.body.innerHTML = newStr;window.print();setTimeout(() => {printWrap.style.zoom = 1;window.document.body.innerHTML = oldStr;location.reload();}, 100);});
},

完成!!!多多积累,多多收获!!!

下面内容为补充内容,可忽略!!!

补充内容

page-break-inside 属性

属性定义及使用说明
page-break-inside 属性设置元素前的 page-breaking 行为。

注意: 您不能对绝对定位的元素使用此属性。

注意: 请尽可能少地使用分页属性,并且避免在表格、浮动元素、带有边框的块元素中使用分页属性。

属性值

描述
auto默认,如果必要则在元素内部插入分页符。
avoid避免在元素内部插入分页符。
inherit规定应该从父元素继承 page-break-inside 属性的设置。

page-break-after属性

此CSS属性用于在打印文档时调整元素后的分页符。在打印过程中,它将在指定元素之后插入一个分页符。我们不能在绝对定位的元素 (position:absolute;)或不生成框的空
元素上使用此属性。
此CSS属性表示在元素框后是否允许分页符。 CSS属性 page-break-before 和 page-break-inside 包括 page-break-after ,可帮助我们定义行为的行为。文档。

语法

page-break-after: auto | always | left | right | avoid | initial | inherit;

描述
auto这是默认值,必要时在元素后插入分页符。
always它指定元素之后强制分页。
left它用于避免在元素之后分页。
right它会在指定元素后强制分页一次或两次,以便将下一页描述为左侧页面。
avoid它会在指定元素之后强制分页一次或两次,以便将下一页显示为右侧页面。
initial它将属性设置为其默认值。
inherit如果指定了此值,则对应的元素将使用其父元素的计算值。

page-break-before 属性

属性定义及使用说明
page-break-before 属性设置元素前的 page-breaking 行为。

注意: 您不能对绝对定位的元素使用此属性。

注意:请尽可能少地使用分页属性,并且避免在表格、浮动元素、带有边框的块元素中使用分页属性。

描述
auto这是默认值,必要时在元素后插入分页符。
always在元素前插入分页符。
avoid避免在元素前插入分页符。
left在元素之前足够的分页符,一直到一张空白的左页为止。
right在元素之前足够的分页符,一直到一张空白的右页为止。
inherit规定应该从父元素继承 page-break-before 属性的设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/77097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电池电动汽车的健康状态 SOH 和充电状态 SOC 估计

微❤关注“电气仔推送”获得资料 主要内容&#xff1a; 健康状态 SOH采用平均加权最小二乘法&#xff08;AWTLS&#xff09;进行估计&#xff0c;并对比了加权最小二乘 &#xff08;WLS&#xff09;、总最小二乘法&#xff08;TLS&#xff09;以及加权总最小二乘法&#xff0…

Python基于Flask的高校舆情分析,舆情监控可视化系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W,Csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 运行效果图 基于Python的微博大数据舆情分析&#xff0c;舆论情感分析可视化系统 系统介绍 微博舆情分析系…

小白备战大厂算法笔试(五)——树

文章目录 二叉树常用术语初始化插入与删除常见类型满二叉树完全二叉树完满二叉树平衡二叉树 二叉树退化二叉树遍历层序遍历前序、中序、后序遍历 数组表示二叉树表示完美二叉树表示任意二叉树 二叉搜索树查找节点插入节点删除节点遍历有序搜索效率常见应用 AVL树常见术语节点高…

(高频面试1)Redis缓存穿透、缓存击穿、缓存雪崩

目录 一&#xff1a;缓存数据 1.1 应用场景 1.2&#xff1a;缓存数据出现的问题 1.2.1 缓存穿透 1.2.2 解决办法 1.2.3 缓存击穿 1.2.4 解决办法 1.2.5 缓存雪崩 1.2.6 解决办法 一&#xff1a;缓存数据 1.1 应用场景 数据库查询结果缓存是一种常见的缓存应用场景&a…

性能测试度量指标

1-响应时间 响应时间指从用户或事务在客户端发起一个请求开始&#xff0c;到客户端接收到从服务器端返回的响应结束&#xff0c;这整个过程所消耗的时间 在性能测试实践中&#xff0c;为了使响应时间更具代表性&#xff0c;响应时间通常是指事务的平均响应时间ART 在实践中要…

redis持久化、主从和哨兵架构

一、redis持久化 1、RDB快照&#xff08;snapshot&#xff09; redis配置RDB存储模式&#xff0c;修改redis.conf文件如下配置&#xff1a; # 在300s内有100个或者以上的key被修改就会把redis中的数据持久化到dump.rdb文件中 # save 300 100# 配置数据存放目录&#xff08;现…

Idea安装使用教程~

在本文中&#xff0c;我们将提供关于如何安装 IntelliJ IDEA 的详细步骤。如果您是初学者或只是想尝试一下 IDEA&#xff0c;我们建议您下载 Community 版。如果您需要更多高级功能&#xff0c;可以选择 Ultimate 版。 步骤一&#xff1a;下载 IntelliJ IDEA 首先&#xff0c;…

【SpringCloudAlibaba】Seata分布式事务使用

文章目录 分布式事务问题示例Seata概述、官网一个典型的分布式事务过程处理过程全局GlobalTransactional分布式交易解决方案流程图 Seata安装下载修改conf目录下的application.yml配置文件dashboard demo 分布式事务问题示例 单体应用被拆分成微服务应用&#xff0c;原来的三个…

Springboot+swagger2

1.swagger配置 /*** Swagger 配置文件*/ Configuration public class SwaggerConfig {Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.swagger.two&qu…

Spring Boot @Value读不到Nacos配置中心的值。(properties配置文件)

读不到配置中心的值&#xff0c; 配置中心的配置文件名字&#xff08;Data ID的值&#xff09;要以.properties结尾。 如果是yaml&#xff0c;就以yaml命名。

Spring MVC:请求转发与请求重定向

Spring MVC 请求转发请求重定向附 请求转发 转发&#xff08; forward &#xff09;&#xff0c;指服务器接收请求后&#xff0c;从一个资源跳转到另一个资源中。请求转发是一次请求&#xff0c;不会改变浏览器的请求地址。 简单示例&#xff1a; 1.通过 String 类型的返回值…

2023年基因编辑行业研究报告

第一章 行业发展概况 1.1 定义 基因编辑&#xff08;Gene Editing&#xff09;&#xff0c;又称基因组编辑&#xff08;Genome Editing&#xff09;或基因组工程&#xff08;Genome Engineering&#xff09;&#xff0c;是一项精确的科学技术&#xff0c;可以对含有遗传信息的…

常用百宝箱——日志处理

目录 前言 一、logging库 二、logging日志等级 三、logging四大组件 四、封装示例 总结 前言 日志是记录特定时间段或事件的详细信息的文件或记录。它们通过时间戳和关键词或描述符来标识事件或行动。日志可以用于许多目的&#xff0c;例如&#xff1a;故障排除、网络安全…

搭建springcloud注册中心eureka以及admin监控

写该篇文章的目的是为了以后搭建微服务的时候避免踩坑 要求&#xff1a;搭建一个eureka-server注册中心&#xff0c;再构建两个eureka-client注册上去&#xff0c;然后再搭建admin服务注册到注册中心。实现在admin后管页面可观察已注册上去的服务 前提&#xff1a;使用的spri…

Redis 初识与入门

1. 什么是Redis Redis 是一种基于内存的数据库&#xff0c;对数据的读写操作都是在内存中完成&#xff0c;因此读写速度非常快&#xff0c;常用于缓存&#xff0c;消息队列、分布式锁等场景。 Redis 提供了多种数据类型来支持不同的业务场景&#xff0c;比如 String(字符串)、…

关系的定义及表示

关系的定义及表示 1、若集合R是AA的子集&#xff0c;则称R是集合A上的二元关系&#xff0c;简称关系 例&#xff1a;A{1,2}&#xff0c; AA{<1,1>,<1,2>,<2,1>,<2,2>}&#xff0c;AA的任何一个子集都是A上的关系 如&#xff1a; R{<1,1>, &…

java企业数据管理系统

项目介绍 此项目为企业数据管理系统的后端部分&#xff0c;前端部分请参考vue-admin&#xff0c;项目实现了菜单管理、用户管理、角色管理和权限管理四个基础模块&#xff0c;前端菜单管理结合动态路由可自由添加菜单。结合Shiro权限管理实现了菜单和按钮的权限控制。 ❝ 前端…

贝塞尔曲线的一些资料收集

一本免费的在线书籍&#xff0c;供你在非常需要了解如何处理贝塞尔相关的事情。 https://pomax.github.io/bezierinfo/zh-CN/index.html An algorithm to find bounding box of closed bezier curves? - Stack Overflow https://stackoverflow.com/questions/2587751/an-algo…

歌曲推荐《最佳损友》

最佳损友 陈奕迅演唱歌曲 《最佳损友》是陈奕迅演唱的一首粤语歌曲&#xff0c;由黄伟文作词&#xff0c;Eric Kwok&#xff08;郭伟亮&#xff09;作曲。收录于专辑《Life Continues》中&#xff0c;发行于2006年6月15日。 2006年12月26日&#xff0c;该曲获得2006香港新城…

Python之OS模块

os模块负责程序与操作系统的交互&#xff0c;提供了访问操作系统底层的接口;即os模块提供了非常丰富的方法用来处理文件和目录。 使用的时候需要导入该模块:import os