本教程使用的打印机型号:TSC TTP-244 Plus 官方文档

一、TSC打印机安装

1.机器安装

根据官方快速安装指南安装打印机,此处不详细说明,也可以看视频教程,唯一需要注意的地方就是碳带的方向不要装错

产品说明书

打印机初始化、感测器校正方法

a) 两个手指同时按住PAUSE、FEED键,不要松手,同时开机。

b) 待三个灯轮流闪时,只松开FEED键。待走纸,可松开PAUSE键。正常出纸是出大概2-3张标签纸。

c) 按下FEED键,正常出纸为一张标签纸高度。并停在正常撕纸位置。

2.安装驱动

驱动下载

安装完驱动后,在页面设置修改下纸张大小,打印测试页。

二、程序调用

1.准备

相关文件:TSPL2指令集(中文版) dll

注册dll:新建bat文件,复制对应系统版本的命令,把下载的dll和bat命令文件放到同一目录,执行bat命令。

32位系统

set source=.

set target=%windir%\system32

echo 'Copy Files...'

copy %source%\TSCActiveX.dll %target%

copy %source%\TSCLIB.dll %target%

echo 'Regist Service'

regsvr32 %target%\TSCActiveX.dll

64位系统

set source=.

set target=%windir%\sysWOW64

echo 'Copy Files...'

copy %source%\TSCActiveX.dll %target%

copy %source%\TSCLIB.dll %target%

echo 'Regist Service'

regsvr32 %target%\TSCActiveX.dll

2.JavaScript方式调用

<script type='text/javascript' language='javascript'>

var d = new Date();

var time = d.toLocaleString();

var TSCObj;

TSCObj = new ActiveXObject("TSCActiveX.TSCLIB");//引入插件

//TSCObj.ActiveXabout();

TSCObj.ActiveXopenport ("TSC TTP-244 Plus");//打开打印机端口

TSCObj.ActiveXsetup ("99.5","70","5","8","0","2","0");//设置初始参数

//TSCObj.ActiveXformfeed();

//TSCObj.ActiveXnobackfeed();

TSCObj.ActiveXsendcommand ("SET TEAR ON");

TSCObj.ActiveXclearbuffer();

TSCObj.ActiveXwindowsfont (260, 100, 36, 0, 0, 0, "arial", "办公耗材-标签纸");//打印文本

TSCObj.ActiveXwindowsfont (450, 170, 32, 0, 0, 0, "arial", time);//打印时间

//BARCODE X,Y,”code type”,height,human readable,rotation,narrow,wide,[alignment,]”content“

TSCObj.ActiveXbarcode ("100", "300", "128", "100", "2", "0", "2", "2", "PD102011");//打印条码

TSCObj.ActiveXprintlabel ("1","1");

TSCObj.ActiveXcloseport();//关闭端口

</script>

3.C#调用

#region 调用TSC打印机打印条码

/// <summary>

/// 调用TSC打印机打印条码

/// </summary>

/// <param name="title">打印的标题</param>

/// <param name="barCode">打印的条码编号</param>

public static void TSC(string title, string barCode)

{

// 打开 打印机 端口.

TSCLIB_DLL.openport(p_port);

// 设置标签 宽度、高度 等信息.

// 宽 94mm 高 25mm

// 速度为4

// 字体浓度为8

// 使用垂直間距感測器(gap sensor)

// 两个标签之间的 间距为 3.5mm

TSCLIB_DLL.setup("94", "25", "4", "8", "0", "3.5", "0");

// 清除缓冲信息

TSCLIB_DLL.clearbuffer();

// 发送 TSPL 指令.

// 设置 打印的方向.

TSCLIB_DLL.sendcommand("DIRECTION 1");

// 打印文本信息.

// 在 (176, 16) 的坐标上

// 字体高度为34

// 旋转的角度为 0 度

// 2 表示 粗体.

// 文字没有下划线.

// 字体为 黑体.

// 打印的内容为:title

TSCLIB_DLL.windowsfont(176, 16, 34, 0, 2, 0, "宋体", title);

// 打印条码.

// 在 (176, 66) 的坐标上

// 以 Code39 的条码方式

// 条码高度 130

// 打印条码的同时,还打印条码的文本信息.

// 旋转的角度为 0 度

// 条码 宽 窄 比例因子为 7:12

// 条码内容为:barCode

TSCLIB_DLL.barcode("176", "66", "39", "130", "1", "0", "7", "12", barCode);

// 打印.

TSCLIB_DLL.printlabel("1", "1");

// 关闭 打印机 端口

TSCLIB_DLL.closeport();

}

#endregion

4.Java调用

解压文件,将jna.jar包添加到项目 下载地址  

本示例打印的是二维码,由于官方文档中没有重写打印二维码的方法,我也懒得写了,直接使用的发送命令的方式打印。

package com.zmkj.momo.admin;

import com.sun.jna.Library;

import com.sun.jna.Native;

import java.text.SimpleDateFormat;

import java.util.Date;

/**

* TSC打印机测试

*/

public class TscPrint {

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 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) {

System.setProperty("jna.encoding", "GBK");// 支持中文

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time = df.format(new Date());

String qrCode = "PD102011";

//TscLibDll.INSTANCE.about();

TscLibDll.INSTANCE.openport("TSC TTP-244 Plus");

//TscLibDll.INSTANCE.downloadpcx("C:\\UL.PCX", "UL.PCX");

TscLibDll.INSTANCE.setup("99.5","70","5","8","0","2","0");

TscLibDll.INSTANCE.clearbuffer();

//TscLibDll.INSTANCE.sendcommand("PUTPCX 550,10,\"UL.PCX\"");

String command = "QRCODE 300,250,Q,8,A,0,M2,S7,\"" + qrCode+"\""; //打印二维码的参数和内容

TscLibDll.INSTANCE.sendcommand(command); //传送指令

TscLibDll.INSTANCE.windowsfont(260, 100, 36, 0, 0, 0, "arial", "办公耗材-标签纸");

TscLibDll.INSTANCE.windowsfont(450, 150, 32, 0, 0, 0, "arial", time);

TscLibDll.INSTANCE.printlabel("1", "1");

TscLibDll.INSTANCE.closeport();

}

}

C#调用TSC条码打印机打印二维码

#region 调用TSC打印机打印

/// <summary>

/// 调用TSC打印机打印

/// </summary>

/// <param name="title">打印的标题</param>

/// <param name="barCode">打印的条码编号</param>

public static void TSC(string title, string barCode)

{

// 打开 打印机 端口.

TSCLIB_DLL.openport(p_port);

// 设置标签 宽度、高度 等信息.

// 宽 94mm 高 25mm

// 速度为4

// 字体浓度为8

// 使用垂直間距感測器(gap sensor)

// 两个标签之间的 间距为 3.5mm

TSCLIB_DLL.setup("94", "25", "4", "8", "0", "3.5", "0");

// 清除缓冲信息

TSCLIB_DLL.clearbuffer();

// 发送 TSPL 指令.

// 设置 打印的方向.

TSCLIB_DLL.sendcommand("DIRECTION 1");

#region 请求sendcommand指令,打印二维码

//功能:繪製QRCODE二維條碼

//語法:

//QRCODE X, Y, ECC Level, cell width, mode, rotation, [model, mask,]"Data string”

//參數說明

//X QRCODE條碼左上角X座標

//Y QRCODE條碼左上角Y座標

//ECC level 錯誤糾正能力等級

//L 7%

//M 15%

//Q 25%

//H 30%

//cell width 1~10

//mode 自動生成編碼/手動生成編碼

//A Auto

//M Manual

//rotation 順時針旋轉角度

//0 不旋轉

//90 順時針旋轉90度

//180 順時針旋轉180度

//270 順時針旋轉270度

//model 條碼生成樣式

//1 (預設), 原始版本

//2 擴大版本

//mask 範圍:0~8,預設7

//Data string 條碼資料內容

#endregion

string command = "QRCODE 176,8,Q,8,A,0,M2,S7,\"" + barCode + "\"";

TSCLIB_DLL.sendcommand(command);

// 打印文本信息.

// 在 (176, 8) 的坐标上

// 字体高度为34

// 旋转的角度为 0 度

// 2 表示 粗体.

// 文字没有下划线.

// 字体为 黑体.

// 打印的内容为:title

//---------------------------------根据需要再添加

//TSCLIB_DLL.windowsfont(176, 8, 34, 0, 2, 0, "宋体", title);

// 打印条码.

// 在 (176, 66) 的坐标上

// 以 Code39 的条码方式

// 条码高度 130

// 打印条码的同时,还打印条码的文本信息.

// 旋转的角度为 0 度

// 条码 宽 窄 比例因子为 7:12

// 条码内容为:barCode

//TSCLIB_DLL.barcode("176", "66", "39", "130", "1", "0", "7", "12", barCode);

// 打印.

TSCLIB_DLL.printlabel("1", "1");

// 关闭 打印机 端口

TSCLIB_DLL.closeport();

}

#endregion

C#调用TSC条码打印机打印条码

#region 调用TSC打印机打印条码

/// <summary>

/// 调用TSC打印机打印条码

/// </summary>

/// <param name="title">打印的标题</param>

/// <param name="barCode">打印的条码编号</param>

public static void TSC(string title, string barCode)

{

// 打开 打印机 端口.

TSCLIB_DLL.openport(p_port);

// 设置标签 宽度、高度 等信息.

// 宽 94mm 高 25mm

// 速度为4

// 字体浓度为8

// 使用垂直間距感測器(gap sensor)

// 两个标签之间的 间距为 3.5mm

TSCLIB_DLL.setup("94", "25", "4", "8", "0", "3.5", "0");

// 清除缓冲信息

TSCLIB_DLL.clearbuffer();

// 发送 TSPL 指令.

// 设置 打印的方向.

TSCLIB_DLL.sendcommand("DIRECTION 1");

// 打印文本信息.

// 在 (176, 16) 的坐标上

// 字体高度为34

// 旋转的角度为 0 度

// 2 表示 粗体.

// 文字没有下划线.

// 字体为 黑体.

// 打印的内容为:title

TSCLIB_DLL.windowsfont(176, 16, 34, 0, 2, 0, "宋体", title);

// 打印条码.

// 在 (176, 66) 的坐标上

// 以 Code39 的条码方式

// 条码高度 130

// 打印条码的同时,还打印条码的文本信息.

// 旋转的角度为 0 度

// 条码 宽 窄 比例因子为 7:12

// 条码内容为:barCode

TSCLIB_DLL.barcode("176", "66", "39", "130", "1", "0", "7", "12", barCode);

// 打印.

TSCLIB_DLL.printlabel("1", "1");

// 关闭 打印机 端口

TSCLIB_DLL.closeport();

}

#endregion

如果运行报错UnsatisfiedLinkError: Unable to load library “TSCLIB”...可以尝试把JDK换成32位版本。

在调用过程中有不明白的地方看TSPL2说明书,上面有详细的指令用法以及参数说明!!!

 

权昌TSC条码打印机终极使用教程与开发版本代码大全的更多相关文章

  1. TSC条码打印机C#例程(tsclib.dll调用)

    TSC条码打印机C#例程(tsclib.dll调用) //----  program.cs using System;using System.Collections.Generic;using Sy ...

  2. BI之SSAS完整实战教程2 -- 开发环境介绍及多维数据集数据源准备

    上一篇我们已经完成所有的准备工作,现在我们就开始动手,通过接下来的三篇文章创建第一个多维数据集. 传统的维度和多维数据集设计方法主要是基于现有的单源数据集. 在现实世界中,当开发商业智能应用程序时,很 ...

  3. percona-toolkit工具包的使用教程之开发类工具

    percona-toolkit工具包的使用教程之开发类工具 1.  pt-duplicate-key-checker l  功能介绍: 功能为从mysql表中找出重复的索引和外键,这个工具会将重复的索 ...

  4. ASP.NET MVC 5 学习教程:生成的代码详解

    原文 ASP.NET MVC 5 学习教程:生成的代码详解 起飞网 ASP.NET MVC 5 学习教程目录: 添加控制器 添加视图 修改视图和布局页 控制器传递数据给视图 添加模型 创建连接字符串 ...

  5. 前端测试框架Jest系列教程 -- Asynchronous(测试异步代码)

    写在前面: 在JavaScript代码中,异步运行是很常见的.当你有异步运行的代码时,Jest需要知道它测试的代码何时完成,然后才能继续进行另一个测试.Jest提供了几种方法来处理这个问题. 测试异步 ...

  6. 深度学习标注工具 LabelMe 的使用教程(Windows 版本)

    深度学习标注工具 LabelMe 的使用教程(Windows 版本) 2018-11-21 20:12:53 精灵标注助手:http://www.jinglingbiaozhu.com/ LabelM ...

  7. yii2 支付宝支付教程 [ 2.0 版本 ]

    yii2 支付宝支付教程 [ 2.0 版本 ] 支付宝支付流程个人理解大致就这三步1.前台页面将支付信息数据通过立即支付按钮 ajax提交到订单处理层2.在订单处理层引用支付宝的接口 将支付数据写入 ...

  8. Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接

      Laravel 教程 - Web 开发实战入门 ( Laravel 5.5 )购买链接: 推荐给你高品质的实战课程 https://laravel-china.org/courses?rf=158 ...

  9. Arduino可穿戴开发入门教程Arduino开发环境介绍

    Arduino可穿戴开发入门教程Arduino开发环境介绍 Arduino开发环境介绍 Arduino不像我们使用的PC端操作系统一样,可以直接在操作系统中安装软件为操作系统编程.Arduino的软件 ...

  10. iOS Sprite Kit教程之编敲代码以及Xcode的介绍

    iOS Sprite Kit教程之编敲代码以及Xcode的介绍 Xcode界面介绍 一个Xcode项目由非常多的文件组成,比如代码文件.资源文件等.Xcode会帮助开发人员对这些文件进行管理.所以,X ...

随机推荐

  1. ARC157E XXYX Binary Tree 题解

    首先,条件可以抽象为 Y 不能相连,然后: 钦定根为 Y,YX 的个数加上 \(2\): 钦定某一个叶子节点为 Y,XY 的个数加上 \(1\): 钦定某一个非叶子非根节点为 Y,YX 的个数加上 \ ...

  2. C++实现顺序栈相关操作代码

    #include<iostream>#include<cstdlib>using namespace std;#define MAXSIZE 100#define OK 1#d ...

  3. JavaSE——构造方法

    package com.zhao.test3; public class Student { private String name; private int age; //如果我们自己没有写任何的构 ...

  4. 开启MySQL数据库远程连接

    为了使其余用户/计算机能访问SQL数据库,需对SQL Server进行以下配置.有以下两种方法: 方法一:bat命令修改. 新建.txt文件,添加以下内容,保存后再修改为.bat,双击.bat文件. ...

  5. JDK-11.0.17 + Neo4j-4.4.12

    JDK安装 下载地址:https://www.oracle.com/java/technologies/javase-downloads.html 注册Oracle账户,并下载,选择路径安装,将bin ...

  6. Stream流常用API

    文档 https://www.runoob.com/java/java8-streams.html JDK8 Stream API: https://docs.oracle.com/javase/8/ ...

  7. Flink RocksDB参数调优说明

    参数名 说明 state.backend.rocksdb.block.blocksize block 的大小,默认值为4KB.在生产环境中总是会适当调大一些,一般32KB比较合适,对于机械硬盘可以再增 ...

  8. Selenium私房菜系列8 -- 玩转Selenium Server【OO】

    本篇主要是想更进一步介绍Selenium Server的工作原理,这次我们从Selenium Server的交互模式开始. 在<第一个Selenium RC测试案例>中,我们以命令&quo ...

  9. 一个因为windows系统缺失文件而导致的pyspark的BUG

    背景: 在windows 系统中开发pyspark程序. 一个简单的WC程序: from pyspark.sql import SparkSession spark = SparkSession.bu ...

  10. pl/sql导出表结构的方法步骤

    转载:pl/sql怎么导出表结构-pl/sql导出表结构的方法步骤-下载吧 (xiazaiba.com) PL/SQL Developer是一个专为Oracle数据库开发存储程序单元的集成开发环境,用 ...