掌桥专利:专业的专利平台
掌桥专利
首页

一种富文本数据处理方法、系统及相关设备

文献发布时间:2023-06-19 19:28:50


一种富文本数据处理方法、系统及相关设备

技术领域

本申请实施例涉及富文本数据处理技术领域,具体而言,涉及一种富文本数据处理方法、系统及相关设备。

背景技术

富文本相对于纯文本多携带了文本样式,文本样式用于表征某段文本的一些属性,比如加粗、斜体、文本颜色、高亮颜色等等。现有的富文本可划分多个段落,每个段落可包含一个或多个文本块(指富文本在内存的存储结构中的最小单位,由一小段文本以及其对应的样式组成)。

对于需要在线实时协同软件来说,需要尽可能的降低时延,提高实时性。现有的在线实时协同软件在传输富文本过程中,在富文本中每个段落的各个文本块中分别保存对应文本块的文本样式字段,以记录各个段落中的文本样式数据。

现有在线实时协同软件的富文本传输过程中,所需传输的实时数据中包含每个文本块的文本样式数据。然而文本的各个文本块中的文本样式往往会存在重复,导致需要重复存储相同的文本样式数据,会占用大量的数据带宽,也会导致实时数据传输的时延高。

发明内容

针对上述现有技术中存在的问题,本申请实施例提供了一种富文本数据处理方法,可以消除待传输的目标文档中重复的文档样式数据,减少了所需传输的数据量,降低数据带宽占用,降低了数据传输的时延。

第一方面,本申请实施例提供了一种富文本数据处理方法,可包括:

遍历目标文档中各个文本块中的文本样式数据,提取所述目标文档中不重复的文本样式数据存入文本样式表;

在每个文本块中记录自身的文本样式数据在所述文本样式表中的样式索引;

当需要传输所述目标文档时,将所述文本样式表、所述目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。

进一步地,所述提取所述目标文档中不重复的文本样式数据存入文本样式表,可包括:

依次判断所述目标文档的纯文本中的每个字符的当前文本样式与默认样式是否相同;若相同,则不将所述当前文本样式存入文本样式表;

若不同,则判断所述文本样式表中是否存在目标样式,所述目标样式与所述当前的文本样式一致;若不存在目标样式,则将所述当前文本样式存入文本样式表。

进一步地,所述提取所述目标文档中不重复的文本样式数据存入文本样式表,可包括:

依次读取所述目标文档的纯文本中的每个字符的当前文本样式,并判断所述文本样式表中是否存在目标样式,所述目标样式与所述当前的文本样式一致;若不存在目标样式,则将所述当前文本样式存入文本样式表;若存在目标样式,则不将所述当前文本样式存入文本样式表。

进一步地,所述将所述文本样式表、所述目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包,可包括:

将所述目标文档中所有文本块中的纯文本连接在一起形成连续文本;其中,不同段落之间的纯文本采用换行符隔开;

将所有样式索引按照纯文本的字符顺序连接放到一起形成连续索引;

将所述文本样式表、所述连续文本和所述连续索引加入传输数据包。

进一步地,所述将所述文本样式表、所述连续文本和所述连续索引加入传输数据包,可包括:

将所述连续索引中相邻且重复次数超过2次的目标索引所在的数据段进行压缩处理生成压缩数据;所述压缩处理是指用两个字节来标识所述目标索引所在的数据段,第一个字节包含所述目标索引,第二个字节包含行程长度字段以标识所述目标索引重复次数。

将所述文本样式表、所述连续索引压缩处理后的数据和所述连续文本加入传输数据包。

进一步地,所述目标索引的取值为正整数,所述行程长度为所述目标索引重复次数的相反数。

进一步地,所述文本样式表中的每一条文本样式数据以链表结构保存。

第二方面,本申请实施例还提供了一种富文本数据处理系统,可包括:

提取模块,遍历目标文档中各个文本块中的文本样式数据,并提取所述目标文档中不重复的文本样式数据存入文本样式表;

写入模块,在每个文本块中记录自身的文本样式数据在所述文本样式表中的样式索引;

处理模块,当需要传输所述目标文档时,将所述文本样式表、所述目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。

第三方面,本申请实施例还提供了一种电子设备,其中,包括:存储器以及处理器,所述存储器用于存储并支持处理器执行第一方面中任一项所述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。

第四方面,本申请实施例还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,其中,所述程序代码使所述处理器执行所述第一方面的任一所述方法。

本申请实施例带来了以下有益效果:

本申请实施例中,先遍历目标文档中各个文本块中的文本样式数据,提取目标文档中不重复的文本样式数据存入文本样式表;然后在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引;当需要传输目标文档时,只需要将文本样式表、目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。相对于现有技术方案,在进行目标文档的传输时,无需传输重复的文档样式数据,减少了所需传输的数据量,降低数据带宽占用,降低了数据传输的时延。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为本申请实施例提供的一种富文本数据处理方法的一个实施例示意图;

图2为本申请实施例提供的一种富文本数据处理方法的另一个实施例示意图;

图3为本申请实施例提供的一种富文本数据处理方法的一个具体实施例示意图;

图4为一种富文本数据处理方法的一个具体实施例中文本块数据结构示意图;

图5为本申请实施例提供的一种电子设备的一个实施例示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。

为了降低富文本数据在在线实时协同软件中传输的时延,本申请实施例提出提取富文本中的不相同的数据样式放到文本外部集中存储,不存储重复的文本样式,通过索引查找对应的文本样式进行数据复原,尽可能的减少传输过程中的传输数据包中的冗余数据。

为了便于理解,下面对本申请实施例中的具体流程进行描述,请参阅图1,本申请实施例中一种富文本数据处理方法的一个实施例可包括:

S101:遍历目标文档中各个文本块中的文本样式数据,提取目标文档中不重复的文本样式数据存入文本样式表。

申请人发现富文本中相邻字符或相邻文本块或相邻段落中的文本样式是相同的,因此富文本的文本块中记录有大量的文本样式数据往往是重复冗余数据,有待优化冗余。

为此,本申请实施例中,在获取到所需要传输的目标文档之后,可以参照相关技术,将目标文档的各个段落划分为一个或多个文本块,进而可以遍历目标文档中各个文本块中的文本样式数据(字体样式、加粗、斜体、文本颜色、高亮颜色等属性中的一项或多项),从中提取目标文档中不重复的文本样式数据存入文本样式表,重复的文本样式数据则无需存储第二次。

可选的,作为本申请实施例中的一种可能的实施方式,提取目标文档中不重复的文本样式数据的过程可以包括:依次读取目标文档的纯文本中的每个字符的文本样式作为当前文本样式,并判断文本样式表中是否存在与该当前的文本样式一致的目标样式;若文本样式表中不存在目标样式,则将当前文本样式存入文本样式表;若存在目标样式,则不将当前文本样式存入文本样式表,以减少所需传输的数据。

可选的,作为本申请实施例中的一种可能的实施方式,提取目标文档中不重复的文本样式数据的过程可以包括:依次判断目标文档的纯文本中的每个字符的当前文本样式与默认样式是否相同;若相同,则不将当前文本样式存入文本样式表;若不同,则判断文本样式表中是否存在目标样式,目标样式与当前的文本样式一致;若不存在目标样式,则将当前文本样式存入文本样式表。默认样式可以设置为在所有文本样式中占比例最高的文本样式,如此可以减少重复对比的次数,提高提取不重复的文本样式数据的效率。

S102:在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引。

在提取目标文档中不重复的文本样式数据存入文本样式表之后,还需要在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引,进而可以根据样式索引在文本样式表中查询到文本样式数据进行数据恢复。

S103:当需要传输目标文档时,将文本样式表、目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。

当需要传输目标文档时,无需在每个文本块中写入各自的文本样式数据,只需将文本样式表、目标文档中所有文本块中的纯文本(即不带有任何样式的文本文档)以及每个文本块对应的样式索引加入传输数据包。对端接收到传输数据包之后,可以根据样式索引在文本样式表中查询到文本样式数据进行文本格式的恢复。

由以上公开内容可知,本申请实施例中,先遍历目标文档中各个文本块中的文本样式数据,提取目标文档中不重复的文本样式数据存入文本样式表;然后在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引;当需要传输目标文档时,只需要将文本样式表、目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。相对于现有技术方案,在进行目标文档的传输时,无需传输重复的文档样式数据,减少了所需传输的数据量,降低数据带宽占用,降低了数据传输的时延。

在上述图1所示的实施例的基础上,请参阅图2,本申请实施例中一种富文本数据处理方法的另一个实施例可包括:

S201:遍历目标文档中各个文本块中的文本样式数据,提取目标文档中不重复的文本样式数据存入文本样式表。

可选的,文本样式表中的每一条文本样式数据可以采用链表结构保存或其他可以索引的数据结构进行存储,此处不做限定。

S202:在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引。

本实施例中的步骤S201至S202中描述的内容与上述图1所示的实施例中的步骤S101至S102中描述的内容类似,此处不再赘述。

S203:将目标文档中所有文本块中的纯文本连接在一起形成连续文本,并将所有样式索引按照纯文本的字符顺序连接放到一起形成连续索引。

将同类型的数据集中处理,可以提高数据处理的效率。优先的,作为本申请实施例中的一种可能的实施方式,可以将目标文档中所有文本块中的纯文本连接在一起形成连续文本;其中,不同段落之间的纯文本采用换行符隔开;还可以将所有样式索引按照纯文本的字符顺序连接放到一起形成连续索引。

S204:将文本样式表、连续文本和连续索引加入传输数据包。

当需要传输目标文档时,无需在每个文本块中写入各自的文本样式数据,只需将文本样式表、连续文本和连续索引加入传输数据包。

优选的,作为本申请实施例中的一种可能的实施方式,将文本样式表、连续文本和连续索引加入传输数据包的过程,可包括:将连续索引中相邻且重复次数超过2次的目标索引所在的数据段进行压缩处理生成压缩数据,然后将文本样式表、连续索引压缩处理后的数据和连续文本加入传输数据包。其中,压缩处理是指用两个字节来标识目标索引所在的数据段,第一个字节包含目标索引,第二个字节包含行程长度字段以标识目标索引重复次数。如此,可以对连续索引中重复的索引数据进行压缩,进一步减少了所需传输的传输数据包占用的带宽,降低了数据传输的时延。

在上述压缩处理过程中,为了避免目标索引与行程长度字段混淆,优先的,目标索引的取值为正整数,行程长度设为目标索引重复次数(正整数)的相反数(即负数)。

为便于理解,请参阅图3至图4,下面将结合具体的应用实施例对本申请实施例中的富文本数据处理方法进行描述。

如图3,为防止文本样式数据重复存储,本实施例将文本样式从文本块中提取出来,放到外部的链表中。先依次遍历文档所有文本块,判断遍历到的文本样式是否已存储在样式表;若没有存储,则添加该文本样式到样式表中,并将该文本样式在样式表中的索引写入到文本块;若已存储,则将该文本样式在样式表中的索引写入到文本块。如此,即可消除富文本中重复的文本样式数据。

进一步考虑,在简单的使用场景中,用户通常会使用默认文本样式进行编辑,文本中会有较大一部分都是以默认样式的存在的,对于默认样式我们可以选择不存储。具体操作为:文本样式存储时,先与默认样式进行比较,某属性与默认值不一致时才存储;如果某样式跟默认样式的各属性值完全一致时,使用索引0来表示。

更进一步,我们可以将纯文本与索引都从文本块中提取出来,所有纯文本连接在一起存放,段落间添加换行符,例如“ ”表示换行,以及将所有样式索引按照文本块的纯文本字数扩展并连接放到一起,如图4所示的。

实际应用中,经过测试统计,在一般情况下的同段落或者跨段落的文本索引会存在连续重复的,我们采用这种上图3所示的数据结构可以方便使用压缩算法消除样式索引的冗余信息。例如,可以将连续索引中相邻且重复次数超过2次(可以包含2次)的目标索引所在的数据段进行压缩处理生成压缩数据。压缩处理是指用两个字节来标识目标索引所在的数据段,第一个字节包含目标索引,第二个字节包含行程长度字段以标识目标索引重复次数。为了避免目标索引与行程长度字段混淆,优先的,目标索引的取值为正整数,行程长度设为目标索引重复次数(正整数)的相反数(即负数)。示例性的,如图3所示的文本块中的样式索引可以生成如下表1所示的压缩数据,即表示为:0-2 1-3 2 0-3。其中,表1中的括号中的颜色描述是指示该字符对应的字体格式属性(红色、黑色、斜体)。

表1

在解码时碰到负数即说明是一个行程长度,其上一个值即索引值,行程长度取绝对值即可获取真实长度。

相对于现有技术方案,在进行目标文档的传输时,无需传输重复的文档样式数据,减少了所需传输的数据量,降低数据带宽占用,降低了数据传输的时延。

本申请实施例还提供了一种富文本数据处理系统,可包括:

提取模块,遍历目标文档中各个文本块中的文本样式数据,并提取目标文档中不重复的文本样式数据存入文本样式表;

写入模块,在每个文本块中记录自身的文本样式数据在文本样式表中的样式索引;

处理模块,当需要传输目标文档时,将文本样式表、目标文档中所有文本块中的纯文本以及每个文本块对应的样式索引加入传输数据包。

可选的,作为一种可能的实施方式,本申请实施例中,提取模块可包括:

第一处理单元,依次判断目标文档的纯文本中的每个字符的当前文本样式与默认样式是否相同;若相同,则不将当前文本样式存入文本样式表;若不同,则判断文本样式表中是否存在目标样式,目标样式与当前的文本样式一致;若不存在目标样式,则将当前文本样式存入文本样式表。

可选的,作为一种可能的实施方式,本申请实施例中,提取模块可包括:

第二处理单元,依次读取目标文档的纯文本中的每个字符的当前文本样式,并判断文本样式表中是否存在目标样式,目标样式与当前的文本样式一致;若不存在目标样式,则将当前文本样式存入文本样式表;若存在目标样式,则不将当前文本样式存入文本样式表。

可选的,作为一种可能的实施方式,本申请实施例中,处理模块可包括:

第三处理单元,将目标文档中所有文本块中的纯文本连接在一起形成连续文本;其中,不同段落之间的纯文本采用换行符隔开;并将所有样式索引按照纯文本的字符顺序连接放到一起形成连续索引;

第四处理单元,将文本样式表、连续文本和连续索引加入传输数据包。

可选的,作为一种可能的实施方式,本申请实施例中,第四处理单元可包括:

第一子单元,将连续索引中相邻且重复次数超过2次的目标索引所在的数据段进行压缩处理生成压缩数据;压缩处理是指用两个字节来标识目标索引所在的数据段,第一个字节包含目标索引,第二个字节包含行程长度字段以标识目标索引重复次数。

第二子单元,将文本样式表、连续索引压缩处理后的数据和连续文本加入传输数据包。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

上面从模块化功能实体的角度对本申请实施例中的数据处理系统进行了描述,请参阅图5,下面从硬件处理的角度对本申请实施例中的电子设备进行描述:

该电子设备1可以包括存储器11、处理器12和输入输出总线13。处理器12执行计算机程序时实现上述图1或图2所示的方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器执行计算机程序时实现上述各系统实施例中各模块或单元的功能。

其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是电子设备1的内部存储单元,例如该电子设备1的硬盘。存储器11在另一些实施例中也可以是电子设备1的外部存储设备,例如电子设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器11还可以既包括电子设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于电子设备1的应用软件及各类数据,例如计算机程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行计算机程序等。

该输入输出总线13可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。

进一步地,电子设备还可以包括有线或无线网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该电子设备1与其他电子设备之间建立通信连接。

图5仅示出了具有组件11-14以及计算机程序的电子设备1,本领域技术人员可以理解的是,图5示出的结构并不构成对电子设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现上述图1或图2所示的方法实施例中的步骤,例如图1所示的步骤S101至S103。或者,处理器执行计算机程序时实现上述各系统实施例中各模块或单元的功能。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是在本申请的发明构思下,利用本申请说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本申请的专利保护范围内。

相关技术
  • 一种DPI设备的数据处理方法及相关的DPI设备
  • 一种数据处理方法及相关设备
  • 一种数据处理方法及相关设备
  • 一种数据处理方法及相关设备
  • 一种集群系统中IO请求的处理方法、装置及相关设备
  • 一种含格式的html富文本数据的跨标签处理方法及系统
  • 一种含格式的html富文本数据的跨标签处理方法及系统
技术分类

06120115921018