前端調用打印機打印條碼、二維碼(一些坑)


1、首先電腦需要安裝TSCActiveX控件;TSCActiveX.dll,TSCLIB.dll放入系統盤里(32和64)(我的打印機型號是TSC TTP-244 Pro);使用regsvr32去注冊;

2、安裝打印機的驅動程序;(網上很多)

3、ActiveX控件方法只支持IE瀏覽器;並且要設置瀏覽器對Activex的啟用(默認是關閉的),否則會報AutoMation的錯誤;

4、實現打印二維碼、條碼的功能的代碼:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script type="text/javascript">

        function TestFun() {
            
            var TSCObj = new ActiveXObject("TSCActiveX.TSCLIB");
            TSCObj.ActiveXopenport("TSC TTP-244 Pro");
            TSCObj.ActiveXsetup("70", "40", "4", "15", "0", "2.5", "0");//打印機設置
            //TSCObj.ActiveXsetup("標簽寬度","標簽高度","打印速度","打印濃度(0-15)","感應器類別字串型,0 表示使用垂直間距感測器(gap sensor), 1 表示使用黑標感測器(black mark senso)","Gap/Black mark垂直間距(mm)","Gap/Black mark偏移距離(mm)");
            TSCObj.ActiveXsendcommand("DIRECTION 1"); //設置標簽方向 ,DIRECTION 1 左上角 (x,y)={0,0};DIRECTION 0 右下角 (x,y)={0,0};
            TSCObj.ActiveXsendcommand("SET TEAR ON");
            TSCObj.ActiveXclearbuffer();
            //TSCObj.ActiveXsendcommand ("PUTPCX 0,0,\"123.PCX\"");
            /*
            1、ActiveXprinterfont采用機器內置編碼通常用來打英文。
            2、ActiveXwindowsfont可以輸出漢字,但是必須是系統中存在的字體。
            TSCObj.ActiveXprinterfont ("a","b","c","d","e","f","g");
            a:字符串,文字X方向起始點,以點表示。
            b:字符串,文字Y方向起始點,以點表示。
            c:內建字型名稱,共12種(1: 8*12 dots 2: 12*20 dots 3: 16*24 dots 4: 24*32 dots 5: 32*48 dots TST24.BF2: 繁體中文 24*24 TST16.BF2: 繁體中文 16*16 TTT24.BF2: 繁體中文 24*24 (電信碼) TSS24.BF2: 簡體中文 24*24 TSS16.BF2: 簡體中文 16*16 K: 韓文 24*24 L: 韓文 16*16 )
            d:字符串,旋轉角度
            e:字符串,X方向放大倍率1-8
            f:字符串,Y方向放大倍率1-8
            g:字符串,打印內容
            ActiveXwindowsfont(a,b,c,d,e,f,g,h)
            說明:使用Windows TTF字體打印文字。
            參數:
            a:整數類型,文字X方向起始點,以點表示。
            b:整數類型,文字Y方向起始點,以點表示。
            c:整數類型,字體高度,以點表示。
            d:整數類型,旋轉角度,逆時針方向旋轉。0-旋轉0°,90-旋轉90°,180-旋轉180°,270-旋轉270°。
            e:整數類型,字體外形。0:標簽;1:斜體;2:粗體;3:粗斜體。
            f:整數類型,下划線,0:無下划線;1:加下划線。
            g:字符串類型,字體名稱。如:Arial,Times new Roman。
            h:字符串類型,打印文字內容。
            */
            // TSCObj.ActiveXwindowsfont (500, 200, 48, 90, 0, 0, "Arial", "\u7f16\u7801");
            TSCObj.ActiveXwindowsfont(50,50,40,0,2,0,"Arial","商品名稱:蘋果");
            // TSCObj.ActiveXwindowsfont(50,120,40,0,2,0,"Arial","商品編碼:12345678907456" );
            TSCObj.ActiveXbarcode("100","195","128","95","2","0","3","2",12345678907456); //條碼
            //var cmd = 'QRCODE 條碼X方向起始點,條碼Y方向起始點,糾錯級別,二維碼高度,A(A和M),旋轉角度,M2(分為類型1和類型2),S1 (s1-s8,默認s7),\"1231你好2421341325454353\"';
            var cmd = 'QRCODE 80,80,H,7,A,0,M2,S1,\"'+"123456789"+'\"';
            TSCObj.ActiveXsendcommand(cmd);//二維碼
            TSCObj.ActiveXprintlabel("1", "1");//(打印份數,每頁打印張數)
            TSCObj.ActiveXclearbuffer();//清除
            TSCObj.ActiveXcloseport();//關閉打印端口
        }
    </script>
</head>

<body>
    <button onclick='TestFun()'>測試</button> 
</body>

</html>

 


免責聲明!

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



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