zoukankan      html  css  js  c++  java
  • jqprint的网页打印,打印预览可以包含图片

    自己负责的模块需要有个试卷打印的功能,需要将网页特定范围内的内容打印出来,所以选择了jquery.jqprint脚本

    用起来也非常简单。

        //打印
        $("#printPage").jqprint({
            debug: false,//如果是true则可以显示iframe查看效果,默认是false
            importCSS: true,//true表示引进原来的页面的css,默认是true。
            printContainer: true,//表示如果原来选择的对象必须被纳入打印,默认是true。
            operaSupport: true///表示如果插件也必须支持歌opera浏览器,默认是true。
        });

    但是遇到一个问题,就是在页面有很多图片的时候,用谷歌浏览器打印预览的时候,预览的页面不会显示所有的图片,这样打印出来也没有显示图片。

    查来查去,只能是jqprint脚本的问题,最后多次测试,发现将脚本里面

    setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);

    的时间从1000调至3000就会显示所有图片。

    虽说找到了原因,程序跑通了,但是原理还是不知道,希望有人能看到这篇随笔来指点一下。

    我猜应该是打印预览也是慢慢加载的,如果给的时间多的话,图片在这个时间能加载出来,就会在打印预览时出现。

    这个问题还是没有警醒的看,其实设置成3000还是不能应对所有情况。应该按照打印试卷的页数来算,这个计时的时间就是页数×200。这样就足够了

    setTimeout(function () { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } LoadingEnd(); }, pagenumber * 100 > 2000 ? pagenumber * 100 : 2000);

  • 相关阅读:
    64位内核开发第十二讲,进程监视,ring3跟ring0事件同步.
    64位内核开发第十讲,IRQL中断级别了解
    64位内核开发第九讲,注册表编程.
    64位内核开发第8讲,文件操作.以及删除文件.
    64位内核第七讲.内核中字符串编程注意事项
    【Unity】7.5 移动设备输入
    【Unity】7.4 游戏外设输入
    【Unity】7.3 键盘输入
    【Unity】7.2 鼠标输入
    【Unity】7.1 Input类的方法和变量
  • 原文地址:https://www.cnblogs.com/sanqianjin/p/4836643.html
Copyright © 2011-2022 走看看