# Easy.PrintService **Repository Path**: lzq132/Easy.PrintService ## Basic Information - **Project Name**: Easy.PrintService - **Description**: No description available - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-04 - **Last Updated**: 2025-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Easy.PrintService 打印服务

## 🎁项目简介 Easy.PrintService 是一个基于.NET技术,解决在客户端使用BarTender实现远程打印标签功能的解决方案。通过SignalR实时通信,外部应用可以通过API调用打印服务,客户端接收打印指令并调用BarTender进行打印。 ## 🍁模块介绍 #### Easy.PrintService(打印服务): - 基于 .NET 8.0 - 使用技术:AntDesignBlazor, FreeScheduler, FreeSql, SignalR, Yitter.IdGenerator - 提供打印任务管理、日志记录和配置界面 #### Easy.PrintService.Client(打印客户端): - 基于 .NET Framework 4.7.2 - 使用技术:SunnyUI, Microsoft.AspNetCore.SignalR.Client, Interop.BarTender - 负责实际打印操作,托管本地服务 Easy.PrintService.Common(公用模块): - 公用工具类和Models类 - 注意:引用的包需要同时兼容.NET Framework和.NET 8.0 ## 运行流程 ## 效果图
## 发布流程 1. 将Easy.PrintService项目的发布代码复制到Easy.PrintService.Client项目的ApiProject文件夹中 2. 配置文件: AppConfig.json配置文件 ``` { "IsHosting": true, // 是否启动客户端时托管服务 "Port": 8700, // 托管端口号 "Style": "dark", // 界面风格 "PrintLogPath": "C:\\EasyPrintService\\PrintLog", "BusinessLogPath": "C:\\EasyPrintService\\BusinessLog", "TemplatePath": "C:\\EasyPrintService\\Template" } ``` ## 运行流程 1. 启动客户端时调用ApiProject里的bat命令,将服务托管为Windows服务 2. 客户端通过SignalR框架与打印服务建立链接 3. 外部应用以API形式调用托管服务 4. 客户端收到SignalR推送信息后调用BarTender软件打印标签 ## 核心功能 - 远程打印:基于BarTender 10.1实现远程打印 - 服务托管:在客户端托管本地服务,实现后台运行 - 管理界面:基于Blazor+sqlite 实现 设置、日志查看和任务管理 - 定时清理:基于FreeScheduler实现定时调用清理脚本 自动清理历史日志和临时文件 ## 使用场景 1. 生产车间的标签打印系统 2. 物流仓储的货物标签打印 3. 实验室样品标签打印 ## 性能压测 - 测试环境:AMD Ryzen 7 5700U, 16G内存 - 测试方案:10次循环 × 10线程 - 测试结果: ## 扩展 扩展支持:可通过API执行客户端脚本等扩展功能 ``` // 示例:通过API触发客户端执行脚本 public async Task ExecuteScript(string scriptPath) { await _hubContext.Clients.All.SendAsync("ExecuteScript", scriptPath); } ``` ## 最后 ``` 如果该项目有帮助到您,请点亮右上角⭐Star,感谢支持! ```