首页 > 编程语言 >Java调用标签打印机打印标签

Java调用标签打印机打印标签

时间:2023-03-22 15:55:52浏览次数:46  
标签:打印机 Java String int 标签 INSTANCE TscLibDll byte sendcommand

标签打印机:TSC  TTP-244 Pro

打印机驱动:file:///C:/Users/admin/Downloads/tsc_2022.1_m-2.exe_1.zip

官方文档预览下载: https://fs.chinatsc.cn/system/files/tspl_tspl2_programming_2018_5_17_scjiantizhongwen.pdf

官方给出的参考案例:file:///C:/Users/admin/Downloads/tsc_java-example.zip

 官方资料下载地址:https://www.chinatsc.cn/zh-CN/downloads

官方案例

package com.tscsdk;


import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;

import com.sun.jna.Library;
import com.sun.jna.Native;
public class JavaTest 
{

    public interface TscLibDll extends Library
    {		
		TscLibDll INSTANCE = (TscLibDll) Native.loadLibrary("\\TSCLIB", TscLibDll.class);
        int about ();
        int openport (String pirnterName);
        int closeport ();
        int sendcommand (String printerCommand);
        int sendBinaryData (byte[] printerCommand, int CommandLength);
        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 windowsfont (int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, String content);
        int windowsfontUnicode(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, byte[] content);
        int windowsfontUnicodeLengh(int x, int y, int fontheight, int rotation, int fontstyle, int fontunderline, String szFaceName, byte[] content, int length);
        byte usbportqueryprinter();
        
    }
    // 使用
    public static void main(String[] args)
    {

        String WT1 = "TSC Printers";
        String B1 = "20080101";

    	//unicode format
    	byte[] result_unicode = new byte[1024];
    	String word_unicode = "简体中文测试123123繁體測試";
    	result_unicode = word_unicode.getBytes(StandardCharsets.UTF_16LE);

    	//utf-8 format
    	byte[] result_utf8 = new byte[1024];
    	String word_utf8 = "TEXT 40,620,\"ARIAL.TTF\",0,12,12,\"utf8 test Wörter auf Deutsch\"";
    	result_utf8 = word_utf8.getBytes(StandardCharsets.UTF_8);

    	
        //TSCLIB_DLL.about();
        byte status = TscLibDll.INSTANCE.usbportqueryprinter();//0 = idle, 1 = head open, 16 = pause, following <ESC>!? command of TSPL manual
        TscLibDll.INSTANCE.openport("TSC TE210");
        TscLibDll.INSTANCE.sendcommand("SIZE 100 mm, 120 mm");
        TscLibDll.INSTANCE.sendcommand("SPEED 4");
        TscLibDll.INSTANCE.sendcommand("DENSITY 12");
        TscLibDll.INSTANCE.sendcommand("DIRECTION 1");
        TscLibDll.INSTANCE.sendcommand("SET TEAR ON");
        TscLibDll.INSTANCE.sendcommand("CODEPAGE UTF-8");
        TscLibDll.INSTANCE.clearbuffer();
        TscLibDll.INSTANCE.downloadpcx("\\UL.PCX", "UL.PCX");
        TscLibDll.INSTANCE.windowsfont(40, 490, 48, 0, 0, 0, "Arial", "Windows Font Test");
        TscLibDll.INSTANCE.windowsfontUnicodeLengh(40, 550, 48, 0, 0, 0, "Arial", result_unicode,word_unicode.length());
        TscLibDll.INSTANCE.sendcommand("PUTPCX 40,40,\"UL.PCX\"");
        TscLibDll.INSTANCE.sendBinaryData(result_utf8, result_utf8.length);
        TscLibDll.INSTANCE.barcode("40", "300", "128", "80", "1", "0", "2", "2", B1);
        TscLibDll.INSTANCE.printerfont("40", "440", "0", "0", "15", "15", WT1);
        TscLibDll.INSTANCE.printlabel("1", "1");
        TscLibDll.INSTANCE.closeport();
    	
    }

}

  

使用案例

1、连续打印条码,条码流水号递增

public static void demo() {
        // 支持中文
        System.setProperty("jna.encoding","GBK");
        TscLibDll.INSTANCE.openport(printInfo.getName());
        TscLibDll.INSTANCE.clearbuffer();
        TscLibDll.INSTANCE.sendcommand("SIZE 70mm,70mm");
        TscLibDll.INSTANCE.sendcommand("GAP 3mm, 0mmn");
        TscLibDll.INSTANCE.sendcommand("DIRECTION 1");
        // 打印机有61个计数器(@0 ~ @60),使用@1计数器,每次递增 1
        TscLibDll.INSTANCE.sendcommand("SET COUNTER @1 1");
        TscLibDll.INSTANCE.sendcommand("@1 =\"01-XT01-2303220001\"");
        TscLibDll.INSTANCE.sendcommand("CLS");
        TscLibDll.INSTANCE.sendcommand("BARCODE 100,50,\"128\",100,1,0,2,2,@1");
        TscLibDll.INSTANCE.sendcommand("PRINT 1,5);
        TscLibDll.INSTANCE.closeport();
} 

打印结果

01-XT01-2303220001

01-XT01-2303220002

01-XT01-2303220003

01-XT01-2303220004

01-XT01-2303220005

2、打印二维码

TscLibDll.INSTANCE.sendcommand("QRCODE 10,10,H,4,A,0,\"ABCabc123\"");

  

标签:打印机,Java,String,int,标签,INSTANCE,TscLibDll,byte,sendcommand
From: https://www.cnblogs.com/shycnblogs/p/17243454.html

相关文章

  • elasticsearch RESTful搜索引擎-(java jest 使用[入门])
     elasticsearch简称ESjest好吧下面我介绍下jest(第三方工具)它是ES的java客户端,基于httprestful...jest是开源的 首先看看项目的目录结构我一般习惯了用maven去管理我的......
  • Could not read JSON: Can not deserialize instance of java.lang.Integer out of ST
    Spring会将{id:id}这个json转换成Map对象,只要将@requestBody中的参数改成Map就可以了,如下@RequestMapping(value="/delete",method=RequestMethod.POST,produces="applicat......
  • rapid-framework(java web快速开发脚手架,代码生成器)
    web项目脚手架rapid-framework是一个以spring为核心的项目脚手架(或者称为胶水框架),框架将各个零散的框架(struts,strust2,springmvc,hibernate,ibatis,spring_jdbc,flex)搭......
  • java中数组删除
    ListcommonList=newArrayList(); if(commonList.size()>3)//如果数组个数大于3个,则删掉后面的,只剩余前三个{for(inti=3;i<commonList.size();i......
  • java 微信支付v3 —7.微信支付之申请退款
    正文不得不说,申请退款和创建订单是非常相似的,流程都一样,只是请求的数据变了,那么我们第一步就是封装请求数据成对象形式,方便后续调用。1.申请退款请求对象微信支付订单......
  • JAVA~适合新手和复习~基础三(集合所有常用方法)
    Java集合框架  1Set和List的区别21.Set接口实例存储的是无序的,不重复的数据。List接口实例存储的是有序的,可以重复的元素。342.Set检索效率低下,删除和......
  • HTML的语言规范_基本结构标签和vscode设置
    一.语法规范1.1基本语法概述HTML标签是由尖括号包围的关键词,列如<html>HTML标签通常是成对出现的,列如<html></html>,这种称之为双标签,标签中的第一个标签是开始标签......
  • java 微信支付v3 —5.微信支付成功回调
    正文同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已......
  • java 微信支付v3 —6.微信支付查询订单API
    正文什么时候会用到这个API?常规情况下,回调接口已经足够我们使用,用户支付成功后,微信会自动调用我们的回调接口进行回调,那么还需要这个API吗?使用场景:微信服务器故障,我们的服......
  • java 微信支付v3 —3.订单创建准备操作
    正文微信支付的下单操作分为了5种,分别是JSAPI、APP、H5以及Native支付及小程序支付,之所以将支付放在单独一个章节,而不是按照支付类型划分一个章节,是因为支付所传递的数据都......