耗资100小时,我开源了一款PPT在线编辑器

大家好, 我是徐小夕. 之前一直在社区分享零代码 &低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如:

  • H5-Dooring(页面可视化搭建平台)
  • Flowmix/Docx 多模态文档编辑器
  • 灵语AI文档

最近在研发和设计AI办公软件时,为了真正的开源热爱,我花费100个小时,写了一款在线可视化的PPT编辑器,目前已经开源,大家感兴趣可以参考学习一下。

演示demo

github地址:github.com/MrXujiang/p...

目前开源协议友好,协议为:Apache-2.0 license。

我们可以基于它进行二次扩展开发,实现自己企业级在线PPT编辑器。接下来我就和大家分享一下PPTX

技术栈介绍

为了顺便学习研究一下最新的技术,我采用了如下核心技术栈:

  • Nextjs
  • @radix-ui
  • tailwindcss
  • html2canvas
  • recharts
  • 自研PPT结构转换算法

功能模块

  • 多组件支持(图文,形状,表格,可视化图表等)
  • 自定义画布
  • 动态可配置属性面板
  • PPT演示功能
  • 组件可视化拖拽
  • PPT导出功能

详细功能和技术介绍

以下是我设计的PPT的数据结构:

每一个组件元素都设计成了结构化的JSON,方便数据驱动的PPT渲染。

实时可预览的画布

我们可以创建画布,并在顶部菜单中选中对应的组件插入到画布,左侧画布列表会实时展示画布的更新情况(实时缩略图):

多样的画布背景设置

我们可以对每一张PPT画布设置不同的背景样式,比如背景色,渐变色,背景图片,甚至能自定义编写css代码来设置背景:

设置背景图片:

开箱即用的PPT组件

我们可以在PPT中插入文本,图片,图表,表格,图标,形状等元素,来满足我们PPT设计的各种需求。插入图表的效果:

目前图表支持六种,柱状图,折线图,饼图,面积图,散点图,雷达图,当然后续还会继续扩展。同时图表还支持各种高级配置,比如图表配色方案,图表动画等:

插入自定义表格的效果:

我们可以在配置面板编辑表格数据,并设置更多表格的自定义样式。插入形状:

目前支持各种复杂形状,并支持各种形状的样式配置。插入自定义图标:

同时所有的组件都支持旋转,层级调整等,满足各种样式设计需求。

PPT实时预览演示功能

点击演示按钮,我们可以一键演示PPT,并轻松切换PPT页面。

PPT导出功能

上面是我实现的导出PPT的效果,在WPS可以直接预览。导出PPT功能需要设计PPT底层数据结构相关的技术,比如需要将数据转化为XML,实现过程相对复杂,这里就不一一介绍了,如果大家有好的方案,也可以在留言区交流反馈。

PPT属性配置面板

开源不易,大家记得点赞 关注 + 收藏哈~

当然还有很多功能期待大家一起共建,大家有好的想法和建议可以在评论区留言反馈~

相关推荐
张拭心7 小时前
Cursor 又偷偷更新,这个功能太实用:Visual Editor for Cursor Browser
前端·人工智能
I'm Jie7 小时前
深入了解 Vue 3 组件间通信机制
前端·javascript·vue.js
用户90443816324608 小时前
90%前端都踩过的JS内存黑洞:从《你不知道的JavaScript》解锁底层逻辑与避坑指南
前端·javascript·面试
CodeCraft Studio9 小时前
文档开发组件Aspose 25.12全新发布:多模块更新,继续强化文档、图像与演示处理能力
前端·.net·ppt·aspose·文档转换·word文档开发·文档开发api
是毛毛吧9 小时前
边打游戏边学Python的5个开源项目
python·开源·github·开源软件·pygame
PPPPickup9 小时前
easychat项目复盘---获取联系人列表,联系人详细,删除拉黑联系人
java·前端·javascript
老前端的功夫9 小时前
前端高可靠架构:医疗级Web应用的实时通信设计与实践
前端·javascript·vue.js·ubuntu·架构·前端框架
前端大卫10 小时前
【重磅福利】学生认证可免费领取 Gemini 3 Pro 一年
前端·人工智能
孜燃10 小时前
Flutter APP跳转Flutter APP 携带参数
前端·flutter
脾气有点小暴10 小时前
前端页面跳转的核心区别与实战指南
开发语言·前端·javascript