发明内容
(一)要解决的技术问题
本发明要解决的技术问题为:如何使得从富文本编辑器显示的公式图片就能得到可编辑的公式文本数据。
(二)技术方案
为了解决该技术问题,根据本发明的一方面,提出了一种编辑公式的方法,该方法包括:
公式编辑器编辑公式,生成公式图片和公式文本数据;
将公式图片和公式文本数据发送给富文本编辑器;
富文本编辑器关联存储公式图片和公式文本数据,在文本域中显示公式图片,并在公式图片上动态添加点击事件,该事件为点击时调用与公式图片关联存储的公式文本数据并发送给公式编辑器。
优选地,该方法还包括:
公式图片被点击时,富文本编辑器将与该公式图片关联存储的公式文本数据发送给公式编辑器。
优选地,该方法还包括:
公式编辑器根据富文本编辑器发送过来的公式文本数据生成可以修改的公式,根据修改后的公式生成新的公式图片和新的公式文本数据。
优选地,该方法还包括:
公式编辑器将新的公式图片和新的公式文本数据,发送给富文本编辑器;富文本编辑器用新的公式图片和新的公式文本数据替换原来储存的公式图片和公式文本数据,显示新的公式图片。
优选地,该方法还包括:
在将公式图片和公式文本数据发送给富文本编辑器时,对公式文本数据进行加密处理,在将公式图片对应的公式文本数据发送给公式编辑器时,对加密的公式文本数据进行解密处理。
优选地,该方法还包括:
富文本编辑器以插件的形式调用公式编辑器。
根据本发明的另一方面,提出了一种编辑公式的系统,其特征在于,该系统包括:
公式编辑器编辑公式,生成公式图片和公式文本数据;
传递模块,将公式编辑器生成的公式图片和公式文本数据传送给富文本编辑器;
富文本编辑器,关联存储公式图片和公式文本数据,在文本域中显示公式图片,在公式图片上动态添加点击事件,所述点击事件为调用与公式图片关联存储的公式文本数据并通过传递模块发送给公式编辑器。
优选地,所述富文本编辑器,在公式图片被点击时,将与该公式图片关联存储的公式文本数据通过传递模块发送给公式编辑器;所述公式编辑器,根据接收到的公式文本数据生成可以修改的公式,根据修改后的公式生成新的公式图片和新的公式文本数据,发送给富文本编辑器。
优选地,所述富文本编辑器,用新的公式图片和新的公式文本数据替换原来储存的公式图片和公式文本数据,显示新的公式图片。
优选地,所述传递模块,进一步包括加密单元和解密单元,在将公式图片和公式文本数据发送给富文本编辑器时,加密单元对公式文本数据进行加密处理;在将公式图片对应的公式文本数据发送给公式编辑器时,解密单元对加密的公式文本数据进行解密处理。(三)有益效果
通过以上技术方案,本发明能达到以下技术效果:由于生成的公式存在对应的公式图片和公式文本数据,因此可以在富文本编辑器中以图片形式显示公式,并可以以文本数据形式将公式返回到公式编辑器中,直接得到可以编辑修改的公式数据,从而修改时无需重新开始编辑公式,提高了修改公式的效率。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
参见图1,本发明的一个实施例提出了一种编辑公式的方法,包括如下步骤:
S1:公式编辑器编辑公式,生成公式图片和公式文本数据。
S2:将公式图片和公式文本数据发送给富文本编辑器。
S3:富文本编辑器关联存储公式图片和公式文本数据,在文本域显示公式图片,并在公式图片上动态添加点击事件,该事件为点击时调用与公式图片关联存储的公式文本数据发送给公式编辑器。
可见,该实施例中由于生成的公式存在对应的公式图片和公式文本数据,因此可以在富文本编辑器中以图片形式显示公式,并可以以文本数据形式将公式返回给公式编辑器,直接得到可以编辑公式数据,从而修改时无需重新开始编辑公式,提高了修改公式的效率。
另外,该实施例还可在步骤S3之后包括:
S4:公式图片被点击时,富文本编辑器将与该公式图片关联存储的公式文本数据发送给公式编辑器。
S5:公式编辑器根据富文本编辑器发送过来的公式文本数据生成可以修改的公式,根据修改后的公式生成新的公式图片和新的公式文本数据。
S6:公式编辑器将新的公式图片和新的公式文本数据,发送给富文本编辑器;富文本编辑器用新的公式图片和新的公式文本数据替换原来储存的公式图片和公式文本数据,显示新的公式图片。
步骤S4-S6具体描述了对富文本编辑器显示的公式进行修改的各个流程,由于无需重新开始编辑公式,因此提高了修改公式的效率。显然实施了步骤S4之后,步骤S5和S6并不是必须的,公式编辑器也可以将接收到的文本编辑器发过来的公式存储起来或用于其他方面。同理,实施了步骤S5之后,步骤S6也不是必须的,公式编辑器也可以将修改后的公式存储或用于其他方面。
为了避免公式文本数据在传递过程中出现丢失、紊乱,该实施例还可包括这样的处理:在将公式图片和公式文本数据发送给富文本编辑器时,对公式文本数据进行加密处理,在将公式图片对应的公式文本数据发送给公式编辑器时,对加密的公式文本数据进行解密处理。
优选地,该实施例还可包括这样的处理:富文本编辑器以插件的形式调用公式编辑器。这样有效利用了现有资源,方法简单可行。
参见图2,本发明的另一个实施例提出了一种编辑公式的系统,该系统包括:
公式编辑器1,编辑公式,生成公式图片和公式文本数据;
传递模块2,将公式编辑器生成的公式图片和公式文本数据传送给富文本编辑器;
富文本编辑器3,关联存储公式图片和公式文本数据,在文本域中显示公式图片,在公式图片上动态添加点击事件,所述点击事件为调用与公式图片关联存储的公式文本数据并通过传递模块发送给公式编辑器。
可见,该实施例中由于生成的公式存在对应的公式图片和公式文本数据,因此可以在富文本编辑器3中以图片形式显示公式,并可以以文本数据形式将公式返回到公式编辑器1中,使得富文本编辑器3显示的公式便于修改。
为了实现对公式的修改,所述富文本编辑器3,在公式图片被点击时,将与该公式图片关联存储的公式文本数据通过传递模块发送给公式编辑器1;所述公式编辑器1,根据接收到的公式文本数据生成可以修改的公式,根据修改后的公式生成新的公式图片和新的公式文本数据。
为了实现对公式的更新显示,所述公式编辑器1,将新的公式图片和新的公式文本数据发送给所述富文本编辑器3;所述富文本编辑器3,用新的公式图片和新的公式文本数据替换原来储存的公式图片和公式文本数据,显示新的公式图片。
为了防止公式文本数据在传递过程中出现丢失、紊乱,所述传递模块2,进一步包括加密单元和解密单元,在将公式图片和公式文本数据发送给富文本编辑器3时,加密单元对公式文本数据进行加密处理;在将公式图片对应的公式文本数据发送给公式编辑器1时,解密单元对加密的公式文本数据进行解密处理。
下面通过一个具体的例子,来更为详细的说明本发明一个较佳实施例的实现过程。
该较佳实施例选用的富文本编辑器为KindEditor,选用的公式编辑器为fMathEditor。KindEditor是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用KindEditor把传统的多行文本输入框替换为可视化的富文本输入框。fMath Editor是免费的公式编辑软件,可以使用MathML和LATEX或OMML标准来编辑公式。该较佳实施例在KindEditor编写了一个插件类来调用fMath Editor,编写了一个传递模块来在KindEditor和fMath Editor之间传递数据。公式文本数据采用MathML标准。MathML:Mathematical Markup Language,数学置标语言,是一种基于XML的标准,用来在互联网上书写数学符号和公式的置标语言。
参见图3,该过程包括如下步骤:
在步骤301,KindEditor调用fMath Editor。
在步骤302,fMath Editor编辑公式,注意如果是从步骤301进入步骤302,则步骤302是从头开始编辑公式,否则是对已有的公式进行修改。
在步骤303,fMath Editor根据编辑好的公式生成公式图片。
在步骤304,传递模块将从编辑好的公式得到的mathML数据加密;
在步骤305,传递模块将加密数据和图片发送给KindEditor。
在步骤306,KindEditor关联存储加密数据和图片。
在步骤307,KindEditor在文本域中显示图片。
在步骤308,KindEditor在图片上动态添加单击事件,该事件为图片被点击时则调用关联存储的加密数据,并调用传递模块处理加密数据。
在步骤309,检测KindEditor中显示公式的图片是否受到单击,没有则不进行操作,是则进入步骤310。
在步骤310,KindEditor调用与该图片关联存储的加密数据。
在步骤311,传递模块将加密数据解密,还原成mathML数据。
在步骤312,传递模块将mathML数据发送到fMath Editor。
在步骤313,fMath Editor根据mathML数据生成公式,然后转到步骤302。
然后,在步骤302对生成的公式进行编辑,经过前述步骤303-308处理之后在KindEditor中以新的图片替换原来的图片,因此在KindEditor的文本域显示修改后的公式,如有必要,可以再次点击图片对公式进行修改。
虽然以上结合了具体的例子进行说明,但是本领域技术人员应该理解,本发明不限于具体的富文本编辑器和公式编辑器,可应用在视窗、安卓等平台来编辑公式,公式不限于数学公式,也可以是物理、化学等领域的公式。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。