1. 程式人生 > >使用ScriptX進行Web列印提示:factory.printing為空或不是物件,不能列印

使用ScriptX進行Web列印提示:factory.printing為空或不是物件,不能列印

如果在專案裡使用了ScriptX進行WEB列印時候出錯並提示:factory.printing為空或不是物件,不能列印,那麼原因我自己認為是有2個:

        1、ScriptX外掛沒有安裝好;

        2、安裝的ScriptX和專案裡的smsx.cab版本不一致。

其實很好解決。

首先,建議你重新在官方網站上下載最新的ScriptX:點選下載

       下載後直接安裝,預設安裝即可。

       安裝完畢後會自動開啟一個網頁,先別急著關掉,如果你英文水平夠好,可以從中看到不少東西,包括怎麼使用。

        (強烈建議看完它,此HTML檔案是在安裝的根目錄下:C:\Program Files\MeadCo ScriptX Resource Kit\readme Client.htm)

       當然你可以使用谷歌瀏覽器把它翻譯成中文,但會對其中程式碼有影響。

然後,在ScriptX安裝的目錄下的redist資料夾中把smsx.cab拷貝到你的專案中,如我的安裝目錄是:

             C:\Program Files\MeadCo ScriptX Resource Kit\redist

最後,一定要確認頁面中<object></object>中的codebase的路徑正確和安裝的ScriptX版本對應。這樣應該就可以了。

我自己的例子:

ScriptX版本 : 7,0,0,8

        頁面內容:

<!-- MeadCo Security Manager -->
<object id="secmgr" viewastext style="display:none"
	classid="clsid:5445be81-b796-11d2-b931-002018654e2e"
	codebase="/oa/suppliesmgm/js/smsx.cab#Version=7,0,0,8">
	<param name="GUID" value="{0ADB2135-6917-470B-B615-330DB4AE3701}">
	<param name="Path" value="http://www.meadroid.com/scriptx/sxlic.mlf">
	<param name="Revision" value="0">
</object>

<!-- MeadCo ScriptX -->
<object id="factory" viewastext style="display:none"
	classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814">
</object>

JS程式碼:

//列印
function fun_print() {  
    factory.printing.header = "";//頁首  
    factory.printing.footer = "";//頁尾  
    factory.printing.leftMargin = 1.0;//左邊距  
    factory.printing.topMargin = 1.3;//上邊距  
    factory.printing.rightMargin = 1.0;//右邊距  
    factory.printing.bottomMargin = 1.3;//下邊距  
      
    factory.printing.portrait = true;//列印方向,true:縱向.false:橫向  
    factory.DoPrint(false);//設定為false,直接列印  
}
上面JS函式只要在你定義的列印按鈕呼叫它即可。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

不知道為什麼我如果像下面形式就不行,還會報上沒為空或不是物件的提示,所以我只能按照官方詳細的寫法(上面):
<!-- MeadCo ScriptX -->
<object id="factory" viewastext style="display:none"
   classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
   codebase="http://[your_path]/smsx.cab#Version=7,0,0,8">
</object>