window.print()
打印页面进行缩放
背景:
笔者最近在给某精神卫生中心做量表报告项目的时候,甲方提出来这样一个需求,希望某些报告如果第二页只有一两行的情况下,尽量两页分成一页打印。
解决方案:
最开始我想的是因为A4纸最上方有padding,如果把这些padding去掉是不是就会增大第一页的显示面积,继而两页的内容就会在一页展示。但是试下来这个方案是不可行的,因为A4打印就是会有一截留白的padding,也不是很好改掉。
后来笔者想的方案是如果不能去掉留白的地方,干脆把整个打印区别等比例缩小一点点,因为纸张的大小是确定的,所以缩放后的元素是可以按照原比例放到对应的纸张上。
// 关键部分的代码function print {// 拿到需要打印页面的元素var printElement = document.getElementById('print-div');// getElementsByTagName() 方法可返回带有指定标签名的对象的集合。// 拿到被打印的body的元素后通过zoom属性调整大小document.getElementsByTagName('body')[0].style.zoom=0.92;window.print();}