DocEditor编辑器的许多功能都同设置编辑器参数实现。要配置编辑器参数,需要在编辑器初始化时传入第二个参数options:
const editor = await DocEditor.createEditor(div, {
//此处配置编辑器参数
//...
//如通过base参数配置编辑器路径
'base': './doceditor/'
}).load();
本章节中,我们介绍主要的编辑器的基本配置参数。
base
在前面的章节中,我们介绍了在模块化开发中,我们需要将DocEditor的public目录打包到输出目录,所以就必须设置base参数,用于指定public所在的输出路径。
而通过<script>引入时,DocEditor会根据引入地址自动查找public目录,一般情况下就不需要配置了。当然如果您的public目录和引入的js文件没有部署在同一路径中,或通过其他动态引入方式引入的DocEditor的核心js文件(如通过eval等方式),那就需要设置base参数。
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
'base': './doceditor/'
}).load();
base参数可以设置相对路径,如:./doceditor/,或者doceditor/;
也可以设置cdn地址,如:https://cdn.jsdelivr.net/npm/@o2oa/doceditor/editor/;
请不要忘记最后的“/”,如果不配置最后的“/”,你应该配置为:
./doceditor/public
doceditor/public
https://cdn.jsdelivr.net/npm/@o2oa/doceditor/editor/public
……
基础配置
readonly
设置编辑器是否为只读。布尔型,默认为 false;
mobile
设置编辑器是否以移动端模式展现。布尔型,默认为 false;
allowEdit
设置正文内容是否允许编辑。可选值为:'y','n','s',默认值:'y'。
'y' 表示允许编辑正文;
'n' 表示禁止编辑正文;
's' 表示是否允许编辑正文,由 'allowEditScript' 属性的计算结果决定。 'allowEditScript' 属性接受两种类型数据:
- 一个funcation,此function返回true或false,用于决定是否允许编辑正文;
- 一个带有code属性的对象,如:{code: "return condition"};
下面的示例展示如何使用脚本控制正文是否允许编辑
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
allowEdit: 's',
allowEditScript: ()=>{
//this指向当前编辑器对象
//processInfo是编辑器的一个配置项,您可以在processInfo中存放文档或流程实例相关的数据
//此处我们假设processInfo中已经存入控制正文编辑的canEditorFiletext值
const isCreator = this.options.processInfo.canEditorFiletext;
return isCreator;
}
}).load();
//下面的写法与上述代码等价
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
allowEdit: 's',
allowEditScript: {
code: 'return this.options.processInfo.canEditorFiletext;'
}
}).load();
allowPrint
设置是否允许打印(打印功能是将文档转换为Word后,打开word文档进行打印)。 可选值为:'y','n','s',默认值:'y'。
'y' 表示允许打印;
'n' 表示禁止打印;
's' 表示是否允许打印,由 'allowPrintScript' 属性的计算结果决定。 'allowPrintScript' 属性接受两种类型数据:
- 一个funcation,此function返回true或false,用于决定是否允许打印;
- 一个带有code属性的对象,如:{code: "return condition"};
allowPrint和allowPrintScript的用法和allowEdit与allowEditScript是一样的。
allowHistory
设置是否允许查看修改痕迹。 可选值为:'y','n','s',默认值:'y'。
'y' 表示允许查看修改痕迹;
'n' 表示禁止查看修改痕迹;
's' 表示是否允许查看修改痕迹,由 'allowHistoryScript' 属性的计算结果决定。 'allowHistoryScript' 属性接受两种类型数据:
- 一个funcation,此function返回true或false,用于决定是否允许查看修改痕迹;
- 一个带有code属性的对象,如:{code: "return condition"};
allowHistory和allowHistoryScript的用法和allowEdit与allowEditScript是一样的。
allowHandwriting
设置是否允许手写签批。 可选值为:'y','n','s',默认值:'y'。
'y' 表示允许手写签批;
'n' 表示禁止手写签批;
's' 表示是否允许手写签批,由 'allowHandwritingScript' 属性的计算结果决定。 'allowHandwritingScript' 属性接受两种类型数据:
- 一个funcation,此function返回true或false,用于决定是否允许手写签批;
- 一个带有code属性的对象,如:{code: "return condition"};
allowHandwriting和allowHandwritingScript的用法和allowEdit与allowEditScript是一样的。
allowHandwritingLog
设置有手写签批记录的情况下,是否允许查看手写签批记录。 可选值为:'y','n','s',默认值:'y'。
'y' 表示允许查看手写签批记录;
'n' 表示禁止查看手写签批记录;
's' 表示是否允许查看手写签批记录,由 'allowHandwritingLogScript' 属性的计算结果决定。 'allowHandwritingLogScript' 属性接受两种类型数据:
- 一个funcation,此function返回true或false,用于决定是否允许手写签批;
- 一个带有code属性的对象,如:{code: "return condition"};
allowHandwritingLog和allowHandwritingLogScript的用法和allowEdit与allowEditScript是一样的。
canScale
设置是否允许修改显示缩放比例。 布尔型,默认值:true。
fullWidth
设置是否将输入的空格字符全部转换为全角。 布尔型,默认值:true。
textIndent
设置是否在段落首行自动缩进两个全角空格。 布尔型,默认值:true。
canFullScreen
设置是否允许全屏显示。 布尔型,默认值:true。
当设置canFullScreen为true时,会出现全屏按钮,默认情况下,基于document.body进行全屏展现。你可以设置fullScreenDom配置项,来指定全屏时参照的dom对象。
fullScreenDom配置项接受一个Element对象,或是 一个dom对象选择器字符串。
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
canFullScreen: true,
//参照id为myContentDiv的dom对象全屏
fullScreenDom: '#myContentDiv'
}).load();
toWordSeal
转换word时是否转换图片章,布尔型,默认值:true。
firstPageNumber
转换word时第一页是否显示页码,布尔型,默认值:false。
wordConversionEncryption
转换word时是否启用文档保护,布尔型,默认值:false。
recordScale
是否记录用户设置的缩放比例,下次打开时以这个比例显示,布尔型,默认值:false。
autoScale
是否自动调整比例。当屏幕足够大,显示100%,当屏幕不足以显示100%比例时,自动将宽度缩小到展现文档内容, 布尔型,默认值:true。
user
设置当前用户。json对象,必须包含name值。
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
user: {
name: '张三',
//用户其他信息
...
}
}).load();
activity
设置当前文档的状态。在流程中,一般是设置为流程节点的信息。json对象,必须包含name值。
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
activity: {
name: '核稿',
//其他信息
...
}
}).load();
processInfo
设置当前文档的信息,它是一个json对象。在流程中,一般是设置流程实例的相关信息,编辑器不会主动使用这些信息,但您可以在编辑器相关事件,以及与后端交互服务中使用到它。
docId
当前文档的唯一标识,一般情况下是流程实例的id。
zIndex
设置编辑器的z-index样式属性
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
zIndex: {
toolbar: 2000, //操作条的z-inde值
histroy: 20000, //痕迹记录容器的z-inde值
fullScreen: 1000000 //全屏模式的基础z-index值,手写签批的各种工具层和记录查看界面都是基于该属性
}
}).load();
handwirting
设置手写签批相关的参数及操作条的设置,如果不设置则使用默认值
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
handwriting: { //手写签批参数
notice: true, //如果提交手写签批的时候,用户当前未打开手写签批,且系统中存在该用户的未提交签批内容,系统是否提示用户打开手写签批
lineWidth : 1, //画笔初始粗细,px
color : "#000000", //画笔初始颜色值
eraserRadiusSize: 20, //橡皮初始粗细,px
fontSize: "16", //输入法初始字体大小, px
fontSizeList: ["10", "12", "14", "16", "18", "24", "32", "48"], //字体大小可选值
pageHeight: 1000, //每页canvas高度,最后1页取实际高度,需要注意的是不同浏览器对canvas的尺寸都是有不同限制的
inputEnable: true, //是否启用输入法功能
eraserEnable: true, //是否启用橡皮功能
tools: [ //操作条位置和启用操作,|表示分隔线
"|",
"undo", //撤销
"redo", "|", //重做
"eraser", //橡皮
"input", //输入法
"pen", "|", //笔画
"eraserRadius", //橡皮尺寸
"size", //笔画粗细
"color", //笔画颜色和输入法颜色
"fontSize", "|", //输入法尺寸
"reset" //撤销
]
}
}).load();
handwirtingLog
设置手写历史记录界面的参数,colorList属性为不带正文背景记录展现的颜色值可选列表。当签批记录超过该列表长度,系统会产生随机颜色。
const editor = await DocEditor.createEditor(div, {
//通过base参数配置编辑器路径
base: './doceditor/',
handwritingLog: { //手写历史记录界面
colorList: [ //不带背景签批记录展现的颜色值列表,当签批记录超过该列表长度,系统会产生随机颜色
"#00b050","#4f81bd","#BAE637", "#36CFC9",
"#5C0011", "#1890FF","#135200", "#906EDB",
"#391085", "#FF85C0","#FA8C16","#061178",
"#9E1068","#D4380D","#FFD300", "#333333"
]
}
}).load();