2015/1/7

Question:
遇到使用者需求不想在按下列印按鈕後還跳出確認視窗(就是選擇印表機的那個視窗),
當好同時也需要橫向列印的功能,一起解決~

Solve:
直接用window.print()一定會出現確認視窗,
利用MeadCo's ScriptX的smsx.cab就可以對列印功能進行相關設定,
http://scriptx.meadroid.com/
包含邊界、頁首、頁尾、方向等等。

step1 想辦法找到smsx.cab檔案
我是在MeadCo's ScriptX的官網上下載msi檔回來安裝,
得到smsx.cab檔就移除掉相關軟體了。

step2 在html裡增加object tag
<object id="factory" style="display:none" 
        classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
        codebase="[你放置的路徑]smsx.cab#Version=7,5,0,20">
</object>
範例是將smsx.cab放在根目錄,總之就是依照路徑去import,
將factory物件生成。

step3 Javascript部分
<script type="text/javascript">
    function fprint() {
        factory.printing.header = "設定頁首"
        factory.printing.footer = "設定頁尾"
        factory.printing.portrait = false //true: 縱向, false: 橫向
        factory.printing.leftMargin = 0   //左邊界
        factory.printing.topMargin = 0    //上邊界 
        factory.printing.rightMargin = 0  //右邊界
        factory.printing.bottomMargin = 0 //下邊界
        factory.printing.Print(false);    //true: 跳出視窗, false直接列印
    }

</script>

在用網頁控制項去call這個function,
就會依照設定值去進行列印作業了~
照範例就能直接列印網頁,同時也可做橫向列印囉!

p.s. 此解法只有IE有辦法使用,別的瀏覽器再找有沒有其他方式吧。

參考網頁:http://handmadesoap.pixnet.net/blog/post/33126572-%E7%B6%B2%E9%A0%81%E5%88%97%E5%8D%B0%E6%96%B9%E5%90%91%E5%95%8F%E9%A1%8C%E7%A0%94%E7%A9%B6%E8%88%87%E5%BF%83%E5%BE%97%E5%88%86%E4%BA%AB


2 意見: