导航

c# .net 调用TSC打印机

Posted on 2021-07-07 14:52  displaynick  阅读(1884)  评论(0编辑  收藏  举报

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