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

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

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

相关推荐
Maybyy16 分钟前
力扣242.有效的字母异位词
java·javascript·leetcode
遇到困难睡大觉哈哈20 分钟前
CSS中的Element语法
前端·css
Real_man26 分钟前
新物种与新法则:AI重塑开发与产品未来
前端·后端·面试
小彭努力中27 分钟前
147.在 Vue3 中使用 OpenLayers 地图上 ECharts 模拟飞机循环飞行
前端·javascript·vue.js·ecmascript·echarts
老马聊技术29 分钟前
日历插件-FullCalendar的详细使用
前端·javascript
zhu_zhu_xia31 分钟前
cesium添加原生MVT矢量瓦片方案
javascript·arcgis·webgl·cesium
咔咔一顿操作31 分钟前
Cesium实战:交互式多边形绘制与编辑功能完全指南(最终修复版)
前端·javascript·3d·vue
SoFlu软件机器人2 小时前
Cursor、飞算JavaAI、GitHub Copilot、Gemini CLI 等热门 AI 开发工具合集
人工智能·github·copilot
coding随想2 小时前
JavaScript中的系统对话框:alert、confirm、prompt
开发语言·javascript·prompt