# 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,感谢支持!
```