C#使用标签软件Bartender打印标签模板

下面是C#使用标签软件Bartender打印标签模板的完整攻略:

1. 引入Bartender SDK

首先需要在C#工程中引入Bartender SDK。在 Visual Studio 中,打开项目 Solution Explorer,右键点击引用目录,选择添加引用,找到刚刚安装的 Bartender SDK 程序文件夹下的 “Interop.SeagullBarTender.dll” 文件,添加引用即可。

2. 创建Bartender对象并打开模板

using Seagull.BarTender.Print;
using Seagull.BarTender.PrintServer;
using Seagull.BarTender.Print.Database;
using Seagull.BarTender.Print.Message;
using Seagull.BarTender.Print.Server;

//Bartender 打印
void PrintLabel(string labelfileName)
{
    Engine btEngine = new Engine();
    //返回 Bartender 程序界面
    btEngine.Visible = true;
    //打开标签模板文件
    LabelFormatDocument btFormat = btEngine.Documents.Open($"{labelfileName}");
}

3. 设计打印数据源

数据源是C#向Bartender传递数据的桥梁,必须在Bartender中进行设计。在Bartender中,选择【文件】->【新建】->【数据源】来新建一个空数据源,命名为“testCSV”,然后在数据源里面添加字段,例如“Name”和 “Value”。

4. 绑定数据

在上一步中我们创建了数据源“testCSV”,现在需要在C#中给数据源中的“Name”和“Value”绑定相应的数据。代码示例如下:

//获取当前打印机
Printer printer = new Printer(printerName);
//获取数据源并绑定数据
Database btDatabase = btFormat.Databases.GetDatabase("testCSV");
//获取含 “Name” 和 “Value” 两个字段的表
Table btTable = btDatabase.Tables.GetTable("Data");
//获取表中的“Name”字段对象
Field nameField = btTable.Fields.GetField("Name");
//获取表中的“Value”字段对象
Field valueField = btTable.Fields.GetField("Value");
//向表中添加数据并进行绑定操作
btTable.Records.Add();
nameField.Value = "Name";
valueField.Value = "Value";
btFormat.PrintSetup.PrinterName = printerName;

5. 执行Print方法并打印

绑定完数据源后,我们通过执行 Print 方法来实现打印。代码示例如下:

//打印
Result result = btFormat.Print("test",out messages);
//判断打印是否成功
if (result == Result.Success)
{
    MessageBox.Show("打印成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else if (result == Result.Failure)
{
    MessageBox.Show("打印失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

至此,整个打印流程已经实现了。下面是两个示例说明:

示例一:

场景:使用BT打印机打印一个条形码

//打印一个条形码
private void button1_Click(object sender, EventArgs e)
{
   //调用打印方法,传入BT打印机
   PrintLabel(labelFileName,BTPrinterName);
}

void PrintLabel(string labelfileName,string printerName)
{
    //实例化Bartender引擎
    Engine btEngine = new Engine();
    //返回 Bartender 程序界面
    btEngine.Visible = true;
    //打开标签模板文件
    LabelFormatDocument btFormat = btEngine.Documents.Open($"{labelfileName}");
    //获取当前打印机
    Printer printer = new Printer(printerName);
    //获取数据源并绑定数据
    Database btDatabase = btFormat.Databases.GetDatabase("testCSV");
    //获取含 “Name” 和 “Value” 两个字段的表
    Table btTable = btDatabase.Tables.GetTable("Data");
    //获取表中“Name”字段对象
    Field nameField = btTable.Fields.GetField("Name");
    //获取表中“Value”字段对象
    Field valueField = btTable.Fields.GetField("Value");
    //往数据源中添加数据
    btTable.Records.Add();
    nameField.Value = "Value";
    valueField.Value = "123456789";
    btFormat.PrintSetup.PrinterName = printerName;
    //执行Bartender打印操作
    Messages messages;
    Result result = btFormat.PrintOut(false, false, PrintOutputConstants.sequential, 1, printerName, "Test");

    //判断是否打印成功
    if (result == Result.Success)
    {
        MessageBox.Show("打印成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else if (result == Result.Failure)
    {
        MessageBox.Show("打印失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    //关闭Bartender引擎
    btFormat.Close(SaveOptions.DoNotSaveChanges);
    btEngine.Stop(SaveOptions.DoNotSaveChanges);
}

示例二:

场景:使用BT打印机打印一个材料标签

//打印一个材料标签
private void button2_Click(object sender, EventArgs e)
{
   //调用打印方法,传入BT打印机
   PrintLabel(labelFileName,BTPrinterName);
}

void PrintLabel(string labelfileName,string printerName)
{
    //实例化Bartender引擎
    Engine btEngine = new Engine();
    //返回 Bartender 程序界面
    btEngine.Visible = true;
    //打开标签模板文件
    LabelFormatDocument btFormat = btEngine.Documents.Open($"{labelfileName}");
    //获取当前打印机
    Printer printer = new Printer(printerName);
    //获取数据源并绑定数据
    Database btDatabase = btFormat.Databases.GetDatabase("testCSV");
    //获取含 “Name” 和 “Value” 两个字段的表
    Table btTable = btDatabase.Tables.GetTable("Data");
    //获取表中“Name”字段对象
    Field nameField = btTable.Fields.GetField("Name");
    //获取表中“Value”字段对象
    Field valueField = btTable.Fields.GetField("Value");
    //往数据源中添加数据
    btTable.Records.Add();
    nameField.Value = "Name";
    valueField.Value = "材料名称";
    //往数据源中添加数据
    btTable.Records.Add();
    nameField.Value = "Unit";
    valueField.Value = "单位";
    //往数据源中添加数据
    btTable.Records.Add();
    nameField.Value = "Weight";
    valueField.Value = "重量";
    //往数据源中添加数据
    btTable.Records.Add();
    nameField.Value = "Code";
    valueField.Value = "编码";
    //绑定数据源
    btFormat.PrintSetup.PrinterName = printerName;
    btFormat.PrintSetup.UseDatabasePallets = true;

    //执行Bartender打印操作
    Messages messages;
    Result result = btFormat.Print("test", out messages);
    //判断是否打印成功
    if (result == Result.Success)
    {
        MessageBox.Show("打印成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
    }
    else if (result == Result.Failure)
    {
        MessageBox.Show("打印失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
    //关闭Bartender引擎
    btFormat.Close(SaveOptions.DoNotSaveChanges);
    btEngine.Stop(SaveOptions.DoNotSaveChanges);
}

以上就是 C#使用标签软件Bartender打印标签模板的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#使用标签软件Bartender打印标签模板 - Python技术站

(0)
上一篇 2023年6月7日
下一篇 2023年6月7日

相关文章

  • 使用VS2010 C#开发ActiveX控件(上)

    使用VS2010 C#开发ActiveX控件是一种常见的开发技术,其基本过程包括以下几个步骤: 1. 创建ActiveX控件项目 打开Visual Studio 2010,选择“新建项目” -> “Visual C#” -> “Windows桌面” -> “ActiveX控件”,输入项目名称和保存位置,点击“确定”创建项目。 2. 设计控件…

    C# 2023年5月15日
    00
  • C# 获取动态key的json对象的值案例

    下面我来详细讲解一下“C# 获取动态key的json对象的值案例”的完整攻略。 1.前言 在C#开发过程中,我们经常需要从json数据中获取特定的值。但是在实际开发中,json数据中包含的key是动态的,无法提前确定。这时我们需要一种能够灵活处理动态key的方法。 2.解决方案 2.1 使用Newtonsoft.Json库 我们可以使用Newtonsoft.…

    C# 2023年5月31日
    00
  • C#中String和StringBuilder的简介与区别

    下面为您详细讲解”C#中String和StringBuilder的简介与区别”。 一、String和StringBuilder的简介 1. String String是一个不可变类,它代表着一个字符串对象。在C#中,我们可以使用String类来表示纯文本的字符串。由于String对象是不可变的,所以对于String对象的任何改变都会导致新的对象的创建。这就意…

    C# 2023年6月7日
    00
  • C#面试题整理(带答案)

    下面是详细的攻略: 第一步:标题规范 为了让文章更加规范易读,我们需要规范标题的格式。一般来说,我们需要在标题前添加井号 #,以表示标题的级别。同时,作为整理类文章,我们可以使用层次化的标题结构,做到标题信息清晰明了。 C#面试题整理(带答案) 一、基础知识部分 1. C#中的值类型和引用类型有哪些? 2. C#中的装箱和拆箱是什么? …… 二、高级部分 1…

    C# 2023年5月14日
    00
  • C#实现String类型和json之间的相互转换功能示例

    C#实现String类型和JSON之间的相互转换功能示例 1. 前言 在现代Web开发中,常常需要将服务器数据以JSON(JavaScript Object Notation)格式传输到客户端,或者将客户端数据以JSON格式上传到服务器。同时,C#作为一门强类型的编程语言,当我们需要将JSON格式的字符串转换为C#的String类型或者反之,就需要使用到相互…

    C# 2023年5月31日
    00
  • 配置Visual Studio 以调试.net framework源代码第2/2页

    下面我来详细讲解如何配置Visual Studio以调试.NET Framework源代码。 步骤1:安装“NET Reflector” 首先,我们需要安装.NET Reflector,这是一款由Red Gate开发的反编译工具,可以将.NET程序集反编译成C#或VB.NET代码。安装方法如下: 1.1 前往 https://www.red-gate.com…

    C# 2023年5月31日
    00
  • C# Math.Max()方法: 返回两个数中较大的那个数

    C# Math.Max() 函数 Math.Max() 函数返回两个数字中较大的那个数字。 该函数需要两个参数,都必须是数字类型,可以是字符、short、int、long、ushort、uint、ulong、float、double、decimal 和 sbyte 类型的实例。 注意:如果您尝试在两个数字之间调用一个字符串,那么会引发运行时异常 System…

    C# 2023年4月19日
    00
  • 使用C#实现基于TCP和UDP协议的网络通信程序的基本示例

    下面我会为您详细讲解如何使用C#实现基于TCP和UDP协议的网络通信程序的基本示例。 一、基本概念介绍 在开始编写网络应用程序之前,需要我们明确一些基本的概念。- TCP协议: 传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层协议,常用于HTTP/HTTPS、SMTP、POP3等应用层协议…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部