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

您所在的位置:网站首页 chrome打印预览加载不出来 IE9环境下。LODOP打印,首次打印时,图片加载不出来、加载不完全问题

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

2024-07-11 05:28| 来源: 网络整理| 查看: 265

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(); }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3