加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C# TSC打印二维码和条形码的实现方法

发布时间:2020-12-15 05:44:31 所属栏目:百科 来源:网络整理
导读:效果图 开发、使用环境说明 安装TSC_7.3.8_M-3.exe打印机驱动,安装时选择对应的ttp 244 pro 将TSCLIB.dll复制到C:Windowssystem 驱动安装说明 选择下一步 选择安装路径,默认即可,选择下一步 选择安装打印机,选择下一步 选择其他,点击下一步 选择对应

效果图

开发、使用环境说明

安装TSC_7.3.8_M-3.exe打印机驱动,安装时选择对应的ttp 244 pro

将TSCLIB.dll复制到C:Windowssystem

驱动安装说明

选择下一步

选择安装路径,默认即可,选择下一步

选择安装打印机,选择下一步

选择其他,点击下一步

选择对应的打印机型号,点击下一步

选择USB端口,点击下一步

直接默认即可,点击下一步

驱动安装完成!

TSCLIB.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Runtime.InteropServices;
namespace WindowsFormsPrint
{
 public class TSCLIB_DLL
 {
  [DllImport("TSCLIB.dll",EntryPoint = "about")]
  public static extern int about();
  [DllImport("TSCLIB.dll",EntryPoint = "openport")]
  public static extern int openport(string printername);
  [DllImport("TSCLIB.dll",EntryPoint = "barcode")]
  public static extern int barcode(string x,string y,string type,string height,string readable,string rotation,string narrow,string wide,string code);
  [DllImport("TSCLIB.dll",EntryPoint = "clearbuffer")]
  public static extern int clearbuffer();
  [DllImport("TSCLIB.dll",EntryPoint = "closeport")]
  public static extern int closeport();
  [DllImport("TSCLIB.dll",EntryPoint = "downloadpcx")]
  public static extern int downloadpcx(string filename,string image_name);
  [DllImport("TSCLIB.dll",EntryPoint = "formfeed")]
  public static extern int formfeed();
  [DllImport("TSCLIB.dll",EntryPoint = "nobackfeed")]
  public static extern int nobackfeed();
  [DllImport("TSCLIB.dll",EntryPoint = "printerfont")]
  public static extern int printerfont(string x,string fonttype,string xmul,string ymul,string text);
  [DllImport("TSCLIB.dll",EntryPoint = "printlabel")]
  public static extern int printlabel(string set,string copy);
  [DllImport("TSCLIB.dll",EntryPoint = "sendcommand")]
  public static extern int sendcommand(string printercommand);
  [DllImport("TSCLIB.dll",EntryPoint = "setup")]
  public static extern int setup(string width,string speed,string density,string sensor,string vertical,string offset);
  [DllImport("TSCLIB.dll",EntryPoint = "windowsfont")]
  public static extern int windowsfont(int x,int y,int fontheight,int rotation,int fontstyle,int fontunderline,string szFaceName,string content);


  //打开打印机端口,并进行相关设置
  public static void openportExt()
  {
   TSCLIB_DLL.openport("TSC TTP-244 Pro");//找打打印机端口
   TSCLIB_DLL.sendcommand("SIZE 60 mm,30 mm");//设置条码大小
   TSCLIB_DLL.sendcommand("GAP 2 mm,0");//设置条码间隙
   TSCLIB_DLL.sendcommand("SPEED 4");//设置打印速度
   TSCLIB_DLL.sendcommand("DENSITY 7");//设置墨汁浓度
   TSCLIB_DLL.sendcommand("DERECTION 1");//设置相对起点
   TSCLIB_DLL.sendcommand("REFERENCE 3 mm,3 mm");//设置偏移边框
   TSCLIB_DLL.sendcommand("CLS");//清除记忆(每次打印新的条码时先清除上一次的打印记忆)
  }
  //打印在用车档案二维码
  public static void printVehicleCode(string str_hetong,string str_zhengjian,string str_name)
  {
   char space = (char)(32);
   string codeValue = str_hetong + space + str_zhengjian;
   TSCLIB_DLL.sendcommand("CLS");//需要清除上一次的打印记忆
   TSCLIB_DLL.sendcommand("QRCODE 260,20,H,7,A,M2,S7,"" + codeValue + """);
   TSCLIB_DLL.windowsfont(240,100,24,180,"黑体",str_hetong);
   TSCLIB_DLL.windowsfont(240,140,str_zhengjian);
   TSCLIB_DLL.windowsfont(240,str_name);
   TSCLIB_DLL.printlabel("1","1");
  }
  //打印财务条形码
  public static void printFinanceCode(string str_Date,string str_siteNo,string str_siteName,string str_Num,string str_Name,int count)
  {
   for (int i = 0; i < count; i++)
   {
    char Num = (char)(i + 65);
    char space = (char)(32);
    string value = str_Date + space + str_siteNo + space + str_Num + space + Num;
    string txt = str_Date + space + str_siteName + space + str_Num + space + str_Name + space + Num;
    TSCLIB_DLL.sendcommand("CLS");//需要清除上一次的打印记忆
    TSCLIB_DLL.barcode("40","50","128","160","0","2",value);
    TSCLIB_DLL.windowsfont(440,35,txt);
    TSCLIB_DLL.printlabel("1","1");
   }
  }
  //关闭打印机端口
  public static void closeportExt()
  {
   TSCLIB_DLL.closeport();
  }
 }
}

打印二维码:

private void print_Click(object sender,EventArgs e)
  {
   try
   {
    print.Enabled = false;
    base.DoWork(DoPrint);
    print.Enabled = true;
   }
   catch (Exception ex)
   {
    // FileLogHelper.WriteInfoLog(ex.ToString());
    MessageBox.Show(ex.ToString());
   }
  }
  private void DoPrint(object sender,EventArgs e)
  {
   DataGridViewSelectedRowCollection rows = ArchivesView.SelectedRows;
   if (rows.Count <= 0)
   {
    MessageBox.Show("请先选择数据项!");
    return;
   }
   TSCLIB_DLL.openportExt();
   foreach (DataGridViewRow dr in rows)
   {
    TSCLIB_DLL.printVehicleCode(dr.Cells[1].Value.ToString(),dr.Cells[2].Value.ToString(),dr.Cells[3].Value.ToString());
   }
   TSCLIB_DLL.closeportExt();
  }

C#调用dll提示"试图加载格式不正确的程序"解决方法

程序在32位操作系统上运行正常,在64位操作系统上运行读卡功能提示”试图加载格式不正确“。

程序在64位操作系统上运行正常,在64位操作系统上运行读卡功能提示”试图加载格式不正确“。

--------------------------------------------------------------------------------------------

点击项目属性,把目标平台Any CPU 设置为X86(32位操作系统)或者X64(64位操作系统)

按照上面解决方案可能会有下面的问题:

C# form继承问题 : 提示 无法加载基类 ;请确保已引用该程序集并已生成所有项目。

把 生成 - 目标平台 改成 x86或者Any CPU ,重新生成一次,Form可正常编辑。

所以新的解决方案是:选择Any CPU 把下面打勾的去掉

以上这篇C# TSC打印二维码和条形码的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读