大家好, 我是徐小夕. 之前一直在社区分享零代码 &低代码的技术实践,也陆陆续续设计并开发了多款可视化搭建产品,比如:
- 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属性配置面板
开源不易,大家记得点赞 关注 + 收藏哈~
当然还有很多功能期待大家一起共建,大家有好的想法和建议可以在评论区留言反馈~