TSC标签打印机传统的调用方法是利用 TSCLIB.DLL这个文件进行打印。这个DLL文件是C++写的,在.NET环境中只能通过声明DLL函数的方法进行调用。最近在查询TSC官网的时候才现TSC发布了.NET环境下用的DLL文件,可以直接在项目中通过引用的方式实现调用。这个文件比TSCLIB.DLL的优势在于自带处理各种字符集的方法,不用打印时各种转码。而且打印图片也更简单(没有测试)。
DLL文件下载地址为:https://www.chinatsc.cn/SC/support/support_download/TX200_Series/DLL--_SDK 打开页面后选择[软件开发工具包]-[DLL/SDK]-[Windows Framework DLL (32 bit & 64 bit)]
但是官网上没有调用方法的范例,也没有相关的文档,只有一个光秃秃的DLL文件。这里真要吐槽一下TSC的文档,其本上都是10年前写的,产品更新文档却不更新。自己摸索了一下,实现了一个打印二维码,解决了直接调用TSCLIB.DLL时,二维码内容含中文时扫出来有乱码的问题。
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Runtime.CompilerServices; using System.Text; using System.Threading; using System.Threading.Tasks; using log4net; using TSCSDK; namespace CBSP { public class PrintHelpter { public static void PrintTest(dynamic bundle) { TSCSDK.driver usbprint = new driver(); if (usbprint.openport(PRINT_NAME)) { int w= bundle.w; int h=bundle.h; int g=bundle.g; float l = bundle.l; float t = bundle.t; usbprint.clearbuffer(); // 纸回拉指定长度 //TSC_DLL.sendcommand("BACKFEED 60"); //二维码 //需要清除上一次的打印记忆 usbprint.sendcommand("CLS"); usbprint.setup(w.ToString(), h.ToString(), "4", "15", "0", g.ToString(), "0"); string command = "QRCODE " + (int)(5) + "," + (int)(5) + ",H,8,A,0,M2,\"" + "p这是一段中文" + "\""; //System.Windows.Forms.MessageBox.Show(status); usbprint.sendcommand_utf8(command); usbprint.printlabel("1", "1"); usbprint.closeport(); } } } }