耗资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属性配置面板

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

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

相关推荐
samllplum17 分钟前
在 master 分支上进行了 commit 但还没有 push,怎么安全地切到新分支并保留这些更改
前端·git
万叶学编程33 分钟前
鸿蒙移动应用开发--渲染控制实验
前端·华为·harmonyos
艾恩小灰灰1 小时前
深入理解CSS中的`transform-origin`属性
前端·javascript·css·html·web开发·origin·transform
修炼室1 小时前
从零开始搭建你的个人博客:使用 GitHub Pages 免费部署静态网站
github
ohMyGod_1231 小时前
Vue如何获取Dom
前端·javascript·vue.js
蓉妹妹1 小时前
React项目添加react-quill富文本编辑器,遇到的问题,比如hr标签丢失
前端·react.js·前端框架
码客前端1 小时前
css图片设为灰色
前端·javascript·css
艾恩小灰灰2 小时前
CSS中的`transform-style`属性:3D变换的秘密武器
前端·css·3d·css3·html5·web开发·transform-style
Captaincc2 小时前
AI coding的隐藏王者,悄悄融了2亿美金
前端·后端·ai编程
天天扭码2 小时前
一分钟解决一道算法题——矩阵置零
前端·算法·面试