# WaybillPrinter
**Repository Path**: ai-code_4/waybill-printer
## Basic Information
- **Project Name**: WaybillPrinter
- **Description**: 用 openclaw 写的wpf打印工具
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 3
- **Created**: 2026-03-08
- **Last Updated**: 2026-03-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 快递面单打印系统 (Waybill Printer)
🖨️ 基于 .NET 8.0 + WPF 的快递面单批量打印解决方案
[](https://dotnet.microsoft.com/)
[](https://docs.microsoft.com/dotnet/desktop/wpf/)
[](LICENSE)
---
## 📖 功能特性
### 核心功能
- ✅ **XML 模板引擎** - 支持 Liquid 模板语法,灵活定义面单格式
- ✅ **批量打印队列** - 支持高/普通优先级,自动排队处理
- ✅ **WebSocket 接口** - 远程发送打印任务,支持 Web 集成
- ✅ **模板缓存** - LRU 策略,支持本地/远程模板自动缓存
- ✅ **打印历史** - SQLite 存储,支持查询统计
- ✅ **系统托盘** - 后台运行,快速访问
### 优化特性(v1.0+)
- ✅ **内存保护** - 自动清理过期任务,防止内存泄漏
- ✅ **异常处理** - 完善的错误处理和日志记录
- ✅ **配置验证** - 启动时自动验证配置有效性
- ✅ **文件日志** - 异步写入,自动轮转(保留 7 天)
- ✅ **数据库索引** - 优化查询性能
---
## 🚀 快速开始
### 环境要求
- Windows 10/11
- .NET 8.0 Runtime
- 至少一台可用打印机
### 安装步骤
1. **下载发布包**
```bash
# 从 Releases 下载最新版
```
2. **配置应用**
```json
// appsettings.json
{
"WebSocket": {
"Port": 8080,
"AutoStart": true
},
"Printing": {
"DefaultPrinter": "您的打印机名称",
"AutoPrint": true
}
}
```
3. **启动应用**
```bash
WaybillPrinter.exe
```
---
## 📡 WebSocket API
### 连接
```
ws://localhost:8080/ws/
```
### 发送打印任务
```json
{
"template": "templates/waybill.xml",
"printer": "ZDesigner GT800-203dpi",
"data": {
"orderNo": "SF1234567890",
"sender": { "name": "张三", "phone": "13800138000" },
"receiver": { "name": "李四", "phone": "13900139000" }
}
}
```
### 接收状态推送
```json
{
"taskId": "abc123",
"status": "Completed",
"message": "打印成功",
"timestamp": "2026-03-11T10:30:00"
}
```
---
## 📝 模板语法
### 基础示例
```xml
```
### Label 多列与嵌套示例
`