开源DCWriterLite,一个类似MS WORD的开源文书编辑器

地址 https://github.com/dcsoft-yyf/DCWriterLite

本开源软件的特色
1.纯前端组件。完全自定义的文档DOM结构,而不是类似TinyMCE/CKEditor等基于HTML DOM 开发的。
2.使用CANVAS来绘制文档界面,使用SVG来进行打印。
3.深度魔改Blazor Webassembly9.0开发的。
4.展示了一种编程技巧,将WinForm.NET程序移植到WASM开发。
5.表单录入和自由文本录入完美融合,适用于企业级开发。
6.以XML格式存储。
7.支持信创,能运行在Windows、统信、麒麟、方德等操作系统。

DCWriterLite 开源版功能清单

运行环境

  • 支持Windows、Linux、MacOS、iOS、安卓、统信、麒麟、方德等操作系统。
  • 支持Chrome、Firefox等浏览器。
  • 纯前端组件,不依赖服务器端,不依赖任何第三方组件。

文件操作:

  • 新建文件
  • 打开文件,支持XML格式。
  • 保存文件,支持XML格式。
  • 打印设置
  • 纸张类型
  • 纸张方向
  • 上下左右的边距设置
  • 全局性文档网格线
  • 打印预览

复制粘贴

  • 支持纯文本、私有格式的文档内容的复制粘贴

重做/撤销

  • 支持不限制次数的重做和撤销操作

文本样式

  • 支持粗体、斜体、下划线、删除线、字体名称、字体大小的设置
  • 文本、输入域、单元格的边框和背景色。

标尺

  • 支持横向和纵向标尺。
  • 支持拖拽标尺的刻度来设置页边距。

DCWriterLite 开源版功能清单

运行环境

  • 支持Windows、Linux、MacOS、iOS、安卓、统信、麒麟、方德等操作系统。
  • 支持Chrome、Firefox等浏览器。
  • 纯前端组件,不依赖服务器端,不依赖任何第三方组件。

文件操作:

  • 新建文件
  • 打开文件,支持XML格式。
  • 保存文件,支持XML格式。
  • 打印设置
  • 纸张类型
  • 纸张方向
  • 上下左右的边距设置
  • 全局性文档网格线
  • 打印预览

复制粘贴

  • 支持纯文本、私有格式的文档内容的复制粘贴

重做/撤销

  • 支持不限制次数的重做和撤销操作

文本样式

  • 支持粗体、斜体、下划线、删除线、字体名称、字体大小的设置
  • 文本、输入域、单元格的边框和背景色。

标尺

  • 支持横向和纵向标尺。
  • 支持拖拽标尺的刻度来设置页边距。
  • 支持拖拽标尺的刻度来设置段落边距。

段落样式

  • 支持行间距和段落间距

可编程DOM API接口

提供树状的DOM模型,用于表示文档中所有的内容。并提供以下DOM文档元素类型。

  • XTextDocument 文档元素

  • 表示文档根节点,是DOM树的操作的入口点。

  • XTextContainerElement 容器元素,是一个抽象类,是所有容器元素的基类。

  • 可以包含其他元素。

  • XTextImageElement 图片元素

  • 可以自由拖拽设置图片的大小

  • 只支持JPG\PNG\BMP格式。

  • XTextInputFieldElement 输入域元素

  • 输入域高亮度显示

  • 设置背景文本

  • 内容校验,包括必填项、最大值、最小值等。

  • XTextLineBreakElement 换行元素

  • 文本进行软回车,但不应用段落间距的设置。

  • XTextPageBreakElement 分页元素

  • 可以导致强制分页

  • XTextPageInfoElement 页码元素

  • 可以显示页码或者总页数

  • XTextParagraphFlagElement 段落标记元素

  • 可以设置为段落的首行缩进

  • 可以设置为段落的悬挂缩进

  • 可以设置为段落的对齐方式(靠左、居中、靠右、两端对齐)

  • 可以设置段落的行间距和段落间距

  • 可以设置数字列表和项目符号列表

  • XTextTableElement表格元素

  • 表格标题行

  • 合并拆分单元格

  • 鼠标拖拽来设置表格行的高度和表格列的宽度

  • 表格行设置强制分页

  • 表格行设置为不可跨页(不能被分页线分割)

  • XTextCheckBoxElement/XTextRadioElement 单选框/单选按钮元素

  • 可以设置为选中状态

  • 可以设置为不可编辑状态

  • 可以设置为必填状态

  • 文本多行

  • 支持拖拽标尺的刻度来设置段落边距。

段落样式

  • 支持行间距和段落间距

可编程DOM API接口

提供树状的DOM模型,用于表示文档中所有的内容。并提供以下DOM文档元素类型。

  • XTextDocument 文档元素
  • 表示文档根节点,是DOM树的操作的入口点。
  • XTextContainerElement 容器元素,是一个抽象类,是所有容器元素的基类。
  • 可以包含其他元素。
  • XTextImageElement 图片元素
  • 可以自由拖拽设置图片的大小
  • 只支持JPG\PNG\BMP格式。
  • XTextInputFieldElement 输入域元素
  • 输入域高亮度显示
  • 设置背景文本
  • 内容校验,包括必填项、最大值、最小值等。
  • XTextLineBreakElement 换行元素
  • 文本进行软回车,但不应用段落间距的设置。
  • XTextPageBreakElement 分页元素
  • 可以导致强制分页
  • XTextPageInfoElement 页码元素
  • 可以显示页码或者总页数
  • XTextParagraphFlagElement 段落标记元素
  • 可以设置为段落的首行缩进
  • 可以设置为段落的悬挂缩进
  • 可以设置为段落的对齐方式(靠左、居中、靠右、两端对齐)
  • 可以设置段落的行间距和段落间距
  • 可以设置数字列表和项目符号列表
  • XTextTableElement表格元素
  • 表格标题行
  • 合并拆分单元格
  • 鼠标拖拽来设置表格行的高度和表格列的宽度
  • 表格行设置强制分页
  • 表格行设置为不可跨页(不能被分页线分割)
  • XTextCheckBoxElement/XTextRadioElement 单选框/单选按钮元素
  • 可以设置为选中状态
  • 可以设置为不可编辑状态
  • 可以设置为必填状态
  • 文本多行