Java调用TSC条码打印机接口打印条码和二维码

公司新买了一台TSC条码打印机,型号:TSC TTP-244 PRO,让和现有资产管理系统对接,可以根据系统上的编码直接打印。

研究了几天,终于调试出来了,下边是代码,,目测可用:


java后台调试代码(连接好打印机后可直接打印,用于直接调试):

import java.io.UnsupportedEncodingException;

import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.Native;

public class TscMain {
    public interface TscLibDll extends StdCallLibrary {
        TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary("TSCLIB", TscLibDll.class);
        int about();
        int openport(String pirnterName);
        int closeport();
        int sendcommand(String printerCommand);
        int setup(String width, String height, String speed, String density, String sensor, String vertical, String offset);
        int downloadpcx(String filename, String image_name);
        int barcode(String x, String y, String type, String height, String readable, String rotation, String narrow, String wide, String code);
        int printerfont(String x, String y, String fonttype, String rotation, String xmul, String ymul, String text);
        int clearbuffer();
        int printlabel(String set, String copy);
        int formfeed();
        int nobackfeed();
        int windowsfont(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);
    }

    public static void main(String[] args) throws UnsupportedEncodingException {
        System.setProperty("jna.encoding", "GBK");// 支持中文
        // TscLibDll.INSTANCE.about();
        TscLibDll.INSTANCE.openport("TSC TTP-244 Pro");
        // TscLibDll.INSTANCE.downloadpcx("C:\\UL.PCX", "UL.PCX");// 打印图片时需要先下载到设备
        // TscLibDll.INSTANCE.sendcommand("REM ***** This is a test by JAVA. *****");
        TscLibDll.INSTANCE.setup("60", "40", "5", "15", "0", "2", "0");
        TscLibDll.INSTANCE.sendcommand("SET TEAR ON");
        TscLibDll.INSTANCE.clearbuffer();
        String command = "QRCODE 300,70,L,6,A,0,M2,S3,\"123456\"";// 打印二维码
        TscLibDll.INSTANCE.sendcommand(command);
        // TscLibDll.INSTANCE.sendcommand("PUTPCX 550,10,\"UL.PCX\"");// 图片位置
        // TscLibDll.INSTANCE.printerfont("100", "50", "TSS24.BF2", "0", "1", "1", "Technology");
        TscLibDll.INSTANCE.barcode("70", "140", "128", "90", "0", "0", "2", "2", "A123456789");// 打印内容,参数是位置和字体
        TscLibDll.INSTANCE.windowsfont(15, 15, 40, 0, 2, 1, "Arial", "网络科技公司");
        TscLibDll.INSTANCE.windowsfont(30, 90, 32, 0, 2, 0, "Arial", "--- 研发部");
        TscLibDll.INSTANCE.windowsfont(120, 240, 32, 0, 2, 0, "Arial", "A123456789");
        TscLibDll.INSTANCE.printlabel("1", "1");
        TscLibDll.INSTANCE.closeport();
    }
}


如何能够在线操作打印机呢?还想传递参数,同时打印条码和二维码?这里有两个解决方案。

1、使用java applet,再通过java后台调用dll打印。(此方法实现较复杂,有兴趣的可以到http://www.xinac.com/front/article/4253.html查看)

2、直接在页面上使用JS打印二维码。

        

- 注意:只能用IE下打印,使用前必须先注册驱动;如果不能打印,试试把安全选项全部启动。

- 以上代码本地已调试成功,有需要的请留言。

- Java后台直接生成二维码请参见另一篇文章。



打印出来大概是这样子:

Java调用TSC条码打印机接口打印条码和二维码_第1张图片


-- 2017.01.04更新:增加一些注释和解决方案

-- 2017.12.19更新:增加JS打印条码的方法


附件:http://www.xinac.com/front/article/4253.html




你可能感兴趣的:(Java)