From be1c77de181e987fd9c2663832f1d644d683b32e Mon Sep 17 00:00:00 2001 From: "qianhao.xu" Date: Tue, 8 Apr 2025 17:15:09 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tools/BartenderPrintingTool.cs | 150 ++++++++++++++++++ .../OnlyPrintProductLabelController.cs | 55 ++++--- .../Resources/gxassembly_production_label.btw | Bin 0 -> 55116 bytes .../linesider_screen_bankend/appsettings.json | 5 +- 4 files changed, 184 insertions(+), 26 deletions(-) create mode 100644 linesider_screen_bankend/linesider_screen_bankend/Resources/gxassembly_production_label.btw diff --git a/linesider_screen_bankend/linesider_screen_bankend.Core/Tools/BartenderPrintingTool.cs b/linesider_screen_bankend/linesider_screen_bankend.Core/Tools/BartenderPrintingTool.cs index d1022ad..0a9cb2a 100644 --- a/linesider_screen_bankend/linesider_screen_bankend.Core/Tools/BartenderPrintingTool.cs +++ b/linesider_screen_bankend/linesider_screen_bankend.Core/Tools/BartenderPrintingTool.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using BarTender; namespace linesider_screen_bankend.Core.Tools @@ -111,6 +112,155 @@ namespace linesider_screen_bankend.Core.Tools } } + /// + /// 批量打印多个List标签 + /// + /// 标签模板路径 + /// 包含多个标签数据的列表 + /// 每个标签的打印份数 + /// 序列化标签数量 + /// 从列表项获取标签变量的委托 + /// 是否全部打印成功 + public bool PrintLabels( + string templatePath, + List items, + int copiesPerItem = 1, + int serializedLabels = 1, + Func> getSubStringValues = null) + { + if (_disposed) + throw new ObjectDisposedException("BartenderPrintHelper", "对象已被释放,不能执行打印操作。"); + + if (items == null || items.Count == 0) + return false; + + try + { + // 打开标签模板 + _btFormat = _btApp.Formats.Open(templatePath); + + // 设置打印参数 + _btFormat.PrintSetup.IdenticalCopiesOfLabel = copiesPerItem; + _btFormat.PrintSetup.NumberSerializedLabels = serializedLabels; + + bool allSuccess = true; + + // 遍历所有项目并打印 + foreach (var item in items) + { + try + { + // 获取当前项的变量值 + var subStringValues = getSubStringValues?.Invoke(item); + + // 设置标签变量值 + if (subStringValues != null) + { + foreach (var kvp in subStringValues) + { + _btFormat.SetNamedSubStringValue(kvp.Key, kvp.Value); + } + } + + // 执行打印 + _btFormat.PrintOut(false, false); + } + catch (Exception ex) + { + // 记录错误但继续打印其他项 + allSuccess = false; + // 可以在这里添加日志记录 + Console.WriteLine($"打印标签时出错: {ex.Message}"); + } + } + + return allSuccess; + } + catch (Exception ex) + { + throw new Exception($"批量打印标签时出错: {ex.Message}", ex); + } + finally + { + if (_btFormat != null) + { + _btFormat.Close(BtSaveOptions.btDoNotSaveChanges); + System.Runtime.InteropServices.Marshal.ReleaseComObject(_btFormat); + _btFormat = null; + } + } + } + + + /// + /// 批量打印多个标签(新增方法) + /// + /// 标签模板路径 + /// 多个标签的变量键值对列表 + /// 每个标签的打印份数 + /// 序列化标签数量 + /// 是否全部打印成功 + public bool PrintBatchLabels( + string templatePath, + List> batchSubStringValues, + int copiesPerLabel = 1, + int serializedLabels = 1) + { + if (_disposed) + throw new ObjectDisposedException(nameof(BartenderPrintHelper), "对象已被释放,不能执行打印操作。"); + + if (batchSubStringValues == null || batchSubStringValues.Count == 0) + return false; + + try + { + // 打开标签模板(只打开一次,提升性能) + _btFormat = _btApp.Formats.Open(templatePath); + _btFormat.PrintSetup.IdenticalCopiesOfLabel = copiesPerLabel; + _btFormat.PrintSetup.NumberSerializedLabels = serializedLabels; + + bool allSuccess = true; + + // 遍历所有标签数据并打印 + foreach (var subStringValues in batchSubStringValues) + { + try + { + // 设置变量值 + foreach (var kvp in subStringValues) + { + _btFormat.SetNamedSubStringValue(kvp.Key, kvp.Value); + } + + // 执行打印(不关闭模板,继续复用) + _btFormat.PrintOut(false, false); + } + catch (Exception ex) + { + allSuccess = false; + // 可记录日志或抛出特定异常 + Console.WriteLine($"打印标签时出错: {ex.Message}"); + } + } + + return allSuccess; + } + catch (Exception ex) + { + throw new Exception($"批量打印标签时出错: {ex.Message}", ex); + } + finally + { + // 确保释放资源 + if (_btFormat != null) + { + _btFormat.Close(BtSaveOptions.btDoNotSaveChanges); + System.Runtime.InteropServices.Marshal.ReleaseComObject(_btFormat); + _btFormat = null; + } + } + } + ~BartenderPrintHelper() { Dispose(false); diff --git a/linesider_screen_bankend/linesider_screen_bankend/Controller/OnlyPrintProductLabelController.cs b/linesider_screen_bankend/linesider_screen_bankend/Controller/OnlyPrintProductLabelController.cs index 0d45567..5ff43da 100644 --- a/linesider_screen_bankend/linesider_screen_bankend/Controller/OnlyPrintProductLabelController.cs +++ b/linesider_screen_bankend/linesider_screen_bankend/Controller/OnlyPrintProductLabelController.cs @@ -24,6 +24,8 @@ namespace linesider_screen_bankend.Controller public class OnlyPrintProductLabelController : WebApiController { private readonly Action _logAction; + // 准备打印数据 + string templatePath = ConfigurationManager.AppSettings["label_path"]; public OnlyPrintProductLabelController(Action logAction) { @@ -49,9 +51,6 @@ namespace linesider_screen_bankend.Controller string model = queryParams["model"]; string direction = queryParams["direction"]; - - - try { ProWorkorder workorderInfo = SqlSugarHelper.Db.Queryable() @@ -62,22 +61,21 @@ namespace linesider_screen_bankend.Controller // 使用 using 语句确保资源正确释放 using (var bartender = new BartenderPrintHelper()) { - // 准备打印数据 - string templatePath = ConfigurationManager.AppSettings["label_path"]; + var variables = new Dictionary { { "partnumber", workorderInfo.Specification }, { "model", model }, { "direction", direction }, { "productdate", DateTime.Now.ToString("yyyy/MM/dd") }, - {"workorder",workorderInfo.Workorder+"|"+workorderInfo.Specification+"|"+model+"|"+direction } + { "workorder",workorderInfo.Workorder+"|"+workorderInfo.Specification+"|"+model+"|"+direction } }; // 打印标签 bool success = bartender.PrintLabel( templatePath: templatePath, subStringValues: variables, - copies: 1, // 打印2份 + copies: 1, // 打印1份 serializedLabels: 1 // 序列化标签数为1 ); @@ -90,8 +88,7 @@ namespace linesider_screen_bankend.Controller } - // 模拟从数据库获取用户 - var user = new { Id = 123, Name = "张三", Age = 25 }; + // 返回成功响应 await this.HttpContext.SendApiSuccessAsync(null); } @@ -137,29 +134,35 @@ namespace linesider_screen_bankend.Controller // 获取特定参数 string workorder = queryParams["workorder"]; int LabelNum = int.Parse(queryParams["label_num"]); + // 获取特定参数 + string model = queryParams["model"]; + string direction = queryParams["direction"]; try { ProWorkorder workorderInfo = SqlSugarHelper.Db.Queryable() .Where(x => x.Workorder == workorder) .First(); + + // 使用 using 语句确保资源正确释放 using (var bartender = new BartenderPrintHelper()) { - // 准备打印数据 - string templatePath = ConfigurationManager.AppSettings["label_path"]; + var variables = new Dictionary { - { "ProductName", "高级笔记本电脑" }, - { "SerialNumber", "SN-20230401-001" }, - { "ManufactureDate", DateTime.Now.ToString("yyyy-MM-dd") } + { "partnumber", workorderInfo.Specification }, + { "model", model }, + { "direction", direction }, + { "productdate", DateTime.Now.ToString("yyyy/MM/dd") }, + {"workorder",workorderInfo.Workorder+"|"+workorderInfo.Specification+"|"+model+"|"+direction } }; // 打印标签 bool success = bartender.PrintLabel( templatePath: templatePath, subStringValues: variables, - copies: 2, // 打印2份 + copies: LabelNum, // 打印LabelNum份 serializedLabels: 1 // 序列化标签数为1 ); @@ -172,8 +175,7 @@ namespace linesider_screen_bankend.Controller } - // 模拟从数据库获取用户 - var user = new { Id = 123, Name = "张三", Age = 25 }; + // 返回成功响应 await this.HttpContext.SendApiSuccessAsync(null); } @@ -195,6 +197,9 @@ namespace linesider_screen_bankend.Controller // 获取特定参数 string workorder = queryParams["workorder"]; int LabelNum = int.Parse(queryParams["label_num"]); + // 获取特定参数 + string model = queryParams["model"]; + string direction = queryParams["direction"]; try { @@ -204,20 +209,21 @@ namespace linesider_screen_bankend.Controller // 使用 using 语句确保资源正确释放 using (var bartender = new BartenderPrintHelper()) { - // 准备打印数据 - string templatePath = ConfigurationManager.AppSettings["label_path"]; + var variables = new Dictionary { - { "ProductName", "高级笔记本电脑" }, - { "SerialNumber", "SN-20230401-001" }, - { "ManufactureDate", DateTime.Now.ToString("yyyy-MM-dd") } + { "partnumber", workorderInfo.Specification }, + { "model", model }, + { "direction", direction }, + { "productdate", DateTime.Now.ToString("yyyy/MM/dd") }, + {"workorder",workorderInfo.Workorder+"|"+workorderInfo.Specification+"|"+model+"|"+direction } }; // 打印标签 bool success = bartender.PrintLabel( templatePath: templatePath, subStringValues: variables, - copies: 2, // 打印2份 + copies: 1, // 打印2份 serializedLabels: 1 // 序列化标签数为1 ); @@ -230,8 +236,7 @@ namespace linesider_screen_bankend.Controller } - // 模拟从数据库获取用户 - var user = new { Id = 123, Name = "张三", Age = 25 }; + // 返回成功响应 await this.HttpContext.SendApiSuccessAsync(null); } diff --git a/linesider_screen_bankend/linesider_screen_bankend/Resources/gxassembly_production_label.btw b/linesider_screen_bankend/linesider_screen_bankend/Resources/gxassembly_production_label.btw new file mode 100644 index 0000000000000000000000000000000000000000..dd60197e18c8985c25a03b650523f52aa8c66654 GIT binary patch literal 55116 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 literal 0 HcmV?d00001 diff --git a/linesider_screen_bankend/linesider_screen_bankend/appsettings.json b/linesider_screen_bankend/linesider_screen_bankend/appsettings.json index 6f911ce..afad165 100644 --- a/linesider_screen_bankend/linesider_screen_bankend/appsettings.json +++ b/linesider_screen_bankend/linesider_screen_bankend/appsettings.json @@ -1,4 +1,7 @@ { - "label_path": "C:\\Labels\\MyLabel.btw" //标签路径 + + "label_path": "./Resources/gxassembly_production_label.btw" //标签路径 + + } \ No newline at end of file