打印IFRAME的内容

时间:2011-04-20 05:21:44

标签: javascript html

我正在尝试打印iframe中的内容。下面的代码工作正常。

HTML:

  <div id="containerDiv">           
            <p> 
                <table cellpadding="1" width="100%" height="100%" cellspacing="0" border="0">                
                 <tr>
                   <td align="right" ><img src="Images/printer1.png" alt="Print" id="imgprint" onclick="printticket()" style="display:none;cursor:pointer;padding-top:2px;" /></td>
                 </tr>
                 <tr>
                  <td align="center">
                    <iframe id="OverlayDis" name="OverlayDis" scrolling="yes" src="Default1.aspx" allowtransparency="true"
                    runat="server" frameborder="0" style="background-color: white; width: 980px; height: 500px;"></iframe>
                  </td>
                 </tr>
                 <tr>
                   <td align="center"><input type="button" style="background-color:#400000;border:solid 1px black;color:White;font-weight:bold" id="closeLink" href="javascript:void(0);" value="Close"/></td>  
                 </tr>
                </table>
            </p>
        </div>  

JS:

  window.frames["OverlayDis"].focus();
  window.frames["OverlayDis"].print();

但我的字体大小有问题。可见字体大小不是硬拷贝。页面大小为12px所有文本,但输出打印时间为8pt或更少。

发生了什么?

 @media print
    {
      body{font-family:verdana; font-size:10px;}
      span.subheader{font-family: Verdana; font-size: 12px; font-weight: bold;}  
      span.sign{float:right;padding-right:20px;padding-top:20px;font-size:12px;font-weight:20px;font-weight: bold;}
    }

    @media screen
    {
      body{font-family:verdana; font-size:10px;}
      span.subheader{font-family: Verdana; font-size: 12px; font-weight: bold;}
      span.sign{float:right;padding-right:20px;padding-top:20px;font-size:12px;font-weight:20px;font-weight: bold;}
    }

我将此样式添加到我的页面进行打印,但这仍然无法正常工作,因此我可以使用lightbox插件来显示此框架。

var test;
Event.observe(window, 'load', function () {
    test = new Lightbox('containerDiv');
});

function OpenOverlay(url)
{   
    document.getElementById('OverlayDis').src = url;
    test.open();

    Event.observe('closeLink', 'click', function () {
        test.close();
    });
}

我的错误是什么?

2 个答案:

答案 0 :(得分:1)

iframe的文档中使用print stylesheet

答案 1 :(得分:1)

我更改弹出窗口而不是iframe并打印并关闭正在工作!!