- 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. 开发板测试手册——USB 4G 模块、GPS 定位功能操作步骤详解(3)

    目录 4 USB 4G 模块测试 41 4.1 网络功能测试 42 4.2 短信功能测试 43 4.3 GPS 定位功能测试 44 4.4 通话功能测试 45 4.5 测试程序编译 46 5 USB ...

  2. P6626 题解

    有一个很暴力的解法,就是以询问点为根 DFS. 考虑优化,我们考虑优化换根. 当根节点从父亲移动到它的某个孩子时,孩子的子树内所有点深度减 \(1\) 其余点深度加 \(1\). 同理,当根节点从某个 ...

  3. Kubernetes(K8S)基本概念

    前言 有公司用 java 或 go , vue 或 react , linux 或 win ,但所有的大厂都在用k8s,没有或,而且是全世界.一个熟悉k8s的开发,薪资可以轻松上25的 base . ...

  4. Spring学习篇

    什么是Spring? Spring是一个轻量级的IoC和AOP容器框架.是为Java应用程序提供基础性服务的一套框架,目的是用于简化企业应用程序的开发,它使得开发者只需要关心业务需求. 常见的配置方式 ...

  5. Luogu P2036 [COCI2008-2009 #2] PERKET

    今天我们来看一道题:Luogu P2036 [COCI2008-2009 #2] PERKET 这道题不难,典型的暴力枚举 由于食材数量随机,无法直接用循环解,但是可以使用递归 \(MY_{CODE: ...

  6. 奇思妙想,动手 DIY 你的浏览器主页

    实战开发和上线一个极客范儿的浏览器主页,原来如此简单! 大家好我是鱼皮,前段时间上线了一个程序员必备的浏览器主页,得到了很多同学的好评. 地址:https://home.code-nav.cn/ 其实 ...

  7. Java学习_重置版一:Java语言基础之数据和标识符等

    第一:关键字 (1)被Java语言赋予特定含义的单词 (2)特点:全部小写. (3)注意事项:         A:goto和const作为保留字存在.         B:类似于Notepad++这 ...

  8. Vue 使用Use、prototype自定义全局插件

    Vue 使用Use.prototype自定义全局插件   by:授客 QQ:1033553122   开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https ...

  9. 洛谷P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

    [NOIP2001 普及组] 最大公约数和最小公倍数问题 题目描述 洛谷题目链接:https://www.luogu.com.cn/problem/P1029 输入两个正整数 x, y,求出满足下列条 ...

  10. Linux 文本文件编辑相关命令简介【Linux 常用命令系列二】

    〇.前言 本文介绍了如何通过 vim 命令,对文本文件进行打开.编辑.保存等相关操作,并通过简单的示例演示了常用用法. 一.关于文本文件的操作 1.1 打开,查看(cat).编辑(vim) 打开文本文 ...