前言

之前写过一篇表格分页打印的实践,其基本思路是按照一比一还原打印宽高,然后根据页面高度内容以及内容长度进行粗略计算,针对不能显示的进行内容分割。

相比上次逻辑稍微繁琐一点,今天分享的方式是更加简单的,我们根据每个最小展示行单位的渲染高度进行累加,当不能在当前页面显示的时候,把这行的数据放到新的一页展示。如果你有展示表头的需求,可以把表头的部分单独拿出来。

另外,相比常规的表格来说,如果你想实践更加复杂的布局,个人更建议你使用div模拟加flex布局来实现表格或者常规文档的展示需求。

分享点

展示比例符合打印纸比例

纠正的第一点是,我们在打印时,所需要的页面宽高并不一定是一个固定的宽高,只要符合A4或者你要打印纸张的宽高比即可。符合这个宽高比的情况下,无论是比实际大,还是小,打印的是否都可以选择缩放到对应尺寸,然后打印。

备注:

建议针对需要打印的内容单独定义页面,去预览效果以及调用浏览器的打印。

a4纸的宽高比为:1.414286 , 页面的宽高可以为:1188*840。

从内容的长度计算高度变为从dom部分获取渲染高度

原先我的方式为利用字符串的长度,然后利用页面的宽度除字号,得到一行放多少字,再用总字数计算出可以有多少行,利用每行的标准高度乘行数得到当前行所需要的高度。用这个高度累加到总高度,能放下,则显示,高度递减;否则,则拆分留下当前页可展示的部分,剩下的第二页显示。

新的方式:1 利用渲染高度代替计算高度 2 不在拆分内容,而是最小展示单元整体换行。

利用每显示行单位得到dom元素,然后用offsetHeight 得到其渲染后的真实高度,后面用这个高度累加到总高度,能放下,则显示,高度递减;否则,整行数据放到第二页去显示,不拆分数据。

页眉,页脚的设置问题

如果你想设置页眉页脚的内容,你可以这样写:

xxx打印

页眉部分的文字打印颜色会比正文浅一些,所以需要在打印样式中单独设置过字体颜色加强。

@media print {

/*设置打印样式*/

.previewcontainer {

.page {

.yemei {

color: #000;

}

.pagenum {

color: #000;

}

}

}

}

复制代码

某些内容不想被打印上如何处理

思路1 : 利用打印样式,讲不需要打印的部分在打印的媒体查询中设置为false

思路2: 不需要打印的部分,利用绝对定位或者非常规定位,打印时会丢失

更多未解决的问题点待你解决中

antd checkbox的选中样式在显示时可以,打印时丢失,最终用自定义样式解决的。

react didupdate的生命周期中可能会拿不到元素的渲染高度,目前通过延迟计算的方案打补丁实现。

历史文章

表格分页打印(一):www.yuque.com/robinson/fe…

关于找一找教程网

本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。

本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。

[简单又实用的小文章来了----表格分页打印的那些小事(2)]http://www.zyiz.net/tech/detail-140213.html

Java实现表格打印翻页_简单又实用的小文章来了----表格分页打印的那些小事(2)...相关推荐

  1. java swing表格翻页_让Swing表格支持远程后台数据翻页

    TWaver Java不但提供了TTable.TElementTable这些表格组件,而且还提供了表格翻页器TPageNavigator.让表格和翻页器结合工作,可以立刻做出一个非常标准的可翻页的表格 ...

  2. 名编辑电子杂志大师教程 | 如何打印翻页电子期刊页面?

    在电子杂志制作软件中提供了一些非常人性化的设置,例如允许读者下载和打印. 通过在翻页电子期刊中添加打印按钮,读者们可以简单的通过点击"打印"按钮来打印翻页电子期刊页面内容. 如何实 ...

  3. 舒亦梵:4.12一学就会,黄金投资简单又实用的小技术

    舒亦梵:一学就会,黄金投资简单又实用的小技术 花开花落,流水无情,花开只在一瞬间,却流芳百世,光阴似水,留不住的是过往.投资路途比较漫长,这是一个学习与激情共演的地方你成长了所以你在不停的进步,收获颇 ...

  4. select vba 网页 翻页_通过VBA程序来实现Excel表格翻页的方法

    在查看拥有较多数据的Excel工作表时,可以通过按"PageUp"或"PageDown"键(或拖动程序窗口左侧滚动条上的滑块)来进行翻页操作.实际上,用户还可以 ...

  5. vue实现上下滑动翻页_如何通过vue实现一款简单通用的翻页组件

    预览 先上一波效果图: 基本元素 首先,翻页组件(以下称"pager组件")一般拥有的元素有: 上一页 第一页 中间显示的页码 最后一页 下一页 初始化时需要的配置有: total ...

  6. python爬虫翻页_教给你一个python爬虫最简单的翻页的办法

    很多同学对python爬虫翻页感到很是头疼,下面我教给大家一个最简单的办法:模糊搜索法.以这个网站 :https://m.51xw.net/meizi/ 为例 打开网站我们先看到的是一个个的图集,点开 ...

  7. ios动态效果实现翻页_动画:UIKitAnimation 简单动画学习 iOS (一) 渐变 、 移动 、翻页、来回翻转 | 学步园...

    转载请说明(谢谢) http://blog.csdn.net/a21064346/article/details/7851695 以下 一个系列的 动画效果 在 UIView.h文件中可以查找.但是比 ...

  8. 表格设置翻页 html,使用原生JS实现表格数据的翻页功能

    使用原生JS实现如下图所示表格数据的翻页功能: HTML代码: 表格标题 < > 简单处理一下样式,CSS代码: #pagination { text-align: center; } # ...

  9. 大数据翻页_【干货】大数据翻页的难点和技巧

    今天要讨论一个传统的问题,问题本身比较简单,就是针对大数据,如何优化方案做到性能与成本的平衡.我们经常会遇到一种Key-list类型数据, 如一个用户的好友关系 {"uid":{1 ...

最新文章

  1. 设计模式-观察者模式
  2. 类会默认产生的成员函数
  3. labview如何弹出提示窗口_以实例跟我学如何将LabVIEW的VI程序打包成安装程序
  4. 【机器学习经典算法源码分析系列】-- 逻辑回归
  5. 初探 Go 的编译命令执行过程
  6. 鲸鲨阵列服务器怎么装系统,鲸鲨软件 | 自主可控IT基础架构产品及解决方案提供商...
  7. Android8.1系统Led的控制从底层到上层的实现
  8. error: ignoring return value of 编译错误处理
  9. Arkeia Software宣布支持第100个Linux平台
  10. 河南科技大学计算机科学与技术专业多少分,2016年河南科技大学计算机科学与技术专业在陕西录取分数线...
  11. 墙面有几种装修方法_卧室装修静音环保攻略,赶紧收藏起
  12. Typora免费版(Typora最后一个版本下载)
  13. (CVPR 2020) RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds
  14. windows下安装maven后运行:mvn help:system报错
  15. PCB板不同材质区别
  16. 计算机网络学习-003
  17. 软件项目中引用头文件的几种方法及要点
  18. 最详细的App自动化常用的元素审查器
  19. 图片base64转码,本地和网络图片均可,类对象转map,类对象转键值对字符串
  20. 「建议收藏」推荐给软件测试员的10本书

热门文章

  1. subDomainsBrute 子域名工具 源码分析
  2. Win7无法修改MAC怎么办 不能修改MAC的原因及解决方法
  3. 学习游戏要学习编程语言吗?十大主流编程语言解析
  4. 人人皆可二次元!小姐姐生成不同风格动漫形象,肤色、发型皆可变
  5. Word论文写作如何实现公式居中、自动编号右对齐
  6. 刀与剑-COM返回数组
  7. 创意编程/小学组(4-6年级)-图形化创意
  8. 关于此博客更名和改版的说明
  9. 输入框内只能输入数字,输入其他内容不显示
  10. 基于JAVA框架的电脑测评系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署