docs: support document internationalization #222

* docs: add English docuemnt #213

* docs: support document internationalization #222

---------

Co-authored-by: Hufe921 <huangyunfeihufe@hotmail.com>
This commit is contained in:
汥坳赵
2023-07-27 21:22:26 +08:00
committed by GitHub
co-authored by Hufe921
parent fc356c7eb6
commit 9f8016884f
33 changed files with 2842 additions and 430 deletions
+6 -3
View File
@@ -1,4 +1,4 @@
# 全局API
# 全局 API
## 使用方式
@@ -8,14 +8,17 @@ import Editor from "@hufe921/canvas-editor"
const instance = new Editor(container, <IElement[]>data, options)
instance.apiName()
```
## destroy
功能:销毁编辑器
用法:
```javascript
instance.destroy()
```
::: warning
仅销毁编辑器dom及相关事件,菜单栏、工具栏、外部变量等需自行处理。
:::
仅销毁编辑器 dom 及相关事件,菜单栏、工具栏、外部变量等需自行处理。
:::
+147 -2
View File
@@ -10,336 +10,421 @@ instance.command.commandName()
```
## executeMode
功能:切换编辑器模式(编辑、清洁、只读)
用法:
```javascript
instance.command.executeMode(editorMode: EditorMode)
```
## executeCut
功能:剪切
用法:
```javascript
instance.command.executeCut()
```
## executeCopy
功能:复制
用法:
```javascript
instance.command.executeCopy()
```
## executePaste
功能:粘贴
用法:
```javascript
instance.command.executePaste()
```
## executeSelectAll
功能:全选
用法:
```javascript
instance.command.executeSelectAll()
```
## executeBackspace
功能:向前删除
用法:
```javascript
instance.command.executeBackspace()
```
## executeSetRange
功能:设置选区
用法:
```javascript
instance.command.executeSetRange(startIndex: number , endIndex: number)
```
## executeUndo
功能:撤销
用法:
```javascript
instance.command.executeUndo()
```
## executeRedo
功能:重做
用法:
```javascript
instance.command.executeRedo()
```
## executePainter
功能:格式刷-复制样式
用法:
```javascript
instance.command.executePainter()
```
## executeApplyPainterStyle
功能:格式刷-应用样式
用法:
```javascript
instance.command.executeApplyPainterStyle()
```
## executeFormat
功能:清除样式
用法:
```javascript
instance.command.executeFormat()
```
## executeFont
功能:设置字体
用法:
```javascript
instance.command.executeFont(font: string)
```
## executeSize
功能:设置字号
用法:
```javascript
instance.command.executeSize(size: number)
```
## executeSizeAdd
功能:增大字号
用法:
```javascript
instance.command.executeSizeAdd()
```
## executeSizeMinus
功能:减小字号
用法:
```javascript
instance.command.executeSizeMinus()
```
## executeBold
功能:字体加粗
用法:
```javascript
instance.command.executeBold()
```
## executeItalic
功能:字体斜体
用法:
```javascript
instance.command.executeItalic()
```
## executeUnderline
功能:下划线
用法:
```javascript
instance.command.executeUnderline()
```
## executeStrikeout
功能:删除线
用法:
```javascript
instance.command.executeStrikeout()
```
## executeSuperscript
功能:上标
用法:
```javascript
instance.command.executeSuperscript()
```
## executeSubscript
功能:上下标
用法:
```javascript
instance.command.executeSubscript()
```
## executeColor
功能:字体颜色
用法:
```javascript
instance.command.executeColor()
```
## executeHighlight
功能:高亮
用法:
```javascript
instance.command.executeHighlight()
```
## executeTitle
功能:标题设置
用法:
```javascript
instance.command.executeTitle(TitleLevel | null)
```
## executeList
功能:列表设置
用法:
```javascript
instance.command.executeList(listType: ListType | null, listStyle?: ListStyle)
```
## executeRowFlex
功能:行对齐
用法:
```javascript
instance.command.executeRowFlex(rowFlex: RowFlex)
```
## executeRowMargin
功能:行间距
用法:
```javascript
instance.command.executeRowMargin(rowMargin: number)
```
## executeInsertTable
功能:插入表格
用法:
```javascript
instance.command.executeInsertTable(row: number, col: number)
```
## executeInsertTableTopRow
功能:向上插入一行
用法:
```javascript
instance.command.executeInsertTableTopRow()
```
## executeInsertTableBottomRow
功能:向下插入一行
用法:
```javascript
instance.command.executeInsertTableBottomRow()
```
## executeInsertTableLeftCol
功能:向左插入一列
用法:
```javascript
instance.command.executeInsertTableLeftCol()
```
## executeInsertTableRightCol
功能:向右插入一列
用法:
```javascript
instance.command.executeInsertTableRightCol()
```
## executeDeleteTableRow
功能:删除当前行
用法:
```javascript
instance.command.executeDeleteTableRow()
```
## executeDeleteTableCol
功能:删除当前列
用法:
```javascript
instance.command.executeDeleteTableCol()
```
## executeDeleteTable
功能:删除表格
用法:
```javascript
instance.command.executeDeleteTable()
```
## executeMergeTableCell
功能:合并表格
用法:
```javascript
instance.command.executeMergeTableCell()
```
## executeCancelMergeTableCell
功能:取消合并表格
用法:
```javascript
instance.command.executeCancelMergeTableCell()
```
## executeTableTdVerticalAlign
功能:表格单元格垂直对齐方式
用法:
```javascript
instance.command.executeTableTdVerticalAlign(payload: VerticalAlign)
```
## executeTableBorderType
功能:表格边框类型
用法:
```javascript
instance.command.executeTableBorderType(payload: TableBorder)
```
## executeTableTdBackgroundColor
功能:表格单元格背景色
用法:
```javascript
instance.command.executeTableTdBackgroundColor(payload: string)
```
## executeImage
功能:插入图片
用法:
```javascript
instance.command.executeImage({
width: number;
@@ -349,9 +434,11 @@ instance.command.executeImage({
```
## executeHyperlink
功能:插入链接
用法:
```javascript
instance.command.executeHyperlink({
type: ElementType.HYPERLINK,
@@ -362,49 +449,61 @@ instance.command.executeHyperlink({
```
## executeDeleteHyperlink
功能:删除链接
用法:
```javascript
instance.command.executeDeleteHyperlink()
```
## executeCancelHyperlink
功能:取消链接
用法:
```javascript
instance.command.executeCancelHyperlink()
```
## executeEditHyperlink
功能:编辑链接
用法:
```javascript
instance.command.executeEditHyperlink(newUrl: string)
```
## executeSeparator
功能:插入分割线
用法:
```javascript
instance.command.executeSeparator(dashArray: number[])
```
## executePageBreak
功能:分页符
用法:
```javascript
instance.command.executePageBreak()
```
## executeAddWatermark
功能:添加水印
用法:
```javascript
instance.command.executeAddWatermark({
data: string;
@@ -416,185 +515,231 @@ instance.command.executeAddWatermark({
```
## executeDeleteWatermark
功能:添加水印
功能:删除水印
用法:
```javascript
instance.command.executeDeleteWatermark()
```
## executeSearch
功能:搜索
用法:
```javascript
instance.command.executeSearch(keyword: string)
```
## executeSearchNavigatePre
功能:搜索导航-上一个
用法:
```javascript
instance.command.executeSearchNavigatePre()
```
## executeSearchNavigateNext
功能:搜索导航-下一个
用法:
```javascript
instance.command.executeSearchNavigateNext()
```
## executeReplace
功能:搜索替换
用法:
```javascript
instance.command.executeReplace(newWord: string)
```
## executePrint
功能:打印
用法:
```javascript
instance.command.executePrint()
```
## executeReplaceImageElement
功能:替换图片
用法:
```javascript
instance.command.executeReplaceImageElement(newUrl: string)
```
## executeSaveAsImageElement
功能:另存为图片
用法:
```javascript
instance.command.executeSaveAsImageElement()
```
## executeChangeImageDisplay
功能:改变图片行显示方式
用法:
```javascript
instance.command.executeSaveAsImageElement(element: IElement, display: ImageDisplay)
```
## executePageMode
功能:页面模式
用法:
```javascript
instance.command.executePageMode(pageMode: PageMode)
```
## executePageScaleRecovery
功能:恢复页面原始缩放比例
用法:
```javascript
instance.command.executePageScaleRecovery()
```
## executePageScaleMinus
功能:页面缩小
用法:
```javascript
instance.command.executePageScaleMinus()
```
## executePageScaleAdd
功能:页面放大
用法:
```javascript
instance.command.executePageScaleAdd()
```
## executePaperSize
功能:设置纸张大小
用法:
```javascript
instance.command.executePaperSize(width: number, height: number)
```
## executePaperDirection
功能:设置纸张方向
用法:
```javascript
instance.command.executePaperDirection(paperDirection: PaperDirection)
```
## executeSetPaperMargin
功能:设置纸张页边距
用法:
```javascript
instance.command.executeSetPaperMargin([top: number, right: number, bottom: number, left: number])
```
## executeInsertElementList
功能:插入元素
用法:
```javascript
instance.command.executeInsertElementList(elementList: IElement[])
```
## executeAppendElementList
功能:追加元素
用法:
```javascript
instance.command.executeAppendElementList(elementList: IElement[], options?: IAppendElementListOption)
```
## executeSetValue
功能:设置编辑器数据
用法:
```javascript
instance.command.executeSetValue(payload: Partial<IEditorData>)
```
## executeRemoveControl
功能:删除控件
用法:
```javascript
instance.command.executeRemoveControl()
```
## executeSetLocale
功能:设置本地语言
用法:
```javascript
instance.command.executeSetLocale(locale: string)
```
## executeLocationCatalog
功能:定位目录位置
用法:
```javascript
instance.command.executeLocationCatalog(titleId: string)
```
## executeWordTool
功能:文字工具(删除空行、行首空格)
用法:
```javascript
instance.command.executeWordTool()
```
```
+23 -3
View File
@@ -8,10 +8,13 @@ import Editor from "@hufe921/canvas-editor"
const instance = new Editor(container, <IElement[]>data, options)
const value = instance.command.commandName()
```
## getValue
功能:获取当前文档信息
用法:
```javascript
const {
version: string;
@@ -25,49 +28,62 @@ const {
```
## getImage
功能:获取当前页面图片base64字符串
功能:获取当前页面图片 base64 字符串
用法:
```javascript
const base64StringList = await instance.command.getImage(pixelRatio?: number)
```
## getWordCount
功能:获取文档字数
用法:
```javascript
const wordCount = await instance.command.getWordCount()
```
## getRangeText
功能:获取选区文本
用法:
```javascript
const rangeText = instance.command.getRangeText()
```
## getRangeContext
功能:获取选区上下文
用法:
```javascript
const rangeContext = instance.command.getRangeContext()
```
## getPaperMargin
功能:获取页边距
用法:
```javascript
const [top: number, right: number, bottom: number, left: number] = instance.command.getPaperMargin()
const [top: number, right: number, bottom: number, left: number] =
instance.command.getPaperMargin()
```
## getSearchNavigateInfo
功能:获取搜索导航信息
用法:
```javascript
const {
index: number;
@@ -76,17 +92,21 @@ const {
```
## getCatalog
功能:获取目录
用法:
```javascript
const catalog = await instance.command.getCatalog()
```
## getHTML
功能:获取HTML
功能:获取 HTML
用法:
```javascript
const {
header: string
+1 -1
View File
@@ -17,4 +17,4 @@ instance.register.contextMenuList([
childMenus?: IRegisterContextMenu[];
}
])
```
```
+12 -7
View File
@@ -1,6 +1,7 @@
# 内部右键菜单
## 全局
- 剪切
- 复制
- 粘贴
@@ -8,11 +9,13 @@
- 打印
## 超链接
- 删除链接
- 取消链接
- 编辑链接
## 图片
- 更改图片
- 另存为图片
- 文字环绕
@@ -20,6 +23,7 @@
- 上下型环绕
## 表格
- 表格边框
- 所有框线
- 无框线
@@ -29,16 +33,17 @@
- 垂直居中
- 底端对齐
- 插入行列
- 上方插入1
- 下方插入1
- 左侧插入1
- 右侧插入1
- 上方插入 1
- 下方插入 1
- 左侧插入 1
- 右侧插入 1
- 删除行列
- 删除1
- 删除1
- 删除 1
- 删除 1
- 删除整个表格
- 合并单元格
- 取消合并
## 控件
- 删除控件
- 删除控件
+21 -1
View File
@@ -21,81 +21,101 @@ instance.eventBus.off<K keyof EventMap>(
```
## rangeStyleChange
功能:选区样式发生改变
用法:
```javascript
instance.eventBus.on('rangeStyleChange', (payload: IRangeStyle) => void)
```
## visiblePageNoListChange
功能:可见页发生改变
用法:
```javascript
instance.eventBus.on('visiblePageNoListChange', (payload: number[]) => void)
```
## intersectionPageNoChange
功能:当前页发生改变
用法:
```javascript
instance.eventBus.on('intersectionPageNoChange', (payload: number) => void)
```
## pageSizeChange
功能:当前页数发生改变
用法:
```javascript
instance.eventBus.on('pageSizeChange', (payload: number) => void)
```
## pageScaleChange
功能:当前页面缩放比例发生改变
用法:
```javascript
instance.eventBus.on('pageScaleChange', (payload: number) => void)
```
## contentChange
功能:当前内容发生改变
用法:
```javascript
instance.eventBus.on('contentChange', () => void)
```
## controlChange
功能:当前光标所在控件发生改变
用法:
```javascript
instance.eventBus.on('controlChange', (payload: IControl | null) => void)
```
## pageModeChange
功能:页面模式发生改变
用法:
```javascript
instance.eventBus.on('pageModeChange', (payload: PageMode) => void)
```
## saved
功能:文档执行保存
用法:
```javascript
instance.eventBus.on('saved', (payload: IEditorResult) => void)
```
## zoneChange
功能:区域发生改变
用法:
```javascript
instance.eventBus.on('zoneChange', (payload: EditorZone) => void)
```
```
+66 -66
View File
@@ -20,74 +20,74 @@ instance.command.executeSetLocale(locale)
interface ILang {
contextmenu: {
global: {
cut: string;
copy: string;
paste: string;
selectAll: string;
print: string;
};
control: {
delete: string;
};
hyperlink: {
delete: string;
cancel: string;
edit: string;
};
image: {
change: string;
saveAs: string;
textWrap: string;
textWrapType: {
embed: string;
upDown: string;
}
};
table: {
insertRowCol: string;
insertTopRow: string;
insertBottomRow: string;
insertLeftCol: string;
insertRightCol: string;
deleteRowCol: string;
deleteRow: string;
deleteCol: string;
deleteTable: string;
mergeCell: string;
mergeCancelCell: string;
verticalAlign: string;
verticalAlignTop: string;
verticalAlignMiddle: string;
verticalAlignBottom: string;
border: string;
borderAll: string;
borderEmpty: string;
borderExternal: string;
};
};
cut: string
copy: string
paste: string
selectAll: string
print: string
}
control: {
delete: string
}
hyperlink: {
delete: string
cancel: string
edit: string
}
image: {
change: string
saveAs: string
textWrap: string
textWrapType: {
embed: string
upDown: string
}
}
table: {
insertRowCol: string
insertTopRow: string
insertBottomRow: string
insertLeftCol: string
insertRightCol: string
deleteRowCol: string
deleteRow: string
deleteCol: string
deleteTable: string
mergeCell: string
mergeCancelCell: string
verticalAlign: string
verticalAlignTop: string
verticalAlignMiddle: string
verticalAlignBottom: string
border: string
borderAll: string
borderEmpty: string
borderExternal: string
}
}
datePicker: {
now: string;
confirm: string;
return: string;
timeSelect: string;
now: string
confirm: string
return: string
timeSelect: string
weeks: {
sun: string;
mon: string;
tue: string;
wed: string;
thu: string;
fri: string;
sat: string;
};
year: string;
month: string;
hour: string;
minute: string;
second: string;
};
sun: string
mon: string
tue: string
wed: string
thu: string
fri: string
sat: string
}
year: string
month: string
hour: string
minute: string
second: string
}
frame: {
header: string;
footer: string;
header: string
footer: string
}
}
```
```
+32 -12
View File
@@ -1,6 +1,6 @@
# 事件监听(listener)
> listener只能响应一个方法,推荐使用eventBus进行事件监听
> listener 只能响应一个方法,推荐使用 eventBus 进行事件监听
## 使用方式
@@ -12,81 +12,101 @@ instance.listener.eventName = ()=>{}
```
## rangeStyleChange
功能:选区样式发生改变
用法:
```javascript
instance.listener.rangeStyleChange = (payload: IRangeStyle)=>{}
instance.listener.rangeStyleChange = (payload: IRangeStyle) => {}
```
## visiblePageNoListChange
功能:可见页发生改变
用法:
```javascript
instance.listener.visiblePageNoListChange = (payload: number[])=>{}
instance.listener.visiblePageNoListChange = (payload: number[]) => {}
```
## intersectionPageNoChange
功能:当前页发生改变
用法:
```javascript
instance.listener.intersectionPageNoChange = (payload: number)=>{}
instance.listener.intersectionPageNoChange = (payload: number) => {}
```
## pageSizeChange
功能:当前页数发生改变
用法:
```javascript
instance.listener.pageSizeChange = (payload: number)=>{}
instance.listener.pageSizeChange = (payload: number) => {}
```
## pageScaleChange
功能:当前页面缩放比例发生改变
用法:
```javascript
instance.listener.pageScaleChange = (payload: number)=>{}
instance.listener.pageScaleChange = (payload: number) => {}
```
## contentChange
功能:当前内容发生改变
用法:
```javascript
instance.listener.contentChange = ()=>{}
instance.listener.contentChange = () => {}
```
## controlChange
功能:当前光标所在控件发生改变
用法:
```javascript
instance.listener.controlChange = (payload: IControl | null)=>{}
instance.listener.controlChange = (payload: IControl | null) => {}
```
## pageModeChange
功能:页面模式发生改变
用法:
```javascript
instance.listener.pageModeChange = (payload: PageMode)=>{}
instance.listener.pageModeChange = (payload: PageMode) => {}
```
## saved
功能:文档执行保存
用法:
```javascript
instance.listener.saved = (payload: IEditorResult)=>{}
instance.listener.saved = (payload: IEditorResult) => {}
```
## zoneChange
功能:区域发生改变
用法:
```javascript
instance.listener.zoneChange = (payload: EditorZone)=>{}
```
instance.listener.zoneChange = (payload: EditorZone) => {}
```
+72 -72
View File
@@ -14,52 +14,52 @@ new Editor(container, IEditorData | IElement[], {
```typescript
interface IEditorOption {
mode?: EditorMode; // 编辑器模式:编辑、清洁(不显示视觉辅助元素。如:分页符)、只读。默认:编辑
defaultType?: string; // 默认元素类型。默认:TEXT
defaultFont?: string; // 默认字体。默认:Yahei
defaultSize?: number; // 默认字号。默认:16
minSize?: number; // 最小字号。默认:5
maxSize?: number; // 最大字号。默认:72
defaultBasicRowMarginHeight?: number; // 默认行高。默认:8
defaultRowMargin?: number; // 默认行间距。默认:1
defaultTabWidth?: number; // 默认tab宽度。默认:32
width?: number; // 纸张宽度。默认:794
height?: number; // 纸张高度。默认:1123
scale?: number; // 缩放比例。默认:1
pageGap?: number; // 纸张间隔。默认:20
underlineColor?: string; // 下划线颜色。默认:#000000
strikeoutColor?: string; // 删除线颜色。默认:#FF0000
rangeColor?: string; // 选区颜色。默认:#AECBFA
rangeAlpha?: number; // 选区透明度。默认:0.6
rangeMinWidth?: number; // 选区最小宽度。默认:5
searchMatchColor?: string; // 搜索高亮颜色。默认:#FFFF00
searchNavigateMatchColor?: string; // 搜索导航高亮颜色。默认:#AAD280
searchMatchAlpha?: number; // 搜索高亮透明度。默认:0.6
highlightAlpha?: number; // 高亮元素透明度。默认:0.6
resizerColor?: string; // 图片尺寸器颜色。默认:#4182D9
resizerSize?: number; // 图片尺寸器大小。默认:5
marginIndicatorSize?: number; // 页边距指示器长度。默认:35
marginIndicatorColor?: string; // 页边距指示器颜色。默认:#BABABA
margins?: IMargin; // 页面边距。默认:[100, 120, 100, 120]
pageMode?: PageMode; // 纸张模式:连页、分页。默认:分页
tdPadding?: number; // 单元格内边距。默认:5
defaultTrMinHeight?: number; // 默认表格行最小高度。默认:40
defaultColMinWidth?: number; // 默认表格列最小宽度(整体宽度足够时应用,否则会按比例缩小)。默认:40
defaultHyperlinkColor?: string; // 默认超链接颜色。默认:#0000FF
header?: IHeader; // 页眉信息。{top?:number; maxHeightRadio?:MaxHeightRatio;}
footer?: IFooter; // 页脚信息。{bottom?:number; maxHeightRadio?:MaxHeightRatio;}
pageNumber?: IPageNumber; // 页码信息。{bottom:number; size:number; font:string; color:string; rowFlex:RowFlex; format:string; numberType:NumberType;}
paperDirection?: PaperDirection; // 纸张方向:纵向、横向
inactiveAlpha?: number; // 正文内容失焦时透明度。默认值:0.6
historyMaxRecordCount: number; // 历史(撤销重做)最大记录次数。默认:100次
printPixelRatio: number; // 打印像素比率(值越大越清晰,但尺寸越大)。默认:3
wordBreak: WordBreak; // 单词与标点断行:BREAK_WORD首行不出现标点&单词不拆分、BREAK_ALL按字符宽度撑满后折行。默认:BREAK_WORD
watermark?: IWatermark; // 水印信息。{data:string; color?:string; opacity?:number; size?:number; font?:string;}
control?: IControlOption; // 控件信息。 {placeholderColor?:string; bracketColor?:string; prefix?:string; postfix?:string;}
checkbox?: ICheckboxOption; // 复选框信息。{width?:number; height?:number; gap?:number; lineWidth?:number; fillStyle?:string; fontStyle?: string;}
cursor?: ICursorOption; // 光标样式。{width?: number; color?: string; dragWidth?: number; dragColor?: string;}
title?: ITitleOption; // 标题配置。{ defaultFirstSize?: number; defaultSecondSize?: number; defaultThirdSize?: number defaultFourthSize?: number; defaultFifthSize?: number; defaultSixthSize?: number;}
placeholder?: IPlaceholder; // 编辑器空白占位文本
mode?: EditorMode // 编辑器模式:编辑、清洁(不显示视觉辅助元素。如:分页符)、只读。默认:编辑
defaultType?: string // 默认元素类型。默认:TEXT
defaultFont?: string // 默认字体。默认:Yahei
defaultSize?: number // 默认字号。默认:16
minSize?: number // 最小字号。默认:5
maxSize?: number // 最大字号。默认:72
defaultBasicRowMarginHeight?: number // 默认行高。默认:8
defaultRowMargin?: number // 默认行间距。默认:1
defaultTabWidth?: number // 默认tab宽度。默认:32
width?: number // 纸张宽度。默认:794
height?: number // 纸张高度。默认:1123
scale?: number // 缩放比例。默认:1
pageGap?: number // 纸张间隔。默认:20
underlineColor?: string // 下划线颜色。默认:#000000
strikeoutColor?: string // 删除线颜色。默认:#FF0000
rangeColor?: string // 选区颜色。默认:#AECBFA
rangeAlpha?: number // 选区透明度。默认:0.6
rangeMinWidth?: number // 选区最小宽度。默认:5
searchMatchColor?: string // 搜索高亮颜色。默认:#FFFF00
searchNavigateMatchColor?: string // 搜索导航高亮颜色。默认:#AAD280
searchMatchAlpha?: number // 搜索高亮透明度。默认:0.6
highlightAlpha?: number // 高亮元素透明度。默认:0.6
resizerColor?: string // 图片尺寸器颜色。默认:#4182D9
resizerSize?: number // 图片尺寸器大小。默认:5
marginIndicatorSize?: number // 页边距指示器长度。默认:35
marginIndicatorColor?: string // 页边距指示器颜色。默认:#BABABA
margins?: IMargin // 页面边距。默认:[100, 120, 100, 120]
pageMode?: PageMode // 纸张模式:连页、分页。默认:分页
tdPadding?: number // 单元格内边距。默认:5
defaultTrMinHeight?: number // 默认表格行最小高度。默认:40
defaultColMinWidth?: number // 默认表格列最小宽度(整体宽度足够时应用,否则会按比例缩小)。默认:40
defaultHyperlinkColor?: string // 默认超链接颜色。默认:#0000FF
header?: IHeader // 页眉信息。{top?:number; maxHeightRadio?:MaxHeightRatio;}
footer?: IFooter // 页脚信息。{bottom?:number; maxHeightRadio?:MaxHeightRatio;}
pageNumber?: IPageNumber // 页码信息。{bottom:number; size:number; font:string; color:string; rowFlex:RowFlex; format:string; numberType:NumberType;}
paperDirection?: PaperDirection // 纸张方向:纵向、横向
inactiveAlpha?: number // 正文内容失焦时透明度。默认值:0.6
historyMaxRecordCount: number // 历史(撤销重做)最大记录次数。默认:100次
printPixelRatio: number // 打印像素比率(值越大越清晰,但尺寸越大)。默认:3
wordBreak: WordBreak // 单词与标点断行:BREAK_WORD首行不出现标点&单词不拆分、BREAK_ALL按字符宽度撑满后折行。默认:BREAK_WORD
watermark?: IWatermark // 水印信息。{data:string; color?:string; opacity?:number; size?:number; font?:string;}
control?: IControlOption // 控件信息。 {placeholderColor?:string; bracketColor?:string; prefix?:string; postfix?:string;}
checkbox?: ICheckboxOption // 复选框信息。{width?:number; height?:number; gap?:number; lineWidth?:number; fillStyle?:string; fontStyle?: string;}
cursor?: ICursorOption // 光标样式。{width?: number; color?: string; dragWidth?: number; dragColor?: string;}
title?: ITitleOption // 标题配置。{ defaultFirstSize?: number; defaultSecondSize?: number; defaultThirdSize?: number defaultFourthSize?: number; defaultFifthSize?: number; defaultSixthSize?: number;}
placeholder?: IPlaceholder // 编辑器空白占位文本
}
```
@@ -67,9 +67,9 @@ interface IEditorOption {
```typescript
interface IHeader {
top?: number; // 距离页面顶部大小。默认:30
maxHeightRadio?: MaxHeightRatio; // 占页面最大高度比。默认:HALF
disabled?: boolean; // 是否禁用
top?: number // 距离页面顶部大小。默认:30
maxHeightRadio?: MaxHeightRatio // 占页面最大高度比。默认:HALF
disabled?: boolean // 是否禁用
}
```
@@ -77,9 +77,9 @@ interface IHeader {
```typescript
interface IFooter {
bottom?: number; // 距离页面底部大小。默认:30
maxHeightRadio?: MaxHeightRatio; // 占页面最大高度比。默认:HALF
disabled?: boolean; // 是否禁用
bottom?: number // 距离页面底部大小。默认:30
maxHeightRadio?: MaxHeightRatio // 占页面最大高度比。默认:HALF
disabled?: boolean // 是否禁用
}
```
@@ -87,16 +87,16 @@ interface IFooter {
```typescript
interface IPageNumber {
bottom?: number; // 距离页面底部大小。默认:60
size?: number; // 字体大小。默认:12
font?: string; // 字体。默认:Yahei
color?: string; // 字体颜色。默认:#000000
rowFlex?: RowFlex; // 行对齐方式。默认:CENTER
format?: string; // 页码格式。默认:{pageNo}。示例:第{pageNo}页/共{pageCount}页
numberType?: NumberType; // 数字类型。默认:ARABIC
disabled?: boolean; // 是否禁用
startPageNo?: number; // 起始页码。默认:1
fromPageNo?: number; // 从第几页开始出现页码。默认:0
bottom?: number // 距离页面底部大小。默认:60
size?: number // 字体大小。默认:12
font?: string // 字体。默认:Yahei
color?: string // 字体颜色。默认:#000000
rowFlex?: RowFlex // 行对齐方式。默认:CENTER
format?: string // 页码格式。默认:{pageNo}。示例:第{pageNo}页/共{pageCount}页
numberType?: NumberType // 数字类型。默认:ARABIC
disabled?: boolean // 是否禁用
startPageNo?: number // 起始页码。默认:1
fromPageNo?: number // 从第几页开始出现页码。默认:0
}
```
@@ -104,11 +104,11 @@ interface IPageNumber {
```typescript
interface IWatermark {
data: string; // 文本。
color?: string; // 颜色。默认:#AEB5C0
opacity?: number; // 透明度。默认:0.3
size?: number; // 字体大小。默认:200
font?: string; // 字体。默认:Yahei
data: string // 文本。
color?: string // 颜色。默认:#AEB5C0
opacity?: number // 透明度。默认:0.3
size?: number // 字体大小。默认:200
font?: string // 字体。默认:Yahei
}
```
@@ -116,10 +116,10 @@ interface IWatermark {
```typescript
interface IPlaceholder {
data: string; // 文本。
color?: string; // 颜色。默认:#DCDFE6
opacity?: number; // 透明度。默认:1
size?: number; // 字体大小。默认:16
font?: string; // 字体。默认:Yahei
data: string // 文本。
color?: string // 颜色。默认:#DCDFE6
opacity?: number // 透明度。默认:1
size?: number // 字体大小。默认:16
font?: string // 字体。默认:Yahei
}
```
+1 -1
View File
@@ -20,4 +20,4 @@ export function myPlugin(editor: Editor, options?: Option) {
```javascript
instance.add(myPlugin, options?: Option)
```
```
+1 -1
View File
@@ -129,4 +129,4 @@ interface IElement {
listStyle?: ListStyle;
listWrap?: boolean;
}
```
```
+1 -1
View File
@@ -18,4 +18,4 @@ instance.register.shortcutList([
callback: (command: Command) => any;
}
])
```
```
+42 -1
View File
@@ -1,124 +1,165 @@
# 内部快捷键
## Backspace
功能:向前删除
## Delete
功能:向后删除
## Enter
功能:换行
## Shift + Enter
功能:列表内换行
## ←
功能:向左移动
## Shift + ←
功能:向左缩放选区
## →
功能:向右移动
## Shift + →
功能:向右缩放选区
## ↑
功能:向上移动
## Shift + ↑
功能:向上缩放选区
## ↓
功能:向下移动
## Shift + ↓
功能:向下缩放选区
## Esc
功能:退出格式刷
## Tab
功能:增加缩进
## Ctrl/Cmd + Z
功能:撤销
## Ctrl/Cmd + Y
功能:重做
## Ctrl/Cmd + C
功能:复制
## Ctrl/Cmd + X
功能:剪切
## Ctrl/Cmd + A
功能:全选
## Ctrl/Cmd + S
功能:保存
## Ctrl/Cmd + {
功能:增大字体
## Ctrl/Cmd + }
功能:减小字体
## Ctrl/Cmd + B
功能:加粗
## Ctrl/Cmd + I
功能:斜体
## Ctrl/Cmd + U
功能:下划线
## Ctrl/Cmd + L
功能:行居左
## Ctrl/Cmd + E
功能:行居中
## Ctrl/Cmd + R
功能:行居右
## Ctrl/Cmd + J
功能:两端对齐
## Ctrl + Shift + X
功能:删除线
## Ctrl/Cmd + Shift + >
功能:上标
## Ctrl/Cmd + Shift + <
功能:下标
## Ctrl + Alt/Option + 0
功能:正文
## Ctrl + Alt/Option + 1
功能:标题一
## Ctrl + Alt/Option + 2
功能:标题二
## Ctrl + Alt/Option + 3
功能:标题三
## Ctrl + Alt/Option + 4
功能:标题四
## Ctrl + Alt/Option + 5
功能:标题五
## Ctrl + Alt/Option + 6
功能:标题六
## Ctrl/Cmd + Shift + I
功能:无序列表
## Ctrl/Cmd + Shift + U
功能:有序列表
功能:有序列表
+43 -27
View File
@@ -2,17 +2,17 @@
> 所见即所得的富文本编辑器。
得益于光标及文字排版的完全自行实现。绘制底层也可由svg渲染,详见代码:[feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg);或借助pdfjs的完成pdf的绘制,详见代码:[feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf)。
得益于光标及文字排版的完全自行实现。绘制底层也可由 svg 渲染,详见代码:[feature/svg](https://github.com/Hufe921/canvas-editor/tree/feature/svg);或借助 pdfjs 的完成 pdf 的绘制,详见代码:[feature/pdf](https://github.com/Hufe921/canvas-editor/tree/feature/pdf)。
::: warning
官方仅提供编辑器核心层npm包,菜单栏或其他外部工具可自行参考文档扩展,或直接参考[官方](https://github.com/Hufe921/canvas-editor)实现,详见[demo](https://hufe.club/canvas-editor/)。
官方仅提供编辑器核心层 npm 包,菜单栏或其他外部工具可自行参考文档扩展,或直接参考[官方](https://github.com/Hufe921/canvas-editor)实现,详见[demo](https://hufe.club/canvas-editor/)。
:::
## 功能点
- 富文本操作(撤销、重做、字体、字号、加粗、斜体、上下标、对齐方式、标题、列表.....)
- 插入元素(表格、图片、链接、代码块、分页符、Math公式、日期选择器、内容块......)
- 打印(基于canvas转图片、pdf绘制)
- 插入元素(表格、图片、链接、代码块、分页符、Math 公式、日期选择器、内容块......)
- 打印(基于 canvas 转图片、pdf 绘制)
- 控件(单选、文本、复选框)
- 右键菜单(内部、自定义)
- 快捷键(内部、自定义)
@@ -28,9 +28,9 @@
- 计算性能
- 控件规则
- 表格分页
- vue、react等框架开箱即用版
- vue、react 等框架开箱即用版
## Step. 1: 下载npm包
## Step. 1: 下载 npm
```sh
npm i @hufe921/canvas-editor --save
@@ -45,35 +45,51 @@ npm i @hufe921/canvas-editor --save
## Step. 3: 实例化编辑器
- 仅包含正文内容
```javascript
import Editor from "@hufe921/canvas-editor"
new Editor(document.querySelector(".canvas-editor"), [
```javascript
import Editor from '@hufe921/canvas-editor'
new Editor(
document.querySelector('.canvas-editor'),
[
{
value: "Hello World"
value: 'Hello World'
}
], {})
],
{}
)
```
- 包含正文、页眉、页脚内容
```javascript
import Editor from "@hufe921/canvas-editor"
new Editor(document.querySelector(".canvas-editor"), {
header: [{
value: "Header",
rowFlex: RowFlex.CENTER
}],
main: [{
value: "Hello World"
}],
footer: [{
value: 'canvas-editor',
size: 12
}]
}, {})
```javascript
import Editor from '@hufe921/canvas-editor'
new Editor(
document.querySelector('.canvas-editor'),
{
header: [
{
value: 'Header',
rowFlex: RowFlex.CENTER
}
],
main: [
{
value: 'Hello World'
}
],
footer: [
{
value: 'canvas-editor',
size: 12
}
]
},
{}
)
```
## Step. 4: 配置编辑器
详见下一节
详见下一节