IE打印A4,表格缩小问题剖析

本文详细分析了IE浏览器在打印A4表格时出现的缩小问题,通过排除法和观察验证,发现IE在打印时会等比例缩小样式。解决方案是通过调整样式比例并在printThis.js插件中使用loadCSS引入forieprint.css,重新定义打印样式,成功解决了打印缩放问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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文件。
我们在新的文件中重新定义打印表格的宽度、行高、字号,最终实现了项目目标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值