利用WebBrowser實現Web列印的分析

來源:互聯網
上載者:User
web|web列印  WebBrowser是IE內建的瀏覽器控制項,無需使用者下載。本文檔所討論的是有關IE6.0版本的WebBrowser控制項技術內容。其他版本的IE應該也支援。與其相關的技術要求有:列印文檔的產生、版面設定、列印操作的實現等幾個環節。本文以asp為例,但是他可以容易的移植到其他web技術中。
  一、WebBrowser控制項
  <object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>

  二、WebBrowder控制項的方法
//列印

WebBrowser1.ExecWB(6,1);

//列印設定

WebBrowser1.ExecWB(8,1);

//預覽列印

WebBrowser1.ExecWB(7,1);

  三、實現列印的設定,列印資料的產生,列印的預覽,和列印。
  實現列印的設定,列印資料的產生,列印的預覽,和列印我一般這樣做,假如查詢結果在a.asp中,那麼在a.asp中放置列印設定、預覽列印、列印三個按鈕。
  單擊列印設定按鈕則在js中執行WebBrowser1.ExecWB(8,1),以開啟列印設定視窗。
  單擊預覽列印按鈕則開啟一個b.asp,在b.asp中重建列印資料,然後在b.asp中自動執行WebBrowser1.ExecWB(7,1),以開啟使用者預覽介面。
  單擊列印按鈕則也開啟b.asp,在b.asp中重建列印資料,然後在b.asp中自動執行WebBrowser1.ExecWB(6,1),以自動列印資料。
  四、代碼
  a.asp調用資料的程式就不給出了。只給出幾個按鈕的代碼:
  <input type=“button“ name=“mPrint“ value=“列印“ onclick=“exePrint();“>
<input type=“button“ name=“mPreview“ value=“預覽列印“ onclick=“exePreview();“>
<input type=“button“ name=“mSetting“ value=“列印設定“ onclick=“exeSetting();“>

<object ID='WebBrowser' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>
<script language='javascript'>

function exePrint()
{

liu= window.open('b.asp?do=1','_blank','left=2000,top=2000,fullscreen=3');
}
function exePreview()
{
window.open('b.asp?do=2','_blank','left=2000,top=2000,fullscreen=3');
}

function exeSetting()
{
WebBrowser.ExecWB(8,1);
}
</script>
代碼中列印設定的代碼很簡單,大家很容易理解。預覽列印和列印的按鈕需要告訴b.asp我們將要執行的是列印還是預覽列印。另外,還要將查詢字串傳遞過去。當然web高手可以嘗試其他方法,以避免反覆重伺服器調資料,當然初學者只能通過多次查詢,以犧牲效能來解決列印了。
假設本例中a.asp通過傳遞一個查詢串開啟了b.asp,則在b.asp中將重新載入資料。在這裡載入資料後將資料顯示在網頁上需要知道每個頁要顯示多少條(PageSize)。顯示的時候每顯示PageSize條後,就要顯示一個<p style='page-break-before:always;'> 這個語句相當於分頁符,也就是當列印或者預覽時遇到了這個分頁符後會強制分頁。一般我們可以這樣:
<table>
???
</table>
<p style='page-break-before:always;'>
<table>
???
</table>
<p style='page-break-before:always;'>

……

<table>
???
</table>
<p style='page-break-before:always;'>

顯示完資料後根據使用者的的指令(判斷參數do的值),來分別執行預覽或者列印。
如果是預覽則執行下面代碼:
WebBrowser.ExecWB(7,1);
window.opener=null;
window.close();
如果是列印則執行:
WebBrowser.ExecWB(6,1);
window.opener=null;
window.close();




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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