使用的电脑需要先安装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";}}
}