- 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打印条码的更多相关文章

  1. C# WinForm程序打印条码 Code39码1

    做WinForm程序需要打印条码,为了偷懒不想自己写生成条码的程序在网上下载一个标准的39码的字体,在程序里面换上这个条码字体即可打印条码了. 最重要的一点作为记录: 如果想把“123456789”转 ...

  2. C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)

    从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进正题. 需求:取数据库里的相应的字段数据,并生成条形码,可以批量.单条打印. ...

  3. winform 打印条码

    一个winform打印功能的示例 操作步骤:1.新建winform项目及创建窗体2.拖取 打印 相关控件 PageSetupDialog . PrintDialog . PrintDocument . ...

  4. C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)(转)

    C#打印条码BarTender SDK打印之路和离开之路(web平凡之路) 从来没想过自己会写一篇博客,鉴于这次从未知的探索到一个个难点的攻破再到顺利打印,很想记录这些点滴,让后人少走弯路. 下面走进 ...

  5. C# 通过Bartender模板打印条码,二维码, 文字, 及操作RFID标签等。

    1.在之前写的一篇文章中, 有讲到如何利用ZPL命令去操作打印里,  后面发现通过模板的方式会更加方便快捷, 既不用去掌握ZPL的实现细节, 就可以轻松的调用实现打印的功能. 解决方案: 1.网络下载 ...

  6. BarTender 通过ZPL命令操作打印机打印条码, 操作RFID标签

    注:    由于工作需要, 也是第一次接触到打印机的相关内容, 凑巧, 通过找了很多资料和帮助后, 也顺利的解决了打印标签的问题 (标签的表面信息[二维码,条形码, 文字] 和 RFID标签的EPC写 ...

  7. Navi.Soft30.框架.WinForm.开发手册

    阅读导航 Navi.Soft30.Core类库.开发手册 http://www.cnblogs.com/xiyang1011/p/5709489.html Navi.Soft30.框架.WinForm ...

  8. BarTender破解问题

    要使用BarTender 10.0的.net组件打印条码,就必须使用企业版的.在破解说明中会指出,BarTender破解过程要断开internet连接.在企业应用开发中,可能会遇到在局域网中给多个机器 ...

  9. BarTender打印出来的条码与设计的不同如何处理

    今日有用户在使用BarTender设计打印条码时发现自己设计出来的条码与打印显示的条码有不一样的地方,也就是BarTender模板上的条码有显示警戒栏,但打印的条码警戒栏却没了,这一问题要如何解决呢? ...

  10. 在浏览器中通过bartender,调用条码打印机的active控件代码的实现

    系统中须要在浏览器,直接调用条码打印机,打印出产品条码. 现实中的条码打印机,品种繁多,非常难在一个程序中实现, 于是我们用已经支持全部条码打印机的bartender软件 调用它的api ,来实如今浏 ...

随机推荐

  1. STM32 CubeMX 学习:有关说明

    背景 STM32 是我以前学过的,而很久没有整理过的.因为之前学习的时间比较早,再加上各种资料要么不成熟,要么不齐全:再加上自己一开始没有比较完善的学习经验:以至于我的学习并不扎实. 趁着 STM 的 ...

  2. Ubuntu下的NVIDIA显卡【安装与卸载、CUDA安装】

    @ 目录 0. 显卡GPU的基础知识 1. 显卡安装 Optional: 卸载显卡(当你要换显卡的时候) 2. 安装CUDA 碎碎念:主要是把显卡相关的整合出来,基础知识后面再放上来 显卡安装后可以有 ...

  3. python学习_PIL的Image模块初步使用

    基本介绍: Pillow 是 Python 中较为基础的图像处理库,主要用于图像的基本处理,比如裁剪图像.调整图像大小和图像颜色处理等.与 Pillow 相比,OpenCV 和 Scikit-imag ...

  4. yb课堂 视频详情页模块开发《三十八》

    CourseDetail基础模块开发 CourseDetail模块开发,拆分组件 CourseDetail.vue Header.vue Course.vue Tab.vue Summary.vue ...

  5. C#皮肤美化

    关于Winform窗体美化,目前大致了解是有两种方式:第一种方式是重写Winform本身的控件,不过这需要非常熟悉控件的各个属性和事件并且要求具有很高的GDI绘图技术.第二种方式是借助第三方Winfo ...

  6. Java-JSTL标签简化和替换jsp页面上的java代码

    概念:JavaServer Pages Tag Library JSP标准标签库 作用:用于简化和替换jsp页面上的java代码 使用标签: 导入jstl相关jar包 引入标签库:taglib指令:& ...

  7. [oeasy]python0072_整数类型_int_integer_整型变量

    帮助手册 回忆上次内容   上次了解的是 字符串 字符串 就是 字符的串 字符串长度 可以用 len函数 字符可以用下标索引 []   可以用str 将整型数字 转化为 字符串   字符的长度本身 有 ...

  8. 前端说你的API接口太慢了,怎么办?

    当有千万条海量数据时,前端调取接口发现接口响应的太慢,前端这时让你优化一下接口,你说有几千万条数据,觉得自己尽力了,前端觉得你好菜,别急,读完这篇文章,让前端喊你一声:大佬,厉害!!! 常用的方法总结 ...

  9. 解决Sqoop导入导出MySQL数据错位问题

    添加--columns "columns,columns,columns" \可以在hive导入mysql时防止数据错位:

  10. ComfyUI插件:ComfyUI Impact 节点(二)

    前言: 学习ComfyUI是一场持久战,而 ComfyUI Impact 是一个庞大的模块节点库,内置许多非常实用且强大的功能节点 ,例如检测器.细节强化器.预览桥.通配符.Hook.图片发送器.图片 ...