# Printer **Repository Path**: windy05/Printer ## Basic Information - **Project Name**: Printer - **Description**: ● Printer 是一个基于 Rust 构建的 Windows 打印管理 CLI 工具,支持 PDF、HTML、图片和文本等多种格式的自动渲染与异步队列打印。它将不同格式统一转换为PNG,再通过 Windows GDI+ 发送到打印机,具备优先级调度、定时打印、守护进程自动处理、SQLite 持久化、自动重试退避等特性,并兼容 Windows 7。 - **Primary Language**: Rust - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: Rust, 批量打印 ## README # printer-rs [![MIT License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg)](https://www.microsoft.com/windows) [![Rust](https://img.shields.io/badge/Rust-2024-orange.svg)](https://www.rust-lang.org) Rust 打印管理 CLI 系统 —— 多格式文档渲染、异步作业队列、SQLite 持久化、守护进程自动打印。 ## 快速开始 ```bash cargo build --release # 提交任务 printer submit doc.pdf printer submit image.png --copies 2 printer submit page.html --priority high printer submit https://example.com/report # 查看队列 / 守护进程 printer list printer daemon ``` ## 功能特性 | 特性 | 说明 | |------|------| | 多格式支持 | PDF、HTML/URL、图片(PNG/JPG)、文本 | | 作业队列 | 优先级调度(低/普通/高),FIFO 同优先级 | | 定时打印 | ISO 8601 时间,如 `--schedule "2026-05-01T09:00:00Z"` | | 生命周期管理 | 取消 / 暂停 / 恢复 / 删除 / 重试 | | 守护进程 | 自动处理队列,支持 FIFO 和 Ready 模式 | | 持久化 | SQLite(WAL 模式),崩溃恢复 | | 重试机制 | 自动重试 + 指数退避 | | Windows 原生 | GDI+ 打印,支持 Windows 7+ | ## 支持的格式 | 格式 | 扩展名 | 渲染方式 | |------|--------|----------| | PDF | `.pdf` | PDFium / Ghostscript → PNG | | HTML | `.html` / URL | Chrome / Playwright / Rustybuzz → PNG | | 图片 | `.png` / `.jpg` | 直接使用,GDI 打印 | | 文本 | `.txt` | Rustybuzz 排版 → PNG | ## CLI 速查 | 命令 | 说明 | |------|------| | `printer submit ` | 提交打印任务 | | `printer list` | 列出所有作业 | | `printer status ` | 查看作业详情 | | `printer cancel/pause/resume/delete/retry ` | 作业管理 | | `printer print` | 单次打印循环 | | `printer daemon` | 守护进程模式 | 完整用法详见 [docs/CLI_USAGE.md](docs/CLI_USAGE.md) ## 配置文件 `config.toml`(默认)控制渲染器、日志、并发等。示例: ```toml [app] data_dir = "./data" max_render_concurrency = 3 render_timeout_s = 10 [renderers.pdf] provider = "pdfium" dll_path = "./dll/pdfium.dll" [renderers.html] provider = "headless_chrome" chrome_path = "C:/Program Files/Google/Chrome/Application/chrome.exe" ``` 详见 [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) 的"配置系统"章节。 ## 外部依赖 | 依赖 | 用途 | 必需? | |------|------|--------| | `pdfium.dll` | PDF 渲染 | PDF 格式必需(已内置) | | Chrome / Edge | HTML 渲染 | HTML 格式推荐 | | `gswin64c.exe` | Ghostscript(PDF 备选) | Windows 7 兼容 | 构建/部署详见 [docs/DEPLOY.md](docs/DEPLOY.md) ## 更多文档 | 文档 | 内容 | |------|------| | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | 系统架构、数据模型、渲染器、配置 | | [docs/CLI_USAGE.md](docs/CLI_USAGE.md) | CLI 完整用法手册 | | [docs/DEPLOY.md](docs/DEPLOY.md) | 构建、部署、依赖安装 | | [docs/ISSUES.md](docs/ISSUES.md) | 已知问题 | | [docs/plans-archive/](docs/plans-archive/) | 历史设计文档(归档) | | [docs/PROJECT_ANALYSIS.md](docs/PROJECT_ANALYSIS.md) | 项目完整深度分析(架构/数据流/依赖/渲染器/GDI) | ## 许可证 本项目基于 [MIT License](LICENSE) 开源。