c-lodop默認一次只能回調一個值,回調后會銷毀,如果想回調多個值,可加該語句:LODOP.On_Return_Remain=true;
之前有博文:lodop和c-lodop通過打印狀態和任務不在隊列獲取打印成功
中回調了兩個動作函數的返回值。
如果有需要回調兩個以上,寫法相同,通過taskid進行區分。
本文的例子寫法只是在c-lodop下使用,如果要用混合部署,還要加判斷是否為c-lodop,lodop不需要回調,可直接返回。
測試的是打印任務的頁數,打印紙張的寬度,打印的打印機(都需要先預覽或打印才能獲取)
測試代碼:
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>WEB打印控件LODOP</title> <script language="javascript" src="LodopFuncs.js"></script> </head> <body> <a href="javascript:prn0_preview()">先點打印預覽</a><br> <a href="javascript:prn2_preview()">后用回調獲取一些信息</a><br> <a href="javascript:prn3_preview()">在另一個方法里輸出剛才回調賦的值</a><br> <div id="div1"> <p id="view">顯示</p> </div> <script language="javascript" type="text/javascript"> var LODOP; //聲明為全局變量 var str="原始值"; function prn0_preview() {//該任務有兩頁,為強制分頁所得 LODOP=getLodop(); LODOP.PRINT_INIT(""); LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一"); LODOP.NEWPAGE(); LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本內容一"); LODOP.PREVIEW(); }; function prn2_preview() { LODOP=getLodop(); var TaskID1,TaskID2,TaskID3; LODOP.On_Return_Remain=true; LODOP.On_Return=function(TaskID,Value){ if (TaskID== TaskID1) { str="該任務共有"+Value+"頁。<br>"; console.log(str); } else if (TaskID== TaskID2) { str+="該任務的紙張寬度"+Value+"。<br>"; console.log(str); } else if (TaskID== TaskID3) { str+="該任務所用的打印機的名稱是"+Value+"。<br>"; console.log(str); var p_view=document.getElementById("view"); p_view.innerHTML=str; }; }; TaskID1=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//獲取頁數 TaskID2=LODOP.GET_VALUE('PRINTSETUP_PAGE_WIDTH',"0");//獲取紙張寬度 TaskID3=LODOP.GET_VALUE('PRINTSETUP_PRINTER_NAME',"0");//獲取當前所用的打印機名稱 }; function prn3_preview() { console.log("這是另一個方法里輸出的該全局變量的該值"+str); }; </script> </body>
圖示:

