IE打印缩小问题剖析
1. 问题描述
IE浏览器下打印一定宽度的表格,用打印机打印出的A4纸上的表格宽比浏览器中呈现的表格宽高要小,而非IE浏览器打印相同表格正常显示。
2. 确定原因
2.1 排除法
排除是否由于IE浏览器的打印设置错误造成问题,检查打印设置步骤如下:
   点击IE浏览器右上方设置icon-打印-页面设置,出现对话框(图1)。
(图1)
检查结果发现,打印设置无问题。
2.2 观察+假设+验证
仔细观察IE打印出的表格预览发现,宽度高度,字体大小都比正常情况下缩小了一定比例(图2),猜想IE内部的某些机制会在打印表格时对样式表中的数字进行等比例缩小。
    
(图2)
验证猜想,将原有样式表中的宽度由750变成1070,打印预览发现宽度可以正常显示了(图3),但是字体和行高与图2比较没有任何变化。
(图3)
进一步验证,将原有样式表中的宽度由750变成1070,字体由13变成18,行高由20变成30,打印预览(图4)发现宽高和字体与(图2)比较都变大了,并且接近其他浏览器打印出的正常情况。
(图4)
2.3 结论
   IE浏览器内部某些机制在执行打印操作时,会等比例缩小读取到的样式(这里的样式是指用数字控制的样式,比如宽高、行高等),切计算得出缩小比例大约为0.7,即:IE打印表现 = 页面表现 * 0.7 。
3. 解决方案 
3.1 解决思路
    根据产生问题的原因,可以确定只要在IE浏览器打印的情况下,将原有样式中的数字全都扩大一定比例就能保证IE打印出表现与页面表现保持一致。而在其他浏览器打印时保持原有样式不变。

3.2 实际操作
    经过对printThis.js插件的深入研读分析,发现插件本身提供了“控制打印样式”的配置,即
以上三种配置都是加载打印控制样式,所不同的是,importCSS和loadCSS是引入外部样式,即通过link标签或者路径去实现外部引入样式,其实两者最后都是拼成link标签插入到新生成的打印代码的head中,外部引入的方式适用于样式代码过多的情况,importStyle是内部写入样式,即通过style标签直接写importStyle:后面,内部写入样式适用于样式代码较少的情况。所以根据实际情况我们选择了外部加载的方式,即:loadCSS引入forieprint.css文件。
我们在新的文件中重新定义打印表格的宽度、行高、字号,最终实现了项目目标。

IE打印A4,表格缩小问题剖析相关推荐

  1. excel打印预览在哪里_别再浪费A4纸了,Excel按下这个键,一张纸可以打印全部表格内容...

    我们在工作和生活中,经常需要打印Excel表格,可是有时表格太宽了,无法打印在一张A4纸上,今天就来教大家几种方法,只需按下一个键,就可以打印全部表格内容. 一.表格打印一页 1.设置分页 首先点击[ ...

  2. elxel表格纸张尺寸_excel表格设置打印A4大小的方法步骤

    在Excel中录入好数据以后都需要进行打印,而打印的时候通常需要设置到A4纸的大小,或许有朋友不知道该如何设置A4大小的方法,不懂的朋友可以一起来学习研究. 了解更多excel表格的操作技巧,欢迎点击 ...

  3. html表格打印填充分页,window.print()页面打印之表格内容分页填充进行分页打印

    windwow.print()用于打印当前窗口的内容,很简便,可当内容特殊并且打印有特殊需求的时候就要绕个圈了.下面是需要打印的表格: 当数据量少的时候像上面的表格一样,中间的内容只有5条数据,打印出 ...

  4. Excel职场小技巧:教你如何分页打印Excel表格

    当我们在制作Excel表格时候,为了省麻烦直接在里面制作多个表格,但又不知道如何才能分页将这些表格打印出来,那么遇到这种情况我们应该如何操作呢?是重新制作多个Excel表格,再一个个的打印,还是有什么 ...

  5. 使用lodop打印el-table表格无法显示内容,只显示表头的问题

    今天使用lodop打印el-table表格,发现只显示表头,而且显示的还不规范,于是一直在测试,最后想到把要打印元素转化为图片就不会造成无法正确显示内容了 1,引入插件 npm install htm ...

  6. window.print()页面打印之表格内容分页填充进行分页打印

    windwow.print()用于打印当前窗口的内容,很简便,可当内容特殊并且打印有特殊需求的时候就要绕个圈了.下面是需要打印的表格: 当数据量少的时候像上面的表格一样,中间的内容只有5条数据,打印出 ...

  7. 将列表打印为表格数据

    本文翻译自:Printing Lists as Tabular Data I am quite new to Python and I am now struggling with formattin ...

  8. css打印适应纸张_使用原生css+js+html实现打印A4纸张的功能页面

    有时候我们需要使用html+css实现打印A4纸张的功能页面,以下代码实现 A4打印页面 /*横向*/ .a4-endwise{ margin: 0 auto; width: 1070px; heig ...

  9. excel表格打印每页都有表头_【Excel】打印超长表格,怎么才能每页都显示表头?...

    打印长表格时,是不是遇到过只有第一页有表头,后面几页都没有表头的情况? 怎么解决? 换页处插入一行把表头复制过来? 可以,但是,有更有效率的办法! 来吧!学起来!! 方法:点页面布局--打印标题--打 ...

最新文章

  1. 寒武纪首颗AI训练芯片亮相
  2. 聊聊Spring事务失效的12种场景,太坑人了
  3. 第九次作业——测试报告与用户手册
  4. python绘制数字_#0000在一个图片上画一个数字
  5. 你自己永远是个非常非常弱小的一个东西
  6. JSP中的forward指令
  7. elementPlus关闭弹窗,页面原先滚动条消失
  8. win7无损扩大c盘空间_无损网络导航的空间模型
  9. mysql安装条款_mysql 安装注意
  10. 如何用Pygame写游戏(三)
  11. Free Mybatis plugin
  12. 拒绝外部投资、融资及收购,Epic是如何成为美国电子病历“一姐”的?
  13. php 判断客户端类型,怎么使用php判断客户端的类型
  14. Golang interface接口深入理解
  15. scala时间处理-获取今天日期,昨天日期,本周时间,本月时间,时间戳转换日期,时间比较
  16. Scala进阶_函数式编程(过滤丶排序丶分组丶聚合)
  17. 软考-软件设计师 UML建模
  18. javaweb实现支付宝扫码支付完整流程
  19. Redis 分布式算法原理
  20. 【转载】Windows上那些值得推荐的良心软件-整理 easybcd 引导工具 easyuefi 引导工具...

热门文章

  1. 云服务器与物理服务器有什么区别?
  2. 华为+android+root权限获取root,[Android]如何获取华为手机的root权限
  3. 如何在网页中插入视频(简单实用)
  4. jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败
  5. easyUI easyui-datagrid (良好习惯:onClickRow,onSelect 都写上,事件同步)
  6. 四种方法获取可执行程序的文件路径(.NET Core / .NET Framework)
  7. [微服务]API 路由管理--Gateway网关
  8. Johnson–Lindenstrauss Lemma
  9. vue中 给v-for渲染的元素动态添加移除类名
  10. SNARK Design