Skip to content

Repository files navigation

Office Assistant

Office Assistant

基于 Avalonia UI 的跨平台 PDF 办公助手 — 批量合并 / 拆分 / 压缩 / 替换 / 转图片 / 图片转 PDF,开箱即用

GitHub release GitHub stars GitHub forks License .NET Avalonia UI C# Platform Architecture

Gitee GitHub

English (machine translation)

Office Assistant UI

概述

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.pdfxxx1.pdf…)
  • OCR 集成 — 另含 OCR 文字识别功能(占位入口,详见导航栏图标)

技术栈

层级 技术 版本
桌面框架 Avalonia UI 11.2.7
运行时 .NET 10.0
编程语言 C# 12.0
PDF 解析与合并 PdfSharpCore 1.3.67
PDF 压缩 / 转图片 GhostScript 10.05.1(已内置)
架构模式 MVVM(INotifyPropertyChanged + SetField
数据网格 Avalonia.Controls.DataGrid
主题 FluentTheme
安装包 Inno Setup

快速开始

环境要求

  • .NET 10.0 SDK
  • 任意支持 .NET 的 IDE(Visual Studio / Rider / VS Code)
  • Windows 用户:已自带 GhostScript;Linux / macOS 用户可执行 sudo apt install ghostscriptbrew install ghostscript

克隆与构建

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"

发布

# 发布 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 → 可选页码范围 / 分辨率 → "开始转换"(图片自动保存到 <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 版本变更日志(Keep a Changelog 风格)
docs/开发说明.md 框架与命令速查
docs/常见错误.md 错误排查与最佳实践
docs/功能需求.md 历史需求与待办
CLAUDE.md 给 Claude / AI 协作的项目级指引
docs/README-en.md English (machine translation)

运行环境要求

  • Windows 10/11、macOS 12+、Linux(任意主流发行版)
  • .NET 10.0 桌面运行时:下载
  • GhostScript
    • Windows:10.05.1(已内置在安装包中,无需额外安装)
    • macOS:brew install ghostscript
    • Linux:sudo apt install ghostscript

许可证

MIT License

鸣谢

本项目的构建得益于以下优秀开源项目:

软件下载

  • 欢迎关注公众号"可持续学园",回复"OfficeAssistant"获取最新软件下载地址。

微信公众号

About

A cross-platform office assistant tool developed based on Avalonia UI, which implements functions such as batch merging of PDFs, batch splitting of PDFs, and batch replacement of PDFs. 一个基于 Avalonia UI 开发的跨平台办公助手工具,实现PDF批量合并、PDF批量拆分、PDF批量替换等功能。

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages