c#使用斑马打印机打印标签(链接数据库)

您所在的位置:网站首页 斑马888tt打印机设置 c#使用斑马打印机打印标签(链接数据库)

c#使用斑马打印机打印标签(链接数据库)

2023-06-01 11:31| 来源: 网络整理| 查看: 265

使用软件:1.系统 win10

                  2.打印机 斑马ZT411工业打印机(要装驱动否则电脑识别不了)

                  3.Visual Studio 2019

                  4.Sql server2012

                  5.BarTender 2016

目录

                    1.创建要连接的数据库表                              2.创建打印模板                     3.模板绑定数据源(数据库字段)                     4.编写代码实现功能         1.创建一个数据库表

1.字段如下

2.表名如下

        2.创建打印模板

1.打开bartender创建空白模板,选择对应的斑马打印机(如果没有就是没装驱动或者没连接上,检查电源,网线,usb接口)

2.添加文本和二维码

3.保存至d盘目录下,重命名"SSR"

         3.绑定数据源

1.打开模板,右键这四个文本中的一个点击属性,点击如下图标红更改数据源

2.选择数据库字段后点击完成

3.点击数据库设置

4.选择创建新数据库的连接,完成后点击下一步

5.我这里用的是sql server,其他数据库也可以,选择对应的数据后点击下一步

6.选择数据库连接信息,我这里用的是windows身份验证,也可以用账户密码登录能连接上就行,下面数据库名选择刚刚创建表的数据库名

7.指定sql语句选择自定义sql语句

8.写入查询sql语句包含标签所需要的四个文本

sql如下,说下原理,调用时新增一条数据,然后模板索引最新的数据导入模板

select top 1 data1,data2,data3,data4 from labelprint order by ID desc

9. 如下图选择对应的字段,四项操作一样选择要对应的字段

        5.编写代码实现功能

1.创建一个类PrintBegin来触发打印

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace barTenderDriver { public class PrintBegin { public void writeBATFile(String bartenderpath,String labelpath) { string fileContent = "@echo off"+"\r\n"+ "start \"\" \""+ bartenderpath+ "\" /F=\""+labelpath+ "\" /P /X /MIN"+"\r\n"+ "pause"; //创建文件夹 if (!Directory.Exists("D:\\PrintBegin")) { Directory.CreateDirectory("D:\\PrintBegin"); } string filePath = "D:\\PrintBegin\\testChange.bat"; //创建或覆盖.bat文件 if (!File.Exists(filePath)) { FileStream fs1 = new FileStream(filePath, FileMode.Create, FileAccess.Write);//创建写入文件 StreamWriter sw = new StreamWriter(fs1); sw.WriteLine(fileContent);//开始写入值 sw.Close(); fs1.Close(); } else { FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Write); StreamWriter sr = new StreamWriter(fs); sr.WriteLine(fileContent);//开始写入值 sr.Close(); fs.Close(); } PrintLabelFromModel(); } public bool PrintLabelFromModel() { bool state = true; int Delaytime = 2000; String Path1 = "D:\\PrintBegin\\testChange.bat"; try { System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(Path1); psi.RedirectStandardOutput = true; psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; psi.UseShellExecute = false; psi.CreateNoWindow = true; System.Diagnostics.Process listFiles; listFiles = System.Diagnostics.Process.Start(psi); System.IO.StreamReader myOutput = listFiles.StandardOutput; bool res = listFiles.WaitForExit(Delaytime); if (res) { do { string ss = myOutput.ReadLine(); Console.WriteLine(ss); if (ss.Contains("Error")) { state = false; } if (ss.Contains("按任意键继续")) { break; } } while (true); } else { state = false; } if (!state) { return state; } } catch (Exception e) { throw e; } return state; } } }

2.创建winform

 3.代码

using System; using System.Windows.Forms; namespace barTenderDriver { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //批处理文件触发接口 PrintBegin begin = new PrintBegin(); //数据库接口 DBbase db = new DBbase(); private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { //每次使用时添加新数据到数据库 db.NonQuery("insert into labelprint(data1,data2,data3,data4) values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "')"); //批处理文件路径 begin.writeBATFile(textBox5.Text, textBox6.Text); } private void button2_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false;//是否可以选择多个文件 dialog.Title = "请选择文件"; dialog.Filter = "所有文件(*.*)|*.*";//选择某种类型的文件 //dialog.Filter = "图像文件(*.BMP,*.PNG,*.JPG)|*.BMP;*.PNG;*.JPG";|后面的为滤波器,文件类型;|前面的为注释 if (dialog.ShowDialog() == DialogResult.OK) { string filename = dialog.FileName; textBox5.Text = filename; } } private void button3_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Multiselect = false;//是否可以选择多个文件 dialog.Title = "请选择文件"; dialog.Filter = "所有文件(*.*)|*.*";//选择某种类型的文件 if (dialog.ShowDialog() == DialogResult.OK) { string filename = dialog.FileName; textBox6.Text = filename; } } } }

4.效果如下

 感谢观看(O.o)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3