目录

基础配置

  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' 属性接受两种类型数据:

  1. 一个funcation,此function返回true或false,用于决定是否允许编辑正文;
  2. 一个带有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' 属性接受两种类型数据:

  1. 一个funcation,此function返回true或false,用于决定是否允许打印;
  2. 一个带有code属性的对象,如:{code: "return condition"};

allowPrintallowPrintScript的用法和allowEditallowEditScript是一样的。

allowHistory

设置是否允许查看修改痕迹。 可选值为:'y','n','s',默认值:'y'。

'y' 表示允许查看修改痕迹;

'n' 表示禁止查看修改痕迹;

's' 表示是否允许查看修改痕迹,由 'allowHistoryScript' 属性的计算结果决定。 'allowHistoryScript' 属性接受两种类型数据:

  1. 一个funcation,此function返回true或false,用于决定是否允许查看修改痕迹;
  2. 一个带有code属性的对象,如:{code: "return condition"};

allowHistoryallowHistoryScript的用法和allowEditallowEditScript是一样的。

allowHandwriting

设置是否允许手写签批。 可选值为:'y','n','s',默认值:'y'。

'y' 表示允许手写签批;

'n' 表示禁止手写签批;

's' 表示是否允许手写签批,由 'allowHandwritingScript' 属性的计算结果决定。 'allowHandwritingScript' 属性接受两种类型数据:

  1. 一个funcation,此function返回true或false,用于决定是否允许手写签批;
  2. 一个带有code属性的对象,如:{code: "return condition"};

allowHandwritingallowHandwritingScript的用法和allowEditallowEditScript是一样的。

allowHandwritingLog

设置有手写签批记录的情况下,是否允许查看手写签批记录。 可选值为:'y','n','s',默认值:'y'。

'y' 表示允许查看手写签批记录;

'n' 表示禁止查看手写签批记录;

's' 表示是否允许查看手写签批记录,由 'allowHandwritingLogScript' 属性的计算结果决定。 'allowHandwritingLogScript' 属性接受两种类型数据:

  1. 一个funcation,此function返回true或false,用于决定是否允许手写签批;
  2. 一个带有code属性的对象,如:{code: "return condition"};

allowHandwritingLogallowHandwritingLogScript的用法和allowEditallowEditScript是一样的。

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();