用于数学公式在HTML中编辑显示和导出到Word文档中的系统

文档序号:1505363 发布日期:2020-02-07 浏览:5次 >En<

阅读说明:本技术 用于数学公式在HTML中编辑显示和导出到Word文档中的系统 (System for editing, displaying and exporting mathematical formulas in HTML to Word documents ) 是由 李海涛 张德春 尹山 张雷 郑焕舒 于 2019-09-25 设计创作,主要内容包括:本发明涉及数据信息处理技术领域,涉及数学公式的编辑显示和导出到Word文档中的系统。该系统包括:数学公式模板生成器,使用数学公式编辑器MathQuill生成数学公式的HTML元素模板;数据清洗器,用于将HTML元素集导出成字符串,利用正则表达式整理成带格式标记的文本数据,抹去没有数据的空元素、跟格式无关的标记,提炼出公式内各个模块及其子模块的数据与格式标记;格式转化器,用于将加上格式标记到的数学公式转为MathML格式的文本;数学公式渲染器,用于将所述的MathML格式的文本在HTML中显示为数学公式;数学公式输出器,用于实现数学公式的网页打印和导出到Word文档中。本发明的系统,为用户提供一种方便快捷的网页数学公式编辑器,并能实现网页打印和导出到Word文档中。(The invention relates to the technical field of data information processing, in particular to a system for editing, displaying and exporting mathematical formulas into Word documents. The system comprises: a mathematical formula template generator, which uses a mathematical formula editor MathQuill to generate an HTML element template of a mathematical formula; the data cleaner is used for exporting the HTML element set into a character string, utilizing the regular expression to arrange text data with format marks, erasing null elements without data and marks irrelevant to the format, and extracting data and format marks of each module and sub-modules thereof in the formula; the format converter is used for converting the mathematical formula added with the format mark into a text in a MathML format; the mathematical formula renderer is used for displaying the text in the MathML format in the HTML as a mathematical formula; and the mathematical formula outputter is used for printing the webpage realizing the mathematical formula and exporting the webpage to a Word document. The system of the invention provides a convenient and fast web page mathematical formula editor for users, and can realize the printing and exporting of web pages to Word documents.)

用于数学公式在HTML中编辑显示和导出到Word文档中的系统

技术领域

本发明涉及数据信息处理技术领域,涉及一种数学公式在HTML中编辑显 示和导出到Word文档中的系统。

背景技术

在使用计算机办公过程中,经常会用到数学公式,发现数学公式在网页的编 辑、显示和在Word文档中的显示,存在以下几个问题:

(1)LaTeX语言编写数学公式方便快捷,但是需要掌握TeX语言的几乎所 有记述规则以及代码编写能力,对于非专业人士而言,代码编写存在较高的困难 性和复杂性。

(2)MathML格式兼容性较差,只能在FireFox浏览器中直接显示公式。

(3)目前Microsoft Office Word仅支持OMML格式的公式,不支持LaTeX 语言编写的数学公式。

(4)另外,市面上也缺少一种能够从网页编辑显示公式,然后能直接导出 到Word中的工具。

发明内容

为了解决现有技术中存在的问题,本发明提供一种用于数学公式在HTML 中编辑显示和导出到Word文档中的系统。本系统利用LaTeX公式编辑器、MathJax 网页公式可视化渲染技术、MathML以及Open XML SDK,实现数学公式从网页编 辑、显示、打印到在导出到Word文档中。

本发明解决其技术问题采用的技术手段是:用于数学公式在HTML中编辑 显示和导出到Word文档中的系统,包括:

数学公式模板生成器,使用数学公式编辑器MathQuill生成数学公式的 HTML元素模板;

数据清洗器,用于将HTML元素集导出成字符串,利用正则表达式整理成 带格式标记的文本数据,抹去没有数据的空元素、跟格式无关的标记,提炼出公 式内各个模块及其子模块的数据与格式标记;

格式转化器,用于将加上格式标记到的数学公式转为MathML格式的文本;

数学公式渲染器,用于将所述的MathML格式的文本在HTML中显示为数 学公式;

数学公式输出器,用于实现数学公式的网页打印和导出到Word文档中。

作为本发明的进一步改进,所述的格式转化器包括LaTeX文本生成单元和 LaTeX转MathML单元;所述LaTeX文本生成单元用于将MathQuill的用户键 盘输入记录中对应的各部分数据加上格式标记,得到数学公式的LaTeX文本; 所述LaTeX转MathML单元通过LaTeX2MathML格式转换工具,将LaTeX文 本转为MathML格式的文本。

作为本发明的进一步改进,所述的数学公式渲染器利用MathJax可视化渲染 功能,在浏览器中将MathML语言的公式渲染成HTML元素或SVG图片的可视 数学公式。

作为本发明的进一步改进,所述的数学公式输出器,包括网页打印单元;所 述的网页打印单元通过MathJax使用JavaScript引擎将数学公式以SVG矢量图 形的形式打印出来。

作为本发明的进一步改进,所述的所述的数学公式输出器包括Word导出单 元;所述的Word导出单元包括MathML文本转换器和Word文档生成器;MathML 文本转换器用于将格式转化器中生成的MathML文本转成Word可以识别的 OMML文本;Word文档生成器用于将OMML格式的文本***到Word文档中 的特定位置,即可在Word文档中显示正常的数学公式。

本发明的用于数学公式在HTML中编辑显示和导出到Word文档中的系统, 具有以下有益效果:

(1)在Web系统为需要编辑数学公式的用户提供一种方便快捷的数学公 式编辑器,在HTML中以所见即所得的形式显示公式。

在数学公式输出方面,提供两种方式,一种是网页打印,一种是导出到Word 文档中。可以方便灵活的对数学公式进行移植,并保留其公式格式。

附图说明

图1是本发明的用于数学公式在HTML中编辑显示和导出到Word文档中 的系统的结构框图;

图2是本发明的用于数学公式在HTML中编辑显示和导出到Word文档中 的系统操作流程图。

具体实施方式

下面结合附图和实施例对本发明的用于数学公式在HTML中编辑显示和导 出到Word文档中的系统进行进一步详细的阐述,以使本领域的技术人员能够更 好的理解本发明的技术方案和技术效果。

首先,对本实施例中出现的英文词汇进行解释:

HTML:可扩展的超文本标记语言;

MathQuill:是一个JavaScript库,实现了纯HTML、CSS和JS的所见即 所得的数学公式编辑;

Mathml:数学标记语言(Mathematical Markup Language);

OMML:是office的Mathml制定的数字标记语言;

MathJax:在浏览器上显示LaTeX公式的JavaScript框架;

LaTeX:一种基于TEX的排版系统;

MathJax:是一个JavaScript引擎,用来显示网络上的数学公式。它可以工 作于所有流行的浏览器上;

Open XML SDK:是Microsoft提供操作ooxml格式的接口类库,是c#实现 的。

实施例1如图1所示,本发明的用于数学公式在HTML中编辑显示和导出 到Word文档中的系统,主要包括以下五部分:

数学公式模板生成器,用于生成数学公式模板,使用开源的数学公式编辑器MathQuill作为公式编辑的辅助工具,通过选择给页面插件增加的按钮和键盘输 入,在MathQuill转换器内得到想要的数学公式的HTML元素模板。

数据清洗器,用于清洗以HTML元素集形式存在的数学公式。通过正则表 达式整理成带格式标记的文本数据,抹去没有数据的空元素、跟格式无关的标记, 提炼出公式内各个模块及其子模块的数据与格式标记。

LaTeX格式转化器,包括LaTeX文本生成功能和LaTeX转MathML功能。 将输入记录中对应的各部分数据加上格式标记,得到数学公式的LaTeX表述。 通过LaTeX2MathML格式转换工具,将LaTeX文本转为MathML格式的文本。

数学公式渲染器,用于在HTML中显示数学公式。利用MathJax强大的可 视化渲染功能,在浏览器中将MathML语言的公式渲染成HTML元素或SVG图 片的可视数学公式。

数学公式输出器,包括网页打印功能和导出Word功能。

其中,网页直接打印,通过MathJax使用JavaScript引擎解析成SVG矢量 图形,不会丢失其数学公式样式,以所见即所得的形式打印出来。

另外,导出到Word文档功能,包含两个模块,分别是:

MathML文本转换器,用于将生成的MathML文本转成Word可以识别的 OMML文本。

Word文档生成器,用于将OMML格式的文本***到Word文档中的特定 位置,即可在Word文档中显示正常的数学公式。

实施例2本发明的用于数学公式在HTML中编辑显示和导出到Word文档 中的系统,操作流程如图2所示,具体步骤如下:

S1、在系统中使用开源的数学公式编辑器MathQuill作为公式编辑的辅助工 具,通过点击预先在页面增加的按钮,在MathQuill转换器内生成对应的数学公 式HTML元素模板,填充具体的文本内容。

S2、将编辑好的数学公式HTML元素集导出成字符串,利用正则表达式进 行数据清洗,先清除没有数据或与数据无关的空元素,再消除跟格式无关的标记 或属性,整理得到新的带格式标记的文本数据,进一步提炼出公式内各个模块及 其子模块的数据与格式标记,形成模块与子模块信息列表。

S3、利用MathQuill内置的工具,将用户键盘的输入记录导出成为文本,遍 历S2得到的模块与子模块信息列表,将输入记录中与各模块、子模块对应的数 据追加上格式化标记,得到数学公式完整的LaTeX语言表述。

S4、生成的LaTeX文本,利用LaTeX2MathML作为格式转换工具,导出为 MathML格式文本,并补全所使用的MathML版本号信息。

S5、引入MathJax的可视化渲染功能,在浏览器中将MathML语言的公式 文本渲染成HTML元素或SVG图片的可视数学公式,恢复出数学公式最初的样 式。

S6、通过MathJax使用JavaScript引擎解析成SVG矢量图形,不会丢失其 数学公式样式,以所见即所得的形式打印出来。

S7、将S4中生成的MathML文本转成Word可以识别的OMML文本。基 于.NET和和OpenXML SDK技术,把OMML格式的文本***到Word文档中的 特定位置,即可在Word文档中显示正常的数学公式。

例如

Figure BDA0002214142840000051

A1、HTML:

<p><span class="mathquill-rendered-math"style="font-size:20px;"><span class="textarea"><textarea data-cke-editable="1" contenteditable="false"></textarea></span><span class="non-leaf" mathquill-command-id="4"><span class="scaled sqrt-prefix"style="transform: scale(1,0.850195);">√</span><span class="non-leaf sqrt-stem" mathquill-block-id="5"><spanmathquill-command-id="13">2</span><span mathquill-command-id="14">2</span></span></span></span><span>&nbsp;</span> <br></p>

A2、抹去跟格式无关的标记:

<p><span><span><textarea></textarea></span><span><span>√</span><span> <span>2</span><span>2</span></span></span></span><span>&nbsp;</span> <br></p>

A3、清除标签及无效标签:

<span><span><span>√</span><span><span>2</span><span>2</span></span></span></span>

A4、整理嵌套关系:

(span,(span,(span,√)(span,(span,2)(span,2))))

A5、合并子项:

(span,(span,√(span,22)))

A6、最终结果:

√(22)

A7、引入键盘输入记录:

\sqrt22

A8、导出LaTeX:

\sqrt{22}

A9、转换为MathML

<math><msqrt><mrow><mn>22</mn></mrow></msqrt></math>。

8页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多人协同文档编辑方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!