透過 JavaScript 來啟動 IE 的 預覽列印 功能,筆記一下提供未來有需要的時候可以參考
緣起
小喵最近遇到個狀況,使用者有將畫面列印的需求,小喵撰寫時使用FireFox,列印整頁沒問題。可是,使用者用IE列印時,列印的字變大,表格被擠出A4的範圍。此時如果把畫面調小,瀏覽時會覺得太小,但不調整,又印不下整頁,就在兩難之際突然想到,預覽列印不是可以調整列印比率,如果可以用JavaScript啟動預覽列印,那就不必去調整畫面的大小,列印時再由使用者自己調整列印的比率讓他可以印在一頁A4裡面就好,而且小喵必須控制畫面中某一部分不列印,因此也無法要求使用者直接點選IE功能表上的預覽列印,於是小喵找了一下透過 JavaScript 來啟動 IE 的方式,順便記錄下來以便未來參考。
這功能只限定在IE使用。
參考
內容參考以下這篇
http://cate-taiwan.blogspot.tw/2008/12/ie-javascript.html
WebBrowser物件宣告
首先需要宣告ActiveX 來控制WebBrowser
<OBJECT classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2" height="0" id="wb" name="wb" width="0"></OBJECT>
使用預覽列印
列印的指令很簡單,只需要如下即可:
wb.execwb(7,1);
由於小喵列印的需求是,畫面中的某個區塊,列印時不要顯示,所以稍微加點工,列印前隱藏,列印後顯示,這樣就可以囉
function Print_Preview(){
$('#divNotPrint').hide();
wb.execwb(7,1);
$('#divNotPrint').show();
}
其他功能指令:
其實,這ActiveX還有其他的控制可以使用,小喵參考網路上其他大大的內容列舉如下
wb.ExecWB(1,1); //打開
wb.ExecWB(2,1); //關閉現在所有視窗,並打開一個新視窗
wb.ExecWB(4,1); //儲存網頁
wb.ExecWB(6,1); //列印
wb.ExecWB(7,1); //預覽列印
wb.ExecWB(8,1); //列印設定
wb.ExecWB(10,1); //查看頁面屬性
wb.ExecWB(17,1); //全選
wb.ExecWB(22,1); //Refresh
wb.ExecWB(45,1); //關閉視窗無提示
相關訊息小喵筆記下來,提供未來參考
^.^a
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |