最近公司做一个资产采集的项目,之前做过此类项目,不过没有整理资料,借这次机会写一下,做个记录。

本教程使用的打印机型号: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命令。

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

32位系统

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

64位系统

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>

Javascript代码

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("", "", "", "", "", "3.5", "");
// 清除缓冲信息
TSCLIB_DLL.clearbuffer();
// 发送 TSPL 指令.
// 设置 打印的方向.
TSCLIB_DLL.sendcommand("DIRECTION 1");
// 打印文本信息.
// 在 (176, 16) 的坐标上
// 字体高度为34
// 旋转的角度为 0 度
// 2 表示 粗体.
// 文字没有下划线.
// 字体为 黑体.
// 打印的内容为:title
TSCLIB_DLL.windowsfont(, , , , , , "宋体", title);
// 打印条码.
// 在 (176, 66) 的坐标上
// 以 Code39 的条码方式
// 条码高度 130
// 打印条码的同时,还打印条码的文本信息.
// 旋转的角度为 0 度
// 条码 宽 窄 比例因子为 7:12
// 条码内容为:barCode
TSCLIB_DLL.barcode("", "", "", "", "", "", "", "", barCode);
// 打印.
TSCLIB_DLL.printlabel("", "");
// 关闭 打印机 端口
TSCLIB_DLL.closeport();
}
#endregion

C#代码

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();
}
}

Java代码

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

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

参考:

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

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

TSC打印机使用教程终极版的更多相关文章

  1. 800元组装一台3D打印机全教程流程

    我最近正好要组装一台新的reprap的kossel delta型开源3d打印机,这台机器性价比非常高,具有速度快,静音,三臂并联结构,扩展性强,便宜的特点.图纸啥的都有,只是用到mega2560和ra ...

  2. 800元组装一台3D打印机全教程流程-零件清单

    继前面的教程800元组装一台3D打印机全教程流程 k800是一台根据kosselmini改进的低成本3d打印机,通过改变设计,降低了成本,但损失较少性能,取得性价比. 主要改动是:底部支架改为-> ...

  3. 终极版Servlet——我只能提示您路过别错过

    终极版Servlet 前言:这两天看了SSM框架,本来是想往后继续学的,脑门一转又回来了,不能就这么不声不响的走了,看了这么多天的Servlet,再写最后一篇做个告别吧,这篇起名为终极版,是我现在所能 ...

  4. W3Cschool菜鸟教程离线版下载链接

    请在电脑上打开以下链接进行下载w3cschool 离线版(chm):http://pan.baidu.com/s/1bniwRCV(最新,2014年10月21日更新)w3cschool 离线版(htm ...

  5. 08重编终极版《东邪西毒:终极版》DVD粤语中字

    1.东邪西毒].Ashes.of.Time.1994.384p.DVDRip.x264.ac3-DTMM.mkv 这个版本最清晰 ,可惜删减了,只有87分钟,粤语,1.4G. 2.东邪西毒(初始版). ...

  6. 零积分下载,2014年辛星mysql教程秋季版第一本已经完工,期待您的支持

    经过一段时间的不懈努力.终于,2014年辛星mysql教程秋季版的第一本,即夯实基础已经完工,在csdn的下载地址为:去下载地址 ,假设左边地址跪了,能够去http://download.csdn.n ...

  7. 阿里官方Java代码规范标准《阿里巴巴Java开发手册 终极版 v1.3.0》

    终极版 v1.3.0 2017年开春之际,阿里诚意献上重磅大礼:<阿里巴巴Java开发手册>,首次公开阿里官方Java代码规范标准.这套Java统一规范标准将有助于提高行业编码规范化水平, ...

  8. 【CC2530入门教程-增强版】基础技能综合实训案例(基础版)-上位机源码

    [CC2530入门教程-增强版]基础技能综合实训案例(基础版)-上位机源码 广东职业技术学院  欧浩源 一.需求分析 按照指定参数打开串口,与测控终端建立数据传输通道,并根据应用要求实现程序逻辑,具体 ...

  9. python3 购物车 增改查终极版~

    还是先来条NLP再说,快没了,以后想抄还没有... 十一,没有挫败,只有回应讯息 “挫败”只是指出过去的做法得不到预期的效果,是给我们需要改变的信号. “挫败”只是在事情画上句号时才能用上,欲想事情解 ...

随机推荐

  1. Natas Wargame Level 9 Writeup(bash injection)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAArAAAAClCAYAAACkwM63AAAABHNCSVQICAgIfAhkiAAAIABJREFUeF

  2. WINFORM实现进程信息的查看,listview,点击,右键,右键菜单

    1.   程序设计要求 设计程序来获取计算机中的进程信息 2.程序设计流程图 3.程序设计亮点 (0)程序启动时加载guide引导使用视频 (1)使用Listview控件显示出所有控件的名称. (2) ...

  3. 把ipad作为电脑的第二显示器

    需要:1,iPad          2,ios端需要软件idisplay(在pp助手里搜索idisplay下载即可)       3,windows需要软件iDisplay(链接http://www ...

  4. Lambda应用场景和使用实例

    Java 8已经推出一段时间了,Lambda是其中最火的主题,不仅仅是因为语法的改变,更重要的是带来了函数式编程的思想.这篇文章主要聊聊Lambda的应用场景及其相关使用示例. Java为何需要Lam ...

  5. React,关于redux的一点小见解

    最近项目做多页面应用使用到了,react + webpack + redux + antd去构建多页面的应用,本地开发用express去模拟服务端程序(个人觉得可以换成dva).所以在这里吐槽一下我自 ...

  6. coreCLR系列随笔 之ClrJit项目之alloc.cpp文件分析(1)

    首先声明,自己对CLR了解得不多,只是个人爱好,可能有错误,请指出,文件源码如下(可能不是最新的) // // Copyright (c) Microsoft. All rights reserved ...

  7. Java IO流之转换流

    一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...

  8. 基于谱聚类的三维网格分割算法(Spectral Clustering)

    谱聚类(Spectral Clustering)是一种广泛使用的数据聚类算法,[Liu et al. 2004]基于谱聚类算法首次提出了一种三维网格分割方法.该方法首先构建一个相似矩阵用于记录网格上相 ...

  9. C# 委托的理解

    1.什么是委托 委托可以理解为持有一个或多个方法的对象.如果执行委托的话,委托会 执行它所"持有"的方法.委托可以避免程序中大量使用if-else语句,使 程序拥有更好的扩展性. ...

  10. 在ROS中使用花生壳的域名服务

    ROS功能强大,也比较复杂,各个版本的脚本可能也大同小异,我现在使用的是6.37.3的版本. 添加Script 进入菜单System->Scripts. 点击加号,像图中这样,添加代码,我给这段 ...