hi, 大家好, 我是徐小夕, 最近在研究基于 web
的文档编辑器,在网上调研了很多方案, 刚好看到了一款非常有意思的开源编辑器——canvas-editor, 它底层基于 canvas
实现, 我们使用它可以实现类似于 word
文档编辑器类似的效果, 同时还支持很多灵活可配置的 API
, 可以帮助我们定制属于自己的文档编辑平台, 如果你刚好也想着手实现, 这个项目将非常适合你.
同时, 作者是国内大佬, 欢迎点赞支持.
好了, 话不多说, 接下来我们看看它具体的使用和实现效果.
github地址: https://github.com/Hufe921/canvas-editor
效果展示
我先展示一下我本地使用 canvas-editor
开发的编辑器效果:
插入表格:
插入公式:
是不是很像在 word
里编写文档的感觉~
功能点介绍
canvas-editor
功能点介绍如下:
- 富文本操作(撤销、重做、字体、字号、加粗、斜体、上下标、对齐方式、标题、列表…)
- 插入元素(表格、图片、链接、代码块、分页符、Math 公式、日期选择器、内容块…)
- 打印(基于 canvas 转图片、pdf 绘制)
- 控件(单选、文本、复选框)
- 右键菜单(内部、自定义)
- 快捷键(内部、自定义)
- 文字、元素、控件拖拽
- 页眉、页脚、页码
- 页边距
- 水印
- 分页
安装 & 使用
- 安装依赖
1pnpm i @hufe921/canvas-editor --save
2. 基本使用案例
1
2<div class="canvas-editor"></div>
3
4
5import Editor from '@hufe921/canvas-editor'
6
7new Editor(
8 document.querySelector('.canvas-editor'),
9 {
10 header: [
11 {
12 value: 'Header',
13 rowFlex: RowFlex.CENTER
14 }
15 ],
16 main: [
17 {
18 value: 'H5-Dooring零代码'
19 }
20 ],
21 footer: [
22 {
23 value: 'H5-Dooring',
24 size: 12
25 }
26 ]
27 },
28 {}
29)
当然为了使用更全面的功能, 我们还可以根据提供的配置来进行更自由的配置, 如下:
1interface IEditorOption {
2 mode?: EditorMode
3 defaultType?: string
4 defaultColor?: string
5 defaultFont?: string
6 defaultSize?: number
7 width?: number
8 height?: number
9 scale?: number
10 defaultHyperlinkColor?: string
11 header?: IHeader
12 footer?: IFooter
13 pageNumber?: IPageNumber
14 paperDirection?: PaperDirection
15 inactiveAlpha?: number
16 historyMaxRecordCount?: number
17 contextMenuDisableKeys?: string[]
18 scrollContainerSelector?: string
19 wordBreak?: WordBreak
20 watermark?: IWatermark
21 control?: IControlOption
22 background?: IBackgroundOption
23
24}
当然还有很多有意思的api, 大家也可以参考它的文档:
最终附上一个完整的demo效果:
如果你觉得 这款开源项目 很有趣,请不吝点赞、收藏、以及关注,你的支持对作者来说意义重大。
同时如果你有好的项目, 也可以在《趣谈前端》回复“自荐”, 获取项目自荐流程, 让自己的开源项目让 5****w+ 程序员看到~
更多推荐:
个人笔记记录 2021 ~ 2025