# OfficeAssistant **Repository Path**: tabortao/OfficeAssistant ## Basic Information - **Project Name**: OfficeAssistant - **Description**: 一个基于 Avalonia UI 开发的跨平台办公助手工具,实现PDF批量合并、PDF批量拆分、PDF批量替换等功能。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: https://gitee.com/tabortao/OfficeAssistant - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2025-04-23 - **Last Updated**: 2026-07-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
Office Assistant # Office Assistant **基于 Avalonia UI 的跨平台 PDF 办公助手 — 批量合并 / 拆分 / 压缩 / 替换 / 转图片 / 图片转 PDF,开箱即用** [![GitHub release](https://img.shields.io/github/v/release/tabortao/OfficeAssistant?style=flat-square)](https://github.com/tabortao/OfficeAssistant/releases) [![GitHub stars](https://img.shields.io/github/stars/tabortao/OfficeAssistant?style=flat-square)](https://github.com/tabortao/OfficeAssistant/stargazers) [![GitHub forks](https://img.shields.io/github/forks/tabortao/OfficeAssistant?style=flat-square)](https://github.com/tabortao/OfficeAssistant/network) [![License](https://img.shields.io/github/license/tabortao/OfficeAssistant?style=flat-square)](https://github.com/tabortao/OfficeAssistant/blob/main/LICENSE) [![.NET](https://img.shields.io/badge/.NET-10.0-512BD4?style=flat-square&logo=dotnet&logoColor=white)](https://dotnet.microsoft.com/) [![Avalonia UI](https://img.shields.io/badge/Avalonia_UI-11.2.7-7B68EE?style=flat-square)](https://avaloniaui.net/) [![C#](https://img.shields.io/badge/C%23-12.0-239120?style=flat-square&logo=csharp&logoColor=white)](https://learn.microsoft.com/dotnet/csharp/) [![Platform](https://img.shields.io/badge/平台-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey?style=flat-square)]() [![Architecture](https://img.shields.io/badge/架构-MVVM-blue?style=flat-square)]() [![Gitee](https://img.shields.io/badge/码云-Gitee-C71D23?style=flat-square&logo=gitee&logoColor=white)](https://gitee.com/tabortao/OfficeAssistant) [![GitHub](https://img.shields.io/badge/GitHub-GitHub-181717?style=flat-square&logo=github&logoColor=white)](https://github.com/tabortao/OfficeAssistant) [**English (machine translation)**](./docs/README-en.md)
![Office Assistant UI](./docs/UIImage/2025UI效果.jpg) ## 概述 **Office Assistant** 是一款基于 **Avalonia UI** 和 **.NET 10** 构建的跨平台 PDF 办公助手,专注于 PDF 文档的批量处理与日常办公需求。它使用 **PdfSharpCore** 进行 PDF 解析与合并,并内置 **GhostScript** 实现压缩与转图片,无需额外安装即可开箱即用。 设计理念: - **专注 PDF 办公** — 围绕合并 / 拆分 / 压缩 / 替换 / 删除 / 插入 / 转图片 / 图片转 PDF 八个核心场景打磨 - **简单可依赖** — 直观的中文 UI、清晰的进度反馈、稳定的批量处理 - **跨平台原生体验** — 真正的桌面应用,而不是 Web 套壳;Windows / Linux / macOS 同源 - **可扩展架构** — MVVM 模式 + Avalonia,新功能模块化添加 ## 功能亮点 ### 核心 PDF 处理 - **PDF 批量合并** — 拖入或选择多个 PDF,按列表顺序合并为一个文件 - **PDF 批量拆分** — 支持"每页一个"与"按页码范围"两种拆分模式(如 `1-3,5,7-9`) - **PDF 批量压缩** — 内置 GhostScript,提供低 / 中 / 高三档预设与自定义等级(1-100) - **PDF 批量替换** — 源文件 / 替换文件成对替换,可指定页码 - **PDF 批量删除** — 按页码范围删除指定页面 - **PDF 批量插入** — 将外部 PDF 页面插入到源 PDF 指定位置 - **PDF 转图片** — 基于 GhostScript,支持自定义页码范围与分辨率(72-1200 DPI) - **图片转 PDF** — 多张图片一键合并为 PDF,支持页面大小 / 横纵向 / 边距 / 排序 ### 进阶与体验 - **拖放友好** — 文件列表支持拖入、按住拖动重排、上下移动按钮 - **批量处理进度** — 实时显示进度条、处理耗时与状态消息 - **智能输出路径** — 默认与源文件同目录,自动避开重名(`xxx.pdf` → `xxx1.pdf`…) - **OCR 集成** — 另含 OCR 文字识别功能(占位入口,详见导航栏图标) ## 技术栈 | 层级 | 技术 | 版本 | |---|---|---| | 桌面框架 | [Avalonia UI](https://avaloniaui.net/) | 11.2.7 | | 运行时 | [.NET](https://dotnet.microsoft.com/) | 10.0 | | 编程语言 | [C#](https://learn.microsoft.com/dotnet/csharp/) | 12.0 | | PDF 解析与合并 | [PdfSharpCore](https://github.com/ststeiger/PdfSharpCore) | 1.3.67 | | PDF 压缩 / 转图片 | [GhostScript](https://www.ghostscript.com/) | 10.05.1(已内置) | | 架构模式 | MVVM(`INotifyPropertyChanged` + `SetField`) | — | | 数据网格 | `Avalonia.Controls.DataGrid` | — | | 主题 | FluentTheme | — | | 安装包 | Inno Setup | — | ## 快速开始 ### 环境要求 - [.NET 10.0 SDK](https://dotnet.microsoft.com/zh-cn/download/dotnet/10.0) - 任意支持 .NET 的 IDE(Visual Studio / Rider / VS Code) - Windows 用户:已自带 GhostScript;Linux / macOS 用户可执行 `sudo apt install ghostscript` 或 `brew install ghostscript` ### 克隆与构建 ```bash git clone https://github.com/yaoleistable/OfficeAssistant.git cd OfficeAssistant # 构建(Debug) dotnet build "OfficeAssistant/OfficeAssistant.csproj" -c Debug # 构建(Release) dotnet build "OfficeAssistant/OfficeAssistant.csproj" -c Release # 开发模式运行 dotnet run --project "OfficeAssistant/OfficeAssistant.csproj" ``` ### 发布 ```powershell # 发布 Windows 版本(不含 .NET 运行时,需用户自行安装) dotnet publish -c Release -r win-x64 --no-self-contained # 发布为单文件可执行(不含运行时) dotnet publish -r win-x64 -c Release --self-contained false /p:PublishSingleFile=true # Native AOT(实验性) dotnet publish -r win-x64 -c Release -p:PublishAot=true ``` ## 使用说明(按导航栏顺序) 1. **PDF 合并** — 选多个 PDF → 点击"开始合并" → 选保存位置 2. **PDF 压缩** — 选 PDF → 选择压缩等级(低 / 中 / 高 / 自定义)→ 可选输出目录 → "开始压缩" 3. **PDF 拆分** — 选 PDF → 选择拆分模式(每页一个 / 按范围)→ 可选输出目录 → "开始拆分" 4. **PDF 替换** — 选择源文件与替换文件(数量必须一致)→ 输入要替换的页码 → "开始替换" 5. **PDF 删除** — 选 PDF → 输入要删除的页码范围 → "开始删除" 6. **PDF 插入** — 选择源文件与待插入文件 → 输入插入位置 → "开始插入" 7. **PDF 转图片** — 选 PDF → 可选页码范围 / 分辨率 → "开始转换"(图片自动保存到 `_Png` 子文件夹) 8. **图片转 PDF** — 拖入或选择多张图片(JPG / PNG / BMP / GIF / TGA)→ 调整顺序、页面设置 → "开始转换" 9. **OCR 文字识别** — 占位入口,详见应用内说明 ## 项目结构 ``` OfficeAssistant/ # 项目根目录 ├── OfficeAssistant/ # 主项目(应用代码) │ ├── OfficeAssistant.csproj # csproj:net10.0, win-x64 │ ├── Program.cs # 程序入口 │ ├── App.axaml(.cs) # 应用定义与全局初始化 │ ├── MainWindow.axaml(.cs) # 主窗口:左侧图标栏 + 功能导航 + 内容区 │ ├── Views/ # 视图(XAML + code-behind) │ │ └── PDF/ # 各功能 UserControl │ ├── ViewModels/ # 视图模型 │ │ └── PDF/ # 各功能 ViewModel │ ├── Converters/ # XAML 值转换器 │ ├── Helpers/ # 业务帮助类(GhostscriptHelper 等) │ └── Resources/ # 图标与图片资源 ├── docs/ # 文档与变更日志 │ ├── ChangeLogs.md # 版本变更 │ ├── 开发说明.md # 框架与命令速查 │ ├── 常见错误.md # 错误排查与最佳实践 │ ├── 功能需求.md # 历史需求与待办 │ └── Reference/ghostscript/ # 内置 GhostScript ├── scripts/ # 打包脚本 ├── .github/workflows/ # CI:自动构建 / 发布 ├── CLAUDE.md # AI 协作指引 └── OfficeAssistant.iss # Inno Setup 安装包脚本 ``` ## 文档 | 文档 | 说明 | |---|---| | [docs/ChangeLogs.md](./docs/ChangeLogs.md) | 版本变更日志([Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/) 风格) | | [docs/开发说明.md](./docs/开发说明.md) | 框架与命令速查 | | [docs/常见错误.md](./docs/常见错误.md) | 错误排查与最佳实践 | | [docs/功能需求.md](./docs/功能需求.md) | 历史需求与待办 | | [CLAUDE.md](./CLAUDE.md) | 给 Claude / AI 协作的项目级指引 | | [docs/README-en.md](./docs/README-en.md) | English (machine translation) | ## 运行环境要求 - Windows 10/11、macOS 12+、Linux(任意主流发行版) - .NET 10.0 桌面运行时:[下载](https://dotnet.microsoft.com/zh-cn/download/dotnet/10.0) - GhostScript - Windows:10.05.1(**已内置在安装包中**,无需额外安装) - macOS:`brew install ghostscript` - Linux:`sudo apt install ghostscript` ## 许可证 [MIT License](./LICENSE) ## 鸣谢 本项目的构建得益于以下优秀开源项目: - [Avalonia UI](https://avaloniaui.net/) — 跨平台 .NET 桌面 UI 框架 - [PdfSharpCore](https://github.com/ststeiger/PdfSharpCore) — .NET Core 版本的 PdfSharp - [GhostScript](https://www.ghostscript.com/) — 高质量的 PDF 解释器 - [Inno Setup](https://jrsoftware.org/isinfo.php) — Windows 安装包制作工具 ## 软件下载 - 欢迎关注公众号"**可持续学园**",回复"**OfficeAssistant**"获取最新软件下载地址。 ![微信公众号](./docs/Images/微信公众号.jpg)