使用IE內建的列印控制項進行套打

來源:互聯網
上載者:User

使用IE內建的列印控制項進行套打

Author:http://blog.csdn.net/fenglibing
   2009年12月10日
    轉載請保留

 

當前項目中使用報表設計工具為開源的IREPORT報表工具,它的好處在於是開源的且免費的,如果是一般的列印,完全可以滿足要求;但是如果要涉及到列印格式為多種多樣,並且要給使用者完全的方便,即列印的時候系統自動建立紙張類型並確定寬高,使用者只需要點列印就行,IREPORT在這方面就不行了;因為其自身沒有列印控制項,只是調用IE的列印控制項,而IE為了安全起見,是不允許通過用戶端建立紙張類型的(註:這是我通過郵件從四方列印PAZU項目組的回複中得知的),其它的專業列印控制項,如明宇報表是可以實現這樣的功能的。

要使用IREPORT進行套打,也需要做兩套模板,使用者看到的是全部顯示內容的一套,而真正列印的是另外一套只有列印內容的一套,現在項目中就是這樣使用的,我不知道IREPORT是否可以根據屬性設定來自動產生兩套列印模板,即可以在設定版面設定哪些元素是套打元素、哪些是非套打元素,然後自動產生兩個HTML頁面,就可以減少工作量了;不過正因為它是開源的,所以作者可能維護的時間相對較少一點。

 

現在回到套打上來,在IE中如何使用IE控制項進行套打呢?這個時候可以採用在不同的時候根據情況顯示不同的架構頁面來做到,看如下: 

  


此時我們只需要將列印方法,設定為如下即可執行個體套打的功能了:

function printThis() {

      
document.getElementById("frame1").style.display="none";

      
document.getElementById("frame2").style.display="";

      
document.getElementById("functionLayer").style.display="none";

      
document.frames("frame2").window.focus();           

      
window.print();    

      
document.getElementById("frame1").style.display="";

      
document.getElementById("frame2").style.display="none";

      
document.getElementById("functionLayer").style.display="";    

}

 

另外需要注意一點,就是如果IFRAME中被包含的頁面的編碼與當前包含的頁面的編碼不一致,如當前父頁面的charset為gb2312,但是被包含頁面的編碼為utf-8,此時通過父面查看子頁面是顯示亂碼的,這個時候可以通過高過iframe的lang屬性,將其設為utf-8,如下:

<iframe id="frame1" src="..." lang="UTF-8" width="100%" height="500" frameborder=no></iframe>

也可以通過設定其charset屬性,如下:

frames.frame1.document.charset="utf-8";

這樣就可以解決亂碼的問題了。

本文出自:馮立彬的部落格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.