首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

IE内置WebBrowser控件打印遇到的有关问题:很多图片的页面不能打印

2013-10-11 
IE内置WebBrowser控件打印遇到的问题:很多图片的页面不能打印我用IE内置WebBrowser控件打印frame中的页面,

IE内置WebBrowser控件打印遇到的问题:很多图片的页面不能打印
我用IE内置WebBrowser控件打印frame中的页面,当页面中含有较多图片时,当在选择打印机的页面点击“打印”按钮时,打印机没反应,在打印机属性里也没有挂起的打印任务,但是当页面中只有4、5个图片时就能打印正常,一个图片大约200多K,请问有没有遇到相同问题的童鞋,以下是代码,也是从网上找的

我在考虑是否和页面的大小有关系,请教各位是否能给一些建议,谢谢!

function printFrame(frame, onfinish) {
            if (!frame) frame = window;

            function execOnFinish() {
                switch (typeof (onfinish)) {
                    case "string": execScript(onfinish); break;
                    case "function": onfinish();
                }
                if (focused && !focused.disabled) focused.focus();
            }

            if ((frame.document.readyState !== "complete") && (!frame.document.confirm("The document to print is not downloaded yet! Continue with printing?"))) {
                execOnFinish();
                return;
            }


            var eventScope = printGetEventScope(frame);            
            var focused = document.activeElement;

            window.printHelper = function () {
                execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
                printFireEvent(frame, eventScope, "onafterprint");
                printWB.outerHTML = "";
                execOnFinish();
                window.printHelper = null;
            }

            document.body.insertAdjacentHTML("beforeEnd",
              "<object id="printWB" width=0 height=0 \
                classid="clsid:8856F961-340A-11D0-A96B-00C04FD705A2">");
            printFireEvent(frame, eventScope, "onbeforeprint");
            frame.focus();
            window.printHelper = printHelper;
            setTimeout("window.printHelper()", 0);
        }


        // helpers
        function printIsNativeSupport() {
            var agent = window.navigator.userAgent;
            var i = agent.indexOf("MSIE ") + 5;
            return parseInt(agent.substr(i)) >= 5 && agent.indexOf("5.0b1") < 0;
        }

        function printFireEvent(frame, obj, name) {
            var handler = obj[name];
            switch (typeof (handler)) {
                case "string": frame.execScript(handler); break;
                case "function": handler();
            }
        }

        function printGetEventScope(frame) {
            var frameset = frame.document.all.tags("FRAMESET");
            if (frameset.length) return frameset[0];


            return frame.document.body;
        } webbrowser 打印控件
[解决办法]
猜测,可能和文档还没有加载完,就发出了打印命令有关。

热点排行