# 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 的快递面单批量打印解决方案 [![.NET](https://img.shields.io/badge/.NET-8.0-blue)](https://dotnet.microsoft.com/) [![WPF](https://img.shields.io/badge/UI-WPF-purple)](https://docs.microsoft.com/dotnet/desktop/wpf/) [![License](https://img.shields.io/badge/license-MIT-green)](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 {{ orderNo }} 寄件人:{{ sender.name }} {{ sender.phone }} 收件人:{{ receiver.name }} {{ receiver.phone }} ``` ### Label 多列与嵌套示例 `