//using System; //using System.Collections.Generic; //using System.IO; //using System.Text; //using System.Linq; //using System.Threading.Tasks; //namespace BBWY.Client.Helpers //{ // public class BartenderHelper // { // #region BarTender打印方法 // private static BarTender.Application btApp = new BarTender.Application(); // private static BarTender.Format btFormat = new BarTender.Format(); // public string TemplateFile { set; get; } // public string ErrorMsg { set; get; } // public bool Status { set; get; } // /// // /// 使用 BarTender进行打印,批量打印 // /// // /// BarTender模板标签 // /// 打印数据 // /// 回调消息 // /// 打印数量 // /// 打印OK true // public bool BTPrint(string labelName, Dictionary labelParamsValues, out string msg, int printQty = 1, string printer = "Deli DL-730C(NEW)") // { // try // { // bool checkLabelVar = true; // string tmpMsg = ""; // this.TemplateFile = labelName; // if (!File.Exists(TemplateFile)) // { // msg = "Error:Label File Not Exists" + TemplateFile; // this.ErrorMsg = msg; // return false; // } // if (!string.IsNullOrEmpty(printer)) // { // bool printerFlag = false; // foreach (string sPrint in System.Drawing.Printing.PrinterSettings.InstalledPrinters)//获取所有打印机名称 // { // if (sPrint.Equals(printer)) // { // printerFlag = true; // } // } // if (!printerFlag) // { // msg = "Error:Printer Name Error"; // return false; // } // } // //找到打印模板的标签页 // btFormat = btApp.Formats.Open(labelName, false, ""); // if (!string.IsNullOrEmpty(printer)) // { // btFormat.Printer = printer; // } // if (btApp != null) // { // //btFormat.IdenticalCopiesOfLabel = printQty; // //btFormat.PrintOut(true, false); // //取模板所有的值 // string strBT = btFormat.NamedSubStrings.GetAll("#", "$"); // //将模板所有值进行拆分 // strBT = strBT.Substring(0, strBT.Length - 1); // string[] strBTValue = strBT.Split(new char[] { '$' }); // //循环将模板的值写入lbldicVar中 // Dictionary lbldicVar = new Dictionary(); // for (int i = 0; i < strBTValue.Length; i++) // { // string[] cc = strBTValue[i].Split(new char[] { '#' }); // lbldicVar.Add(cc[0].ToString(), cc[1].ToString()); //0是模板的参数 1是参数值 // } // if (labelParamsValues.Count > 0) // { // foreach (var item in lbldicVar) // { // if (labelParamsValues.Count(q => q.Key.ToUpper() == item.Key.ToUpper()) == 0) // { // tmpMsg = "数据源缺少参数: " + item.Key; // if (checkLabelVar) // { // this.ErrorMsg = tmpMsg; // checkLabelVar = false; // } // else // { // this.ErrorMsg = this.ErrorMsg + (char)10 + tmpMsg; // } // } // } // if (!checkLabelVar) // { // msg = this.ErrorMsg; // this.Status = false; // return false; // } // foreach (var param in labelParamsValues.Keys) // { // if (lbldicVar.Keys.Count(q => q.ToUpper() == param.ToUpper()) > 0) // { // var labvar = lbldicVar.Keys.First(q => q.ToUpper() == param.ToUpper()); // if (string.IsNullOrEmpty(labelParamsValues[param])) // { // tmpMsg = "数据源参数值为空:" + labvar; // if (checkLabelVar) // { // this.ErrorMsg = tmpMsg; // checkLabelVar = false; // } // else // { // this.ErrorMsg = this.ErrorMsg + (char)10 + tmpMsg; // } // } // btFormat.SetNamedSubStringValue(param, labelParamsValues[param]); // } // } // if (!checkLabelVar) // { // msg = this.ErrorMsg; // this.Status = false; // return false; // } // btFormat.IdenticalCopiesOfLabel = printQty; // //第二个false设置打印时是否跳出打印属性 // btFormat.PrintOut(true, false); // //退出是是否保存标签 // btFormat.Close(BarTender.BtSaveOptions.btSaveChanges); // //lblDoc.FormFeed(); // msg = "OK"; // this.ErrorMsg = msg; // this.Status = true; // return true; // } // else // { // msg = "Print Data is null"; // this.ErrorMsg = msg; // this.Status = false; // return false; // } // } // else // { // msg = "Error:CodeSoft Application can't boot up"; // this.ErrorMsg = msg; // this.Status = false; // return false; // } // } // catch (Exception ex) // { // msg = ex.Message + ex.InnerException; // this.ErrorMsg = msg; // this.Status = false; // File.AppendAllText("c:/1.txt", msg); // return false; // } // finally // { // if (btApp != null) // { // try // { // // File.AppendAllText("c:/1.txt","退出界面"); // btApp.Quit(BarTender.BtSaveOptions.btSaveChanges);//界面退出时同步退出bartender进程 // // File.AppendAllText("c:/1.txt", "退出成功"); // } // catch (Exception ex) // { // //File.AppendAllText("c:/1.txt",ex.Message+"|||||"+ ex.ToString()); // } // //lblApp.Documents.CloseAll(true); // //lblDoc = null; // } // GC.Collect(); // } // } // #endregion // #region 数据库调用打印 // /// // /// 打印从文本数据库中打 // /// // /// // public bool BTPrintByDataBase(string path, string filePath, string printer = "") // { // try // { // BarTender.Application btapp; // BarTender.Format btformat; // btapp = new BarTender.Application(); // btformat = btapp.Formats.Open(path, false, ""); // BarTender.Database database = btformat.Databases.GetDatabase(1); // if (!string.IsNullOrEmpty(printer)) // { // btformat.Printer = printer; // } // database.TextFile.FileName = filePath; // //database.SQLStatement += $" where printID='{printId}' order by RIGHT(Var1,7)";//填写SQL语句附加条件 // //database.Password = VSLoginInfo.SQLPassword; // //database.User = VSLoginInfo.SQLUser; // btformat.PrintOut(false, false); //第二个参数设置是否跳出打印属性; // btapp.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);//退出时同步退出bartender进程(SQL条件会改变,不更新模板信息) // } // catch // { // return false; // } // return true; // } // /// // /// 打印从文本数据库中打 // /// // /// 模板地址 // /// 数据行,一行一个标签,第一行为标题,多列逗号分割 // /// // public bool BTPrintByDataBase(string templatepath, List dataLine, string printer = "") // { // try // { // BarTender.Application btapp; // BarTender.Format btformat; // btapp = new BarTender.Application(); // var filepath = WriteLog(dataLine, "", Guid.NewGuid().ToString()); // btformat = btapp.Formats.Open(templatepath, false, ""); // BarTender.Database database = btformat.Databases.GetDatabase(1); // if (!string.IsNullOrEmpty(printer)) // { // btformat.Printer = printer; // } // database.TextFile.FileName = filepath; // //database.SQLStatement += $" where printID='{printId}' order by RIGHT(Var1,7)";//填写SQL语句附加条件 // //database.Password = VSLoginInfo.SQLPassword; // //database.User = VSLoginInfo.SQLUser; // btformat.PrintOut(false, false); //第二个参数设置是否跳出打印属性; // btapp.Quit(BarTender.BtSaveOptions.btDoNotSaveChanges);//退出时同步退出bartender进程(SQL条件会改变,不更新模板信息) // } // catch // { // return false; // } // return true; // } // /// // /// 写文本 // /// // /// // public static string WriteLog(List lines, string fileDirectory = "", string guid = "") // { // try // { // string path1 = Environment.CurrentDirectory + Path.Combine("/printFile/") + fileDirectory; // if (!Directory.Exists(path1)) // { // //创建索引目录 // Directory.CreateDirectory(path1); // } // string path = path1 + "/" + DateTime.Now.ToString("yyyy-MM-dd") + guid + ".txt"; // FileStream stream = null; // if (File.Exists(path)) // { // File.Delete(path); // } // stream = new FileStream(path, FileMode.Create); // StreamWriter writer = new StreamWriter(stream); // for (var i = 0; i < lines.Count; i++) // { // writer.Write(lines[i] + Environment.NewLine); // } // writer.Flush(); // writer.Close(); // stream.Close(); // return path; // } // catch // { // } // finally // { // } // return ""; // } // #endregion // public static void ExportToFile(string btFileName, Dictionary data) // { // //BarTender.Application btApp = new BarTender.Application(); // //BarTender.Format btFormat; // btFormat = btApp.Formats.Open(btFileName); // foreach (var key in data.Keys) // { // btFormat.SetNamedSubStringValue(key, data[key]); // } // //btFormat.SaveAs(btFileName, true); // btFormat.ExportToFile(@"E:/temp.jpg", "jpg", BarTender.BtColors.btColors24Bit, BarTender.BtResolution.btResolutionPrinter, BarTender.BtSaveOptions.btSaveChanges); // btFormat.Close(BarTender.BtSaveOptions.btSaveChanges); // btApp.Quit(BarTender.BtSaveOptions.btSaveChanges); // } // } //}