# uni-pptx
**Repository Path**: lucky4018/uni-pptx
## Basic Information
- **Project Name**: uni-pptx
- **Description**: 本应用基于 konva 实现Web PPT 编辑器,以实现设计编辑、预览、切换、动画等核心功能。
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 13
- **Created**: 2024-09-12
- **Last Updated**: 2024-09-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
UniPPT - 在线演示文稿
🔄 [English](/README.md) | 中文
**官网:** https://wf0.github.io/unippt.html
**体验地址:** https://wf0.github.io/unippt-demo.html
## © 版权说明
1. 本项目基于 Apache License 2.0 协议,可免费使用,但请勿用于商业用途;
2. 项目在架构上,借鉴了 [canvas-editor](https://hufe.club/canvas-editor-docs/) 的优秀思想,仅用于系统架构设计部分;
3. 项目在页面布局、静态svg、图标上,直接或间接使用了[PPTist](https://pipipi-pikachu.github.io/PPTist/)的资源,感谢原作者;
4. **如果发现项目侵权部分,请及时联系删除**,其他依赖均为开源项目,请查看对应开源项目的许可证。
## 📖 项目简介
1. Unite PowerPoint,是基于 Konva(canvas渲染方案)的 Web 在线演示文稿(幻灯片)编辑器;
2. 项目力争还原大部分 Office PowerPoint 常用功能,支持文字、图片、多媒体资源、形状、折线、统计图、表格、公式等常见元素类型,支持在 Web 端实现幻灯片的编辑、预览、导出、分享、协作等功能;
3. 为满足不同用户群体的需求,不仅提供了 npm 包,支持在 Vue、React、H5 等前端框架中使用,还提供了完整的项目模板,可快速搭建在线演示文稿项目;
4. 本项目开箱即用,拥有完整的官方 API 文档,方便开发者二次开发;
5. 同类优秀产品:[PPTist](https://pipipi-pikachu.github.io/PPTist/)、[Slidev](https://sli.dev/)、[revealjs](https://revealjs.com/) 等(**排名不分先后**)。
## 🚀 项目运行
```bash
### 下载依赖
npm install
### 运行项目
npm run dev
### 打包项目
npm run build ## 打包成项目类型
npm run lib ## 打包成库类型
```
## 💼 项目依赖
```json
"devDependencies": {
"eslint": "^9.9.0", // eslint 语法检查器
"less": "^4.2.0", // less 预处理器
"typescript": "^5.5.4", // ts 编译器
}
"dependencies": {
"gsap": "^3.12.5", // 动画库
"html-to-image": "^1.11.11", // html 转图片
"konva": "^9.3.14", // konva 绘图库
"mathlive": "^0.101.0", // 公式编辑器
"quill": "^2.0.2", // 富文本编辑器
"vite": "^5.4.2" // vite 构建工具
},
```
## 📚 功能列表
**备注:✅ 为已实现功能,❌ 为未实现功能**
#### 协同
- ❌ 用户光标协同
- ❌ 评论交流协同
- ❌ 幻灯片协同编辑
- ❌ 文件分享/加入协同
#### 基础功能
- ✅ 历史记录(撤销、重做)
- ✅ 快捷键(系统快捷键、自定义快捷键)
- ✅ 右键菜单(支持画布菜单及元素菜单)
- ✅ 自定义系统主题颜色(提供 :root 主题定制方案)
- ✅ 幻灯片设计(背景设置、网格设置、预设主题)
- ❌ 文件导出(PPTX、PDF、图片)
- ❌ 幻灯片主题
#### 幻灯片页面编辑
- ✅ 幻灯片页面新增与删除
- ✅ 画布网格线
- ✅ 翻页动画
- ✅ 元素动画(入场、退场、强调)
- ✅ 幻灯片顺序调整(支持 API、拖拽方式实现)
- ❌ 演讲者备注(富文本)
- ❌ 幻灯片模板
- ❌ 画布缩放、移动
#### 幻灯片元素编辑
**基础功能**
- ✅ 元素添加、删除、拖拽、移动、旋转、缩放
- ✅ 元素多选、框选、单选
- ✅ 元素吸附对齐(移动和缩放)
- ✅ 元素属性设置(宽高、位置、边框、填充、文本等)
- ✅ 拖拽添加图文
- ✅ 元素复制粘贴
- ❌ 元素组合、锁定、批量编辑
- ❌ 元素超链接(链接到网页、链接到其他幻灯片页面)
**文字**
- ✅ 普通文本编辑
- ✅ 富文本编辑
- ✅ 属性设置
**图片**
- ✅ 图片上传(本地、网络)
- ❌ 裁剪(自定义、按形状、按纵横比)
- ❌ 滤镜、着色
**线条**
- ❌ 直线、基础折线/曲线
- ❌ 属性设置
**统计图**
- ✅ 柱状体、折线图、饼图、雷达图
- ✅ 图表转换、图表配置
- ❌ 环形图、面积图、散点图
**表格**
- ✅ 表格数据编辑
- ✅ 动态增删行列
**公式**
- ✅ LaTex 公式编辑
- ✅ 直接编辑公式,所见即所得
#### 幻灯片放映
- ✅ 幻灯片预览(当前预览、从头预览)
- ❌ 屏幕录制
## 📝 计划实现功能
## 🔗 相关资料
- [latex](https://cortexjs.io/mathlive/)
- [pptxtojson](https://github.com/pipipi-pikachu/pptxtojson)
- [PPTist Github](https://github.com/pipipi-pikachu/PPTist)
- [PPTist 体验地址](https://pipipi-pikachu.github.io/PPTist/)
- [基于 Konva 实现Web PPT 编辑器(一)](https://blog.csdn.net/weixin_47746452/article/details/141090611)
- [基于 Konva 实现Web PPT 编辑器(二)](https://blog.csdn.net/weixin_47746452/article/details/141227563)