本教程使用的打印机型号: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. tcl编程

    目录 0. 基础语法 0.1 普通变量 0.2 list, 列表 0.3 array, 数组 0.4 循环 0.4.1 for 0.4.2 foreach 1. 从命令行获取参数(好像并不是很强大) ...

  2. Ubuntu系统添加新的普通用户

    1.创建一个新的普通用户 创建了可以登录的yang用户并使用/bin/bash作为shell. 设置密码. 为yang用户增加管理员权限. 切换登录用户为yang. sudo useradd -m y ...

  3. css节流

    众所周知,函数节流(throttle)是 JS 中一个非常常见的优化手段,可以有效避免函数过于频繁的执行. 举个例子:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,比如 ...

  4. 如何在Axure RP 8.0 中打开页面指定的动态面板

    有时在制作原型的时候,需要打开另一个页面指定的动态面板,研究了一下分享给大家 方法/步骤 1.打开Axure RP 8.0,在index面面中拖出来一个按钮,写上文字"打开page1/sta ...

  5. Docker部署netdata 性能实时监控

    netdata 是常用的Linux系统性能实时监控面板 netdata 官方文档 https://learn.netdata.cloud/ 1.Docker 镜像下载地址 https://hub.do ...

  6. SSM框架实现附带信息的文件上传&下载

    SSM框架实现附带信息的文件上传&下载 目录 目录 SSM框架实现附带信息的文件上传&下载 目录 技术概述 技术详述 技术使用中遇到的问题和解决过程 总结 参考链接 技术概述 ​ 在进 ...

  7. python打包生成exe报错

    如图所示    如果出现的是这个问题可以可以考虑以下方法 首先卸载原先下载的 Pyinstaller pip uninstall pyinstaller 再执行以下代码,去github上下载 pip ...

  8. [转]md Typora旧版免费安装包(多平台版本)

    typora旧版免费安装包: 链接:https://pan.baidu.com/s/1pIqeO2nTJ9_s16IZj6z3sA?pwd=gut4 提取码:gut4 v1.0以上的版本都要收费了,我 ...

  9. 无锡哲讯谈饲料加工行业ERP的功能

    我国饲料生产与国际先进水平很接近,也是专业化水平较高的行业.随着社会分工的进一步明确,饲料产品的专业化配送将是未来发展的方向.在一些发达国家,专业化的散装配料车已经普遍应用,我国虽然也有这种形式,但是 ...

  10. (未完成)JAVAWEB学习——

    一.Servlet开发 1.sun公司提供的一种动态web资源开发技术,本质上就要是一段Java小程序,可以将Servlet加入到容器中运行Servlet. *servlet容器 -- 能够运行ser ...