:LODOP指定window默認(rèn)打印機(jī)和臨時(shí)默認(rèn)打印機(jī)通過以下語(yǔ)句,可指定windows默認(rèn)打印機(jī)
LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER",某打印機(jī)名或序號(hào));
這種默認(rèn)打印機(jī)是指的windows操作系統(tǒng)的默認(rèn)打印機(jī)。
普通指定的方法就是進(jìn)入windows的控制面板,然后進(jìn)入打印機(jī)設(shè)備相關(guān)選項(xiàng),在windows打印機(jī)列表里,選中需要設(shè)置的默認(rèn)打印機(jī),然后右鍵-選設(shè)置為默認(rèn)打印機(jī)。這就是windows的默認(rèn)打印機(jī),在打印機(jī)列表里帶有對(duì)號(hào)的就是默認(rèn)打印機(jī)。
通過該語(yǔ)句,可以通過該語(yǔ)句修改windows默認(rèn)打印機(jī)。
windows默認(rèn)打印機(jī)的修改方法(圖示)

除此之外,還有其他選擇打印機(jī)方法,例如在頁(yè)面獲取打印機(jī)列表,讓用戶選擇(相關(guān)博文:LODOP在頁(yè)面讓客戶選擇打印機(jī)、Lodop在頁(yè)面獲取打印機(jī)列表 選擇打印機(jī)預(yù)覽、C-Lodop獲取打印機(jī)列表create_Printer_List、LODOP設(shè)置打印機(jī)不存在不打印)
LODOP中還有一種是臨時(shí)默認(rèn)打印機(jī),這種和windows默認(rèn)打印機(jī)是不同的,注意區(qū)分。
臨時(shí)默認(rèn)打印機(jī):LODOP.select_PRINTER();,這種默認(rèn)打印機(jī)選擇后,刷新頁(yè)面等操作,該默認(rèn)打印機(jī)就會(huì)失效,需要重新選擇。
通過該語(yǔ)句設(shè)置臨時(shí)默認(rèn)打印機(jī)后,該頁(yè)面所有沒有再代碼里指定打印機(jī)的打印任務(wù),都會(huì)使用該臨時(shí)默認(rèn)打印機(jī)打印,刷新或關(guān)閉頁(yè)面后這個(gè)臨時(shí)默認(rèn)打印機(jī)就失效了。
但對(duì)于已經(jīng)在任務(wù)里具體制定了打印機(jī)的,之前如果選擇了臨時(shí)默認(rèn)打印機(jī),LODOP和C-LODOP的表現(xiàn)是不同的。
測(cè)試步驟及結(jié)果:(如代碼和圖,有四個(gè)方法)
方法1:設(shè)置的windows默認(rèn)打印機(jī)。
方法2:設(shè)置頁(yè)面臨時(shí)默認(rèn)打印機(jī)
方法3:一個(gè)沒在代碼里指定具體打印機(jī)的任務(wù)。
方法4:一個(gè)在代碼里指定了xps具體打印機(jī)的任務(wù)。
測(cè)試臨時(shí)默認(rèn)打印機(jī),首先用方法2指定一下打印機(jī),然后,在沒指定的任務(wù)和指定了打印機(jī)的任務(wù)分別查看當(dāng)前打印機(jī)。
LODOP效果:
1.沒在代碼指定具體打印機(jī)的,是選擇的臨時(shí)默認(rèn)打印機(jī)。
2.在代碼指定了具體的xps打印機(jī)的,是xps打印機(jī)。
C-LODOP效果:
1.沒在代碼指定具體打印機(jī)的,是選擇的臨時(shí)默認(rèn)打印機(jī);
2.在代碼指定了具體的xps打印機(jī)的,還是選擇的臨時(shí)默認(rèn)打印機(jī)。
注意:也就是c-lodop中,頁(yè)面指定了臨時(shí)默認(rèn)打印機(jī),即使在代碼里重新指定新的打印機(jī),也是沒有效果的。
之前有人打印機(jī)指定語(yǔ)句書寫正確,打印機(jī)名稱也對(duì),但是就是打印機(jī)不生效,后來發(fā)現(xiàn)原來在指定具體的打印機(jī)之前,他先在頁(yè)面選擇了臨時(shí)默認(rèn)打印機(jī),而且走的是c-lodop方式,所以導(dǎo)致怎么也不生效。
選擇了臨時(shí)默認(rèn)打印機(jī),再指定打印機(jī),相對(duì)于沖突了,c-lodop再指定沒有效果,所以導(dǎo)致了這一現(xiàn)象,所以不要這樣使用,選擇打印機(jī)方法還很多,并有一定的優(yōu)先級(jí),后面會(huì)有博文介紹。
如果先用這個(gè)臨時(shí)默認(rèn)打印機(jī),可以不再任務(wù)指定具體的打印機(jī)語(yǔ)句,因?yàn)檫x了這個(gè)臨時(shí)打印機(jī),相當(dāng)于頁(yè)面所有打印任務(wù)都是這個(gè)打印機(jī)了。雖然測(cè)試再lodop中可以重新指定,但是c-lodop不行,所以如果要用這個(gè)臨時(shí)默認(rèn)打印機(jī),不再后面設(shè)置指定具體的打印機(jī)語(yǔ)句。
此臨時(shí)打印機(jī)刷新頁(yè)面關(guān)閉頁(yè)面等,都會(huì)失效,所以也可以不用這種選擇打印機(jī)方法。
測(cè)試代碼:
<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>
<div id="d1">
內(nèi)容
</div>
<a href="javascript:prn1_preview()">設(shè)置windows默認(rèn)打印機(jī)為HP....</a><br>
<a href="javascript:prn2_preview()">頁(yè)面選擇臨時(shí)默認(rèn)打印機(jī)</a><br>
<a href="javascript:prn3_preview()">代碼不指定打印機(jī)</a><br>
<a href="javascript:prn4_preview()">代碼指定了打印機(jī)xps..</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //聲明為全局變量
function prn1_preview() {//windows默認(rèn)打印機(jī)
LODOP=getLodop();
LODOP.PRINT_INIT("");
if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){alert(Value);};
var strResult=LODOP.SET_PRINT_MODE("WINDOW_DEFPRINTER","HP Color LaserJet 1600 Class Driver");
if (!LODOP.CVERSION) alert(strResult); };
function prn2_preview() {//頁(yè)面臨時(shí)默認(rèn)打印機(jī)
LODOP=getLodop();
if (LODOP.CVERSION) {
LODOP.On_Return=function(TaskID,Value){if(Value>=0) alert("選擇成功!"); else alert("選擇失敗!");};
LODOP.select_PRINTER();
return;
};
if (LODOP.select_PRINTER()>=0)
alert("選擇成功!"); else alert("選擇失敗!"); };
function prn3_preview() {//代碼不指定任何打印機(jī)
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("d1").innerHTML);
LODOP.PRINTA();
//LODOP.PREVIEW();
};
function prn4_preview() {//在代碼指定具體的打印機(jī)
LODOP=getLodop();
LODOP.PRINT_INIT("");
LODOP.SET_PRINTER_INDEX("Microsoft XPS Document Writer");//指定某虛擬打印機(jī)
LODOP.ADD_PRINT_HTM(0,0,"100%","100%",document.getElementById("d1").innerHTML);
LODOP.PRINTA();
//LODOP.PREVIEW();
};</script>
</body>
圖示:如圖,這里就不實(shí)際輸出了,直接用PRINTA,這個(gè)會(huì)彈出選擇打印機(jī)框,不進(jìn)行修改,可以查看到當(dāng)前的打印機(jī)。

該文章在 2023/11/24 16:52:47 編輯過