C#调用barTender打印标签示例的实现

 更新时间:2023年08月28日 14:46:55   作者:小黄人软件  
Bartender是最优秀的条码打印软件,在企业里使用非常普遍,本文主要介绍了C#调用barTender打印标签示例的实现,具有一定的参考价值,感兴趣的可以了解一下

使用的电脑需要先安装BarTender 

 我封装成一个类

using System;
using System.Windows.Forms;
namespace FT_Tools
{
    public class SysContext
    {
        public static BarTender.Application btapp = new BarTender.Application();
        public static BarTender.Format btFormat;
        public void Quit()
        {
            SysContext.btapp.Quit(BarTender.BtSaveOptions.btSaveChanges);//界面退出时同步退出bartender进程
        }
        private static bool btPrint_Test(string modelPath,string txt,string barcode )
        {
            try
            {
                btFormat = btapp.Formats.Open(modelPath, false, ""); //System.Windows.Forms.Application.StartupPath + @"\1.btw"
                btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;//打印份数
                btFormat.PrintSetup.NumberSerializedLabels = 1;//序列标签数
                btFormat.SetNamedSubStringValue("打印文本", txt.Trim());
                btFormat.SetNamedSubStringValue("打印条码", barcode.Trim());
                btFormat.PrintOut(true, false);//第二个false设置打印时是否跳出打印属性
                btFormat.Close(BarTender.BtSaveOptions.btSaveChanges); //退出时是否保存标签
                return true;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return false;
            }
        }
    }
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace BarTenderDemo
{
    public partial class Form1 : Form
    {
        private BarTender.Application btAPP;
        private BarTender.Format btFormat;
        //SELECT MaterielId,ProductBigPackId,NetWeight,GrossWeight,num 
        //FROM Make_ProductBigPack mpb
        //LEFT JOIN Make_TaskInfo mti ON mpb.TaskId=mti.TaskId
        //WHERE ProductBigPackId=''
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            btAPP = new BarTender.Application();
        }
        private void btPrint_Click(object sender, EventArgs e)
        {
            try
            {
                btFormat = btAPP.Formats.Open(System.Windows.Forms.Application.StartupPath+@"\1.btw", false, "");
                btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;//打印份数
                btFormat.PrintSetup.NumberSerializedLabels = 1;//序列标签数
                btFormat.SetNamedSubStringValue("打印文本", txtMemo.Text.Trim());
                btFormat.SetNamedSubStringValue("打印条码", txtBarcode.Text.Trim());
                btFormat.PrintOut(true, false);//第二个false设置打印时是否跳出打印属性
                btFormat.Close(BarTender.BtSaveOptions.btSaveChanges); //退出时是否保存标签
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            btAPP.Quit(BarTender.BtSaveOptions.btSaveChanges);//界面退出时同步退出bartender进程
        }
    }
}

示例2:与上面一样的。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Runtime.InteropServices;
using BarTender;
using System.Text;
using Newtonsoft.Json;
namespace bartenderService
{
    /// <summary>
    /// BartenderWebService 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。 
    // [System.Web.Script.Services.ScriptService]
    public class SysContext
    {
        public static BarTender.Application btapp = new BarTender.Application();
        public static BarTender.Format btfat;
    }
    public class BartenderWebService : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public string GetTestLabelJson()
        {
            printContext pt=new printContext();
            pt.data = new List<printCell>();
            printCell cell=new printCell();
            pt.modelName = "气体检测仪.btw";
            pt.printDateStr = "生产日期";
            pt.printFBStr = "防爆证号";
            pt.printGasStr = "测量气体";
            pt.printSNStr = "产品编号";
            pt.printTELStr = "热线电话";
            pt.printVolStr = "工作电压";
            pt.printRangeStr = "检测范围";
            cell.printDate = "2019.12";
            cell.printFB = "CNEX17.0263";
            cell.printGas = "可燃气体";
            cell.printRange = "0-100";
            cell.printVol = "24V";
            cell.printUnit = "%LEL";
            cell.printSN = "226013221";
            pt.data.Add(cell);
            cell.printGas = "氨气";
            cell.printUnit = "PPM";
            pt.data.Add(cell);
            return JsonConvert.SerializeObject(pt);
        }
        [WebMethod]
        public string PrintLabel(string jsonstr)
        {
            int printcount = 0,i=0;
            string path = System.AppDomain.CurrentDomain.BaseDirectory + "model";
            string file_ini = path + "\\configure.ini";
            //pt.modelName + pt.data[1].printRange + pt.data[1].printGas
            //Newtonsoft.Json.Linq.JArray.Parse(jsonstr);
            printContext pt = JsonConvert.DeserializeObject<printContext>(jsonstr);
            if (pt.modelName == null)
                pt.modelName = "";
            if (pt.modelName == "")
                pt.modelName = "气体检测仪.btw";
            try
            {
                SysContext.btfat = SysContext.btapp.Formats.Open(path + "\\" + pt.modelName, false, "");
            }
            catch
            {
                pt.modelName = "气体检测仪.btw";
                SysContext.btfat = SysContext.btapp.Formats.Open(path + "\\" + pt.modelName, false, "");
            }
            SysContext.btfat.PrintSetup.IdenticalCopiesOfLabel = 1;
            SysContext.btapp.Visible = false;
            printcount = pt.data.Count();
            for(i=0;i<printcount;i++)
            {
                SysContext.btfat.SetNamedSubStringValue("BT_Gas", String.Format(pt.printGasStr+":"+pt.data[i].printGas));
                SysContext.btfat.SetNamedSubStringValue("BT_Range", String.Format(pt.printRangeStr+":"+pt.data[i].printRange+ pt.data[i].printUnit));
                SysContext.btfat.SetNamedSubStringValue("BT_Vol", String.Format(pt.printVolStr + ":" + pt.data[i].printVol));
                SysContext.btfat.SetNamedSubStringValue("BT_SN", String.Format(pt.printSNStr + ":" + pt.data[i].printSN));
                SysContext.btfat.SetNamedSubStringValue("BT_DATE", String.Format(pt.printDateStr + ":" + pt.data[i].printDate));
                SysContext.btfat.SetNamedSubStringValue("BT_FB", String.Format(pt.printFBStr + ":" + pt.data[i].printFB));
                if(pt.data[i].printTEL!=""&& pt.data[i].printTEL !=null)
                    SysContext.btfat.SetNamedSubStringValue("BT_TEL", String.Format(pt.printTELStr + ":" + pt.data[i].printTEL));
                SysContext.btfat.PrintOut(false, false);
            } 
            return "ok";
        }
    }
}

到此这篇关于C#调用barTender打印标签示例的实现的文章就介绍到这了,更多相关C#调用barTender打印标签内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#序列化与反序列化实例

    C#序列化与反序列化实例

    这篇文章主要介绍了C#序列化与反序列化的实现方法,实例分析了序列化与反序列化的原理与实现技巧,需要的朋友可以参考下
    2015-01-01
  • C#对Json进行序列化和反序列化

    C#对Json进行序列化和反序列化

    这篇文章介绍了C#对Json进行序列化和反序列化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • vscode编写latex的方法

    vscode编写latex的方法

    这篇文章主要介绍了vscode编写latex的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Unity实现绕任意轴任意角度旋转向量

    Unity实现绕任意轴任意角度旋转向量

    这篇文章主要为大家详细介绍了Unity实现绕任意轴任意角度旋转向量,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • Unity 使用tiledmap解析地图的详细过程

    Unity 使用tiledmap解析地图的详细过程

    这篇文章主要介绍了Unity 使用tiledmap解析地图,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • C# 创建、部署和调用WebService简单示例

    C# 创建、部署和调用WebService简单示例

    这篇文章主要为大家详细介绍了C# 创建、部署和调用WebService的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • 基于WPF实现绘制地铁路线图

    基于WPF实现绘制地铁路线图

    经常坐地铁,却不知道地铁多少条线路?哪个站下车?本文就来带大家利用WPF绘制深圳地铁路线图,从而带大家掌握WPF在图形绘制方面的一些知识,希望对大家有所帮助
    2023-06-06
  • c# 应用NPOI获取Excel中的图片,保存至本地的算法

    c# 应用NPOI获取Excel中的图片,保存至本地的算法

    本文主要介绍了c# 应用NPOI获取Excel中的图片,保存至本地的算法。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • C sharp (#) 数据类型获取方式

    C sharp (#) 数据类型获取方式

    这篇文章主要介绍了C sharp (#) 数据类型获取方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • c#基于NVelocity实现代码生成

    c#基于NVelocity实现代码生成

    这篇文章主要介绍了c#基于NVelocity实现代码生成的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-01-01

最新评论