C# TSC打印二维码和条形码的实现方法
效果图 开发、使用环境说明 安装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打印二维码和条形码的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |