[筆記]Javascript 呼叫 IE 預覽列印 解決列印與畫面大小的平衡

  • 3295
  • 0
  • 2016-02-26

透過 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

 


以下是簽名:


Microsoft MVP
Visual Studio and Development Technologies
(2005~2019/6) 
topcat
Blog:http://www.dotblogs.com.tw/topcat