LODOP在頁面讓客戶選擇打印機


獲取打印機列表可以放在onload事件里,如過當前是使用的c-lodop,由於websoket鏈接需要時間,一進入頁面可能會報錯,被准備好或網頁沒下載完成等,也可以在點擊事件里讓用戶獲取打印機。
之前寫過兩個在頁面選擇打印機的博文:
Lodop在頁面獲取打印機列表 選擇打印機預覽 
C-Lodop獲取打印機列表Create_Printer_List(c-lodop獨有的方法,集中打印,AO打印可以用這個方法)
都是早期寫的博文,搬運到新博客的,沒有代碼,這里重新介紹一下第一個博文的那種lodop和c-lodop通用的方法,選擇打印機也可以不在頁面加載的時候獲取,點擊后獲取打印機列表然后選擇。
正常情況下點擊一次,獲取到打印機列表,用戶就可以選擇打印機了,但是用戶也可能手滑或者點了多次等原因,為了避免重新裝載打印機到列表里,可以判斷為不為空的時候就不再裝載了。

在onload理論原來寫的這個獲取打印機列表方法:(由於之前寫過,不再放這個的圖)后面的有按鈕獲取的圖。其實和按鈕獲取的方法是一樣的,就是一個在onload理論,一個按鈕點擊獲取。
代碼:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
選擇打印機:<select id="PrinterList" size="1"></select>  
<a href="javascript:prn1_preview()">打印預覽</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //聲明為全局變量 
        window.onload=function(){creatPrintList();}
       function creatPrintList(){
        LODOP=getLodop(); 
        var iPrinterCount=LODOP.GET_PRINTER_COUNT();
        for(var i=0;i<iPrinterCount;i++){
               var option=document.createElement('option');
               option.innerHTML=LODOP.GET_PRINTER_NAME(i);
               option.value=i;
            document.getElementById('PrinterList').appendChild(option);
        };    
       };
    function prn1_preview() {
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINTER_INDEX(document.getElementById("PrinterList").value);    
        LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
        LODOP.ADD_PRINT_TEXT(4,62,150,40,"文字");
        LODOP.PREVIEW();    
    };
</script> 
</body>

在點擊按鈕里獲取打印機列表:判斷為空,就不再重新裝載。
此外在實際應用的時候,考慮到用戶可能的操作,都需要加一些判斷,如前面的很多在文本框填寫,然后打印的博文,都需要判斷是否為空,用戶也可能什么也不填寫就打印等。

代碼:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
<style>
</style>
</head>
<input type="button" value="選擇打印機" onclick="creatPrintList()" > <select id="PrinterList" size="1" style="margin-top:10px;"></select>
<input type="button" value="選擇打印機" onclick="creatPrintList2()" > <select id="PrinterList2" size="1" style="margin-top:10px;"></select> 

<script language="javascript" type="text/javascript">   
        var LODOP; //聲明為全局變量 
       function creatPrintList(){
        LODOP=getLodop(); 
        var iPrinterCount=LODOP.GET_PRINTER_COUNT();
        for(var i=0;i<iPrinterCount;i++){
               var option=document.createElement('option');
               option.innerHTML=LODOP.GET_PRINTER_NAME(i);
               option.value=i;
            document.getElementById('PrinterList').appendChild(option);
        };    
       document.getElementById('PrinterList').style.display='block';
       };

       function creatPrintList2(){
    if (document.getElementById('PrinterList2').innerHTML!="") return;
    //點第二次以上,在列表已經填充不為空情況下,不再執行后面的代碼,直接返回,避免重新裝載打印機。
        LODOP=getLodop(); 
        var iPrinterCount=LODOP.GET_PRINTER_COUNT();
        for(var i=0;i<iPrinterCount;i++){
               var option=document.createElement('option');
               option.innerHTML=LODOP.GET_PRINTER_NAME(i);
               option.value=i;
            document.getElementById('PrinterList2').appendChild(option);
        };    
       document.getElementById('PrinterList2').style.display='block';
       };
    function prn1_preview() {
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.SET_PRINTER_INDEX(document.getElementById("PrinterList").value);    
        LODOP.SET_PRINT_PAGESIZE(1,300,500,"");
        LODOP.ADD_PRINT_TEXT(4,62,150,40,"文字");
        LODOP.PREVIEW();    
    };
</script> 
</body>

圖示:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM