# PrintImage **Repository Path**: caisimon/PrintImage ## Basic Information - **Project Name**: PrintImage - **Description**: 一个纯本地的 Windows 小工具,用来把图片快速整理、编号、排版并打印出来。 - **Primary Language**: C# - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-12 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PrintImage ## 简介 PrintImage 是一款基于 **WPF (Windows Presentation Foundation)** 开发的专业图片排版与打印工具。本项目旨在为用户提供一个简洁、直观的图形界面,用于将图片或 PDF 文档进行灵活排版、添加标注,并输出为高质量的打印结果或 PDF 文件。 ## 功能特性 - **多样的导入方式**:支持从本地文件导入图片,支持直接读取 PDF 文档作为素材,支持从剪贴板粘贴图片。 - **页面管理**:提供可视化的页面列表,支持添加、删除页面,调整页面顺序。 - **所见即所得的编辑**: - **画布操作**:支持拖拽调整图片位置、缩放大小、旋转角度。 - **精准定位**:显示纸张边缘和安全打印区域,辅助排版。 - **自由标注**:支持添加自定义文字、日期、页码或批注,并可拖拽定位到页面的任意位置(支持多种对齐锚点)。 - **打印与导出**: - **参数设置**:支持 A4, A5, B5, Letter 等多种纸张规格,提供纵向/横向切换,自定义页边距。 - **布局模式**:支持多页合一(如 2 合 1)的布局预览。 - **输出**:可直接调用系统打印机进行打印,或将排版结果导出为 PDF 文件。 - **即时预览**:提供打印预览窗口,模拟真实的输出效果。 ## 技术栈 - **开发语言**:C# - **框架**:.NET 6+ / WPF - **主要库**: - `PdfSharpCore`:用于 PDF 文档的生成与渲染。 - `PdfiumViewer` (推断依赖):用于 PDF 文档的导入与解析。 - **架构模式**:MVVM (Model-View-ViewModel) ## 快速开始 ### 环境要求 - Windows 10/11 操作系统。 - .NET 6.0 SDK 或更高版本。 ### 编译与运行 1. 克隆或下载本仓库源码。 2. 使用命令行进入项目根目录。 3. 执行构建脚本或直接使用 dotnet 命令: ```bash # 编译项目 dotnet build src/PrintImage/PrintImage.csproj ``` 4. 编译成功后,运行生成的可执行文件 `PrintImage.exe`。 ## 项目结构 项目采用了清晰的 MVVM 分层结构: - **`src/PrintImage`** - **Models**:定义了核心数据模型,如 `PageItem` (页面)、`PlacedImage` (已放置的图片)、`TextOverlay` (文字标注)、`OutputSettings` (输出配置) 等。 - **ViewModels**:包含业务逻辑层,处理用户交互、命令执行和状态管理 (`MainViewModel` 等)。 - **Views**:包含用户界面 XAML 文件及后台代码。 - **Services**:封装了核心服务模块: - `ImageImportService` / `PdfImportService`:负责素材的导入与处理。 - `ThumbnailService`:生成缩略图。 - `Rendering`:包含页面排版合成 (`PageComposer`) 和不同后端的渲染器 (`WpfPageRenderer`, `PdfExporter`)。 - **Infrastructure**:提供通用工具类,如单位换算 (`Units`)、命令基类 (`RelayCommand`) 等。 - **`tests/PrintImage.Tests`**:单元测试项目。 ## 许可证 本项目遵循 LICENSE 文件中描述的开源许可协议。 --- *本项目托管于 Gitee,旨在为社区提供一个功能完整、易于扩展的图片处理工具。*