IE9环境下。LODOP打印,首次打印时,图片加载不出来、加载不完全问题

IE9环境下。LODOP打印,首次打印时,图片加载不出来、加载不完全问题

最近项目中涉及到照片打印的地方在IE9环境下首次打印会出现图片打印不出来,或者只打印出来一部分,但是第二次打印或者将浏览器切换到Edge下,又可以完整的打印出来的问题。一开始想到的就是由于网络原因造成了图片没有加载到或者没有加载完全。加延时!这是我第一个想到的方法。

但是延时加在哪儿呢?当时还是很懵逼的,于是经过了各种尝试:
这是最开始的代码:

success : function(html) {
                LODOP.PRINT_INIT("合格证打印"+rowsData.NAME+"--"+rowsData.CREDENTIALS_NO);
                if(hgzType == "1"){
                    LODOP.SET_PRINT_PAGESIZE(1,"210mm","297mm","");
                }else{
                    LODOP.SET_PRINT_PAGESIZE(2,"210mm","297mm","");
                }
                LODOP.ADD_PRINT_HTM(hgzTop?hgzTop:20,hgzLeft?hgzLeft:15, "100%","100%",html);
                LODOP.PRINT();
            }

这是第一次修改的代码:

success : function(html) {
                setTimeout(function () {
                    LODOP.PRINT_INIT("合格证打印"+rowsData.NAME+"--"+rowsData.CREDENTIALS_NO);
                    if(hgzType == "1"){
                        LODOP.SET_PRINT_PAGESIZE(1,"210mm","297mm","");
                    }else{
                        LODOP.SET_PRINT_PAGESIZE(2,"210mm","297mm","");
                    }
                    LODOP.ADD_PRINT_HTM(hgzTop?hgzTop:20,hgzLeft?hgzLeft:15, "100%","100%",html);
                    LODOP.PRINT();
                },3*1000);

            }

再次测试发现还是不行,图片加载在打印控件被调用后完成的,这样只是延时了调用打印控件,于是就想那在打印的开始之前在延时怎么样?于是就有了第二次改动:

success : function(html) {
                LODOP.PRINT_INIT("合格证打印"+rowsData.NAME+"--"+rowsData.CREDENTIALS_NO);
                if(hgzType == "1"){
                    LODOP.SET_PRINT_PAGESIZE(1,"210mm","297mm","");
                }else{
                    LODOP.SET_PRINT_PAGESIZE(2,"210mm","297mm","");
                }
                LODOP.ADD_PRINT_HTM(hgzTop?hgzTop:20,hgzLeft?hgzLeft:15, "100%","100%",html);
                setTimeout(function () {
                    LODOP.PRINT();
                },3*1000);

            }

最初的想法是 LODOP.PRINT() 调用打印控件,图片加载是不是在这之前的 LODOP.ADD_PRINT_HTM 就已经在进行了呢?测试立马就给了我狠狠一巴掌。照片还是打印不出来!

那么办法,现在只有去找LODOP的文档,但是我发现网上关于LODOP的讨论并不多,就算有大部分也是一些使用教程,出现问题的文章并不多,发现一篇很好的介绍LODOP各个方法的文章@求知路漫漫,(但是依旧没有找到我想要的方法)。
后来还是在@dqx-低权限Lodop、C-Lodop简短问答(二)中找到了答案(不过@dqx-低权限的主页是真的……很让人没有逛下去的欲望….)。
其实LODOP 自带了一个延时任务,用于延时加载超文本:


LODOP.SET_PRINT_STYLEA(0,”HtmWaitMilSecs”,1000)


这样就是延时下载超文本1000毫秒,该过后的代码为:

    success : function(html) {
                LODOP.PRINT_INIT("合格证打印"+rowsData.NAME+"--"+rowsData.CREDENTIALS_NO);
                if(hgzType == "1"){
                    LODOP.SET_PRINT_PAGESIZE(1,"210mm","297mm","");
                }else{
                    LODOP.SET_PRINT_PAGESIZE(2,"210mm","297mm","");
                }
                LODOP.ADD_PRINT_HTM(hgzTop?hgzTop:20,hgzLeft?hgzLeft:15, "100%","100%",html);
                LODOP.SET_PRINT_STYLEA(0,"HtmWaitMilSecs",1000);
                LODOP.PRINT();
            }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值