C# Winform 使用 BarTender打印条码
- 1. 使用软件BarTender 设计打印模板
贴一个入门级使用教程:https://blog.csdn.net/ononeway/article/details/119912602
我在项目中使用的是txt文本格式保存的字段以及数据,第一行是绑定数据的字段,第二行是字段对应的数据。
点击查看代码
"ITEM_CODE","ITEM_DESC","UOM_NAME","VENDOR_CODE","VENDOR_NAME","ORG_CODE","ORG_NAME","LOT_NUMBER","SERIAL_NO","DISABLE_DATE","SHIP_DATE","QTY","CARTON_CODE","ATTRIBUTE1","ATTRIBUTE2","ATTRIBUTE3","ATTRIBUTE4","ATTRIBUTE5","ATTRIBUTE6","ATTRIBUTE7","ATTRIBUTE8","ATTRIBUTE9","BarCode"
"","","","","","","","","","","","0","","15L方便桶","202308150009","15L","500","2273","C202104150001","成品条码"," xxxxxx3号","13983135628",""
这是完成模板效果图:

右键属性选择绑定数据的字段,以及设置文本的格式。

- 2. Winfrom集成打印
- 1.第一步:需要将绑定数据的字段输出到文本中保存下来
MODEL_NAME:文本模板的名称
BarCodeList:打印数据的集合,支持多个打印
PrintReNum:打印份数
下面代码的整体思路就是,先输出字段在文本中,然后再换行将数据输出到文本中。
点击查看代码
private int PrintToTxt(string MODEL_NAME, List<ZR.Model.BarTender.BarCodePram> BarCodeList, int PrintReNum)
{
if (PrintReNum <= 0) return -1;
string FilePath = AppDomain.CurrentDomain.BaseDirectory.Replace("bin", @"Report\BarCode") + "$" + MODEL_NAME + ".txt";
StringBuilder sb = new StringBuilder();
Type t = typeof(ZR.Model.BarTender.BarCodePram);
PropertyInfo[] myPropertyInfo = t.GetProperties();
string Colums = string.Empty;
for (int i = 0; i < myPropertyInfo.Length; i++)
{
if (i == myPropertyInfo.Length - 1)
{
Colums += "\"" + myPropertyInfo[i].Name + "\"";
}
else
{
Colums += "\"" + myPropertyInfo[i].Name + "\",";
}
}
sb.AppendLine(Colums);
foreach (ZR.Model.BarTender.BarCodePram pram in BarCodeList)
{
string row = string.Empty;
for (int i = 0; i < myPropertyInfo.Length; i++)
{
if (i == myPropertyInfo.Length - 1)
{
row += "\"" + myPropertyInfo[i].GetValue(pram, null) + "\"";
}
else
{
row += "\"" + myPropertyInfo[i].GetValue(pram, null) + "\",";
}
}
for (int j = 0; j < PrintReNum; j++)
{
sb.AppendLine(row);
}
}
int ret = SaveToTxt(sb, FilePath);
return ret;
}
- 2.第二步:调用打印方法打印
btFormat.PrintOut(false, true); //第二个false设置打印时是否跳出打印属性
点击查看代码
public void Print(string PrintName, int PrintCount = 1, int PrintNum = 1)
{
try
{
if (btApp == null)
{
btApp = new BarTender.Application();
}
btFormat = btApp.Formats.Open(ReportPath + PrintName, false, "");
btFormat.InputDataFileSetup.TextFile.FileName = (ReportPath + "$" + PrintName + ".txt");
btFormat.PrintSetup.UseDatabase = true;
btFormat.PrintSetup.IdenticalCopiesOfLabel = PrintCount; //设置同序列打印的份数
btFormat.PrintSetup.NumberSerializedLabels = PrintNum; //设置需要打印的序列数
if (btFormat.PrintSetup.UseDatabase)
{
btFormat.RecordRange = "1...";
}
//BarTenderSetParms(btFormat, Parms);
int A = btFormat.PrintOut(false, true); //第二个false设置打印时是否跳出打印属性
btFormat.Close(BarTender.BtSaveOptions.btDoNotSaveChanges); //退出时是否保存标签
#region 处理打印无效果的问题
Process p = new Process();
p.StartInfo.FileName = "bartend.exe";
//列印btw檔案並最小化程序
p.StartInfo.Arguments = $@"/AF={ReportPath + PrintName} /P /min=SystemTray";
p.EnableRaisingEvents = true;
int pageCount = Convert.ToInt32(PrintCount);
for (int i = 0; i < pageCount; i++)
{
p.Start();
}
#endregion
}
点击打印之后弹出打印框点击打印即可

如果是打印的虚拟打印机上面会提示出入名称

- 3.最终效果

测试Demo地址: https://github.com/IMLYQ/BartenderTest
C# Winform 使用 BarTender打印条码的更多相关文章
- C# WinForm程序打印条码 Code39码1
做WinForm程序需要打印条码,为了偷懒不想自己写生成条码的程序在网上下载一个标准的39码的字体,在程序里面换上这个条码字体即可打印条码了. 最重要的一点作为记录: 如果想把“123456789”转 ...
- C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)
从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印. ...
- winform 打印条码
一个winform打印功能的示例 操作步骤:1.新建winform项目及创建窗体2.拖取 打印 相关控件 PageSetupDialog . PrintDialog . PrintDocument . ...
- C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)(转)
C#打印条码BarTender SDK打印之路和离开之路(web平凡之路) 从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进 ...
- C# 通过Bartender模板打印条码,二维码, 文字, 及操作RFID标签等。
1.在之前写的一篇文章中, 有讲到如何利用ZPL命令去操作打印里, 后面发现通过模板的方式会更加方便快捷, 既不用去掌握ZPL的实现细节, 就可以轻松的调用实现打印的功能. 解决方案: 1.网络下载 ...
- BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签
注: 由于工作需要, 也是第一次接触到打印机的相关内容, 凑巧, 通过找了很多资料和帮助后, 也顺利的解决了打印标签的问题 (标签的表面信息[二维码,条形码, 文字] 和 RFID标签的EPC写 ...
- Navi.Soft30.框架.WinForm.开发手册
阅读导航 Navi.Soft30.Core类库.开发手册 http://www.cnblogs.com/xiyang1011/p/5709489.html Navi.Soft30.框架.WinForm ...
- BarTender破解问题
要使用BarTender 10.0的.net组件打印条码,就必须使用企业版的.在破解说明中会指出,BarTender破解过程要断开internet连接.在企业应用开发中,可能会遇到在局域网中给多个机器 ...
- BarTender打印出来的条码与设计的不同如何处理
今日有用户在使用BarTender设计打印条码时发现自己设计出来的条码与打印显示的条码有不一样的地方,也就是BarTender模板上的条码有显示警戒栏,但打印的条码警戒栏却没了,这一问题要如何解决呢? ...
- 在浏览器中通过bartender,调用条码打印机的active控件代码的实现
系统中须要在浏览器,直接调用条码打印机,打印出产品条码. 现实中的条码打印机,品种繁多,非常难在一个程序中实现, 于是我们用已经支持全部条码打印机的bartender软件 调用它的api ,来实如今浏 ...
随机推荐
- Excel插件之连接数据数据库秒数处理,办公轻松化
接上文,对excel连接数据库需求的进一步优化: Excel 更改数据同步更新到Mysql数据库 1.通过mysql for excel 插件的思路,了解到一个新的插件 sqlcel,通过这个插件ex ...
- React中的Ref
React中ref是一个对象,它有一个current属性,可以对这个属性进行操作,用于获取DOM元素和保存变化的值.什么是保存变化的值?就是在组件中,你想保存与组件渲染无关的值,就是JSX中用不到的或 ...
- 韦东山freeRTOS系列教程之【第七章】互斥量(mutex)
目录 系列教程总目录 概述 7.1 互斥量的使用场合 7.2 互斥量函数 7.2.1 创建 7.2.2 其他函数 7.3 示例15: 互斥量基本使用 7.4 示例16: 谁上锁就由谁解锁? 7.5 示 ...
- Mac mysql 5.7启动报错,解决之道 The server quit without updating PID file
导读 晚上捣鼓数据库的时候,将mysql服务停止下,然后就死活启动不起来,这下可把我急坏了,自己数据库上有好多自己的个人项目,错误信息如下 ERROR! The server quit without ...
- [oeasy]python021_赛博宝剑铭文大赏_宝剑上的铭文_特殊符号和宝物
继续运行 回忆上次内容 上次修改了 程序 将 石中剑 变成了 红色 爱之大剑 添加图片注释,不超过 140 字(可选) 可以 让宝剑 具有 更多 铭文符号 和 颜色 吗? 铭文 亚 ...
- Docker 使用Docker创建MySQL容器
使用Docker创建MySQL容器 实践环境 Docker version 20.10.5 MySQL5.7 Centos 7.8 创建步骤 1.拉取MySQL镜像 docker pull mysql ...
- Django model 层之Making Query总结
Django model 层之Making Query总结 by:授客 QQ:1033553122 实践环境 Python版本:python-3.4.0.amd64 下载地址:https://www. ...
- MySQL 递归查询实践总结
MySQL复杂查询使用实例 By:授客 QQ:1033553122 表结构设计 SELECT id, `name`, parent_id FROM `tb_testcase_suite` 说明: ...
- 【ue源码】定制-蓝图部分
今天在更新UE的伤害系统的时候出现了一个问题: 多个地方频繁调用一个函数,而这个函数肯定做优化,具体就是,把对应数据放入到队列,另外一个地方慢慢消费这个队列, 那么问题出现了,我使用的UE只有Sing ...
- Cloudflare教程:如何注册账户、购买域名、开启免费CDN服务?
Cloudflare介绍 什么是Cloudflare Cloudflare是一家总部位于旧金山的美国跨国科技企业,以向客户提供基于反向代理的内容分发网络(CDN)及分布式域名解析服务为主要业务. 目前 ...