1. 这里用的是A4纸,设置打印表格属性(width:100%,height:980px)

2.由于打印可能存在多页,所以heightt属性必须严格控制。

3.由于自己是先隐藏不需要打印的DIV,然后显示需要打印的DIV。当需要打印的DIV存在图片等资源导致加载较慢时。window.print又是异步的,所以存在图片没加载完就打印的情况。

解决方案:判断图片是否加载完成,加载完成在调用打印。(直接.onload不行,当浏览器有 缓存时不会进入方法)

var t_img; // 定时器
var isLoad = true; // 控制变量(判断图片是否 加载完成)

isImgLoad(function(){//判断全部打印图片加载完成
            window.print();
            // 加载完成
        });

//判断图片加载的函数
function isImgLoad(callback){
    // 查找所有打印图,迭代处理
    $('.printImg').each(function(){
        // 找到为0就将isLoad设为false,并退出each
        if(this.height === 0){
            isLoad = false;
            return false;
        }
    });
    // 为true,没有发现为0的。加载完毕
    if(isLoad){
        clearTimeout(t_img); // 清除定时器
        // 回调函数
        callback();
    // 为false,因为找到了没有加载完成的图,将调用定时器递归
    }else{
        isLoad = true;
        t_img = setTimeout(function(){
            isImgLoad(callback); // 递归扫描
        },500); // 我这里设置的是500毫秒就扫描一次,可以自己调整
    }
}

js打印window.print()图片打印相关推荐

  1. js 调用window.print()方法打印

    目的:打印功能实现,添加水印 步骤: 1.写好jsp页面 2.写打印方法 即window.print()打印当前页面,如果只想打印部分页面的话,可以截取该部分赋值给body即可 3.调用打印方法即可 ...

  2. js使用window.print()实现打印功能

    js使用window.print()来实现打印功能 1.首先在需要打印的内容标签上面绑定ref <div ref="tableRef">需要打印的内容 </div ...

  3. js的window.print()打印背景图片,打印背景图片无法显示

    js的window.print()打印背景图片 题目描述 js的window,print()打印背景图片给body加了图片地址之后,非要设置浏览器打印选项里面设置背景图形打印才行,怎么通过js去设置默 ...

  4. ie调用window.print批量打印数据表格。

    需求 根据勾选的checkbox,一次将数据打印出来. 注意 1,我第一次是用循环一次一次调用window.print方法,想把数据一张一张打出来.结果因为输入输出流的问题,这样是一个死路. 取巧的思 ...

  5. 浏览器打印 之 window.print() 设置打印样式和内容

    项目中用的是谷歌浏览器,js 执行 window.print() 就会调用谷歌浏览器的打印功能. 打印其实打印的是整个当前网页,只是用媒体查询(@media print)把网页中要打印的内容做了显示, ...

  6. 关于页面打印window.print()的样式问题

    当我们打印网页的时候.有时候会发现.打印出来的.跟网页上看到的样式的差别有点大.这其中可能有的问题是.样式问题. 当调用打印(window.print())方法时.打印机会在网页的样式中查找 @med ...

  7. js 实现用window.print()打印页面中的部分内容,局部打印

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 如下方法: function printProof(){var printData = docume ...

  8. js使用页面打印window.print() 记录,并进行缩放打印

    //打印print:function(){//获取打印的页面内容let subOutputRankPrint = document.getElementById('print-div');let ne ...

  9. html打印页面设置缩放,js使用页面打印window.print() 记录,并进行缩放打印

    //打印 print:function(){ //获取打印的页面内容 let subOutputRankPrint = document.getElementById('print-div'); le ...

最新文章

  1. c#chart背景透明_C# 二
  2. H.264 基础及 RTP 封包详解
  3. Ubuntu下架设FTP服务器(转)
  4. boost::gil::is_bit_aligned用法的测试程序
  5. 转 JavaScript传值及.Net传值方式总结
  6. 【jzoj】2018/2/2 NOIP普及组——D组模拟赛
  7. 大数据平台构建_如何像产品一样构建数据平台
  8. 详解 | 求你别用效率低下的I/O了,要不试试这种I/O
  9. 正面刚谷歌苹果,diss了BAT及友商,商汤科技说自己是一只“黑羊”
  10. 1.OAuth 简介
  11. 谷歌浏览器下载更新(附带谷歌安装包百度云)
  12. 对Movielens数据集进行评分预测
  13. 9月30日skype事件
  14. 非正态分布数据转换成正态分布
  15. 移动硬盘使用mysql_移动硬盘如何正确使用才好?
  16. 全文搜索 full-text search
  17. 51单片机74ls273并行输出地址c语言程序,跑马灯/输入输出接口(片选地址74LS273)...
  18. 京东 探索星球瓜分 1000 亿京豆 脚本
  19. Springer的投稿模板LLNCS类使用教程
  20. STM8开发实例-时钟系统(CLK)

热门文章

  1. 今天好无聊……悟空……你变成女妖精吧……
  2. 替代SSD?Crossbar进军中国存储市场
  3. 微信加不了公众号服务器繁忙,微信公众号系统繁忙是怎么回事
  4. 春招面试阿里,面试官让我说说Java8的新特性
  5. deepin v20桌面bug_“国产”Deepin桌面操作系统V20 正式版
  6. Java小程序post如何传参,微信小程序向Java后台传输参数的方法实现
  7. ElasticSearch索引生命周期管理(ILM)
  8. 【HNOI模拟By lyp】Day2
  9. 下列不能用作存储容量单位的是
  10. 好佳居软装十大品牌 软装拥有与众不同的体验