3

我有一个 HTML,它在对象标签中嵌入了一个 SVG 文件。

此文件通过文件协议从共享远程位置访问,并在 IE(IE9 或最新版本)上访问。

当按下“P”键时,我已经进行了更改以触发window.print(),并且还可以ctrl + P显示打印对话框。

我观察到,对于上述情况(在 IE9 上远程访问的文件),这两种情况下的打印质量差异很大。

我们可以通过打印到 PDF 进行检查。

谁能解释两者之间的区别以及我应该怎么做才能使window.print()工作与我们做时一样ctrl + P

    <!-- DOCTYPE HTML -->
<HTML>
<HEAD><TITLE>Print</TITLE>
<META content="text/html; charset=UTF-8" http-equiv=Content-Type>
<SCRIPT type=text/javascript src="jquery.js"></SCRIPT>
<SCRIPT type=text/javascript>
        function printProcess() {
        jQuery(document).bind("keyup", function(e){    
                if(e.keyCode == 80){
                    p();
                }
            });
        }       
        function p(){
        window.print();
        }
    </SCRIPT>
</HEAD>
<BODY style="WIDTH: 100%;HEIGHT: 100%" onload="printProcess();" >
    <DIV style="HEIGHT: 100%" id="printableDiv" >
        <OBJECT data="test.svg" width="100%" type="image/svg+xml" height="100%">
        </OBJECT>
    </DIV>
</BODY>
</HTML>
4

2 回答 2

2

对于有兴趣的人,这里是答案。问题通过添加解决

<META http-equiv="X-UA-Compatible" content="IE=EmulateIE9">

到 HTML,感谢 Vitor Canova

于 2013-12-20T14:00:28.880 回答
1

使用以下功能:

function print_me(idx)
{
    var browser = navigator.userAgent;
    if(browser.indexOf('MSIE')>=0){
    document.execCommand('print', false, null);
    }
    else{
    window.print();
    }

}//end func...

基本上,我们需要在 MSIE 上调用 print 方法有点不同......

于 2013-12-20T11:11:43.337 回答