利用WebBrowser实现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=“打印“ οnclick=“exePrint();“>
<input type=“button“ name=“mPreview“ value=“打印預覽“ οnclick=“exePreview();“>
<input type=“button“ name=“mSetting“ value=“打印設置“ οnclick=“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();
轉載于:https://www.cnblogs.com/lonelyxmas/p/3788179.html
總結
以上是生活随笔為你收集整理的利用WebBrowser实现Web打印的分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Yii框架里用grid.CGridVie
- 下一篇: WebBrowser!