CN113051878A - 文档生成方法和装置 - Google Patents
文档生成方法和装置 Download PDFInfo
- Publication number
- CN113051878A CN113051878A CN202110484711.0A CN202110484711A CN113051878A CN 113051878 A CN113051878 A CN 113051878A CN 202110484711 A CN202110484711 A CN 202110484711A CN 113051878 A CN113051878 A CN 113051878A
- Authority
- CN
- China
- Prior art keywords
- target
- picture
- document
- text
- pos
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000002093 peripheral effect Effects 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 11
- 230000000694 effects Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 235000019580 granularity Nutrition 0.000 description 3
- 238000003780 insertion Methods 0.000 description 3
- 230000037431 insertion Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000007795 chemical reaction product Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/189—Automatic justification
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请涉及异地多人协同文档编辑技术领域,具体地公开了一种文档生成方法和装置,其中,该方法包括:获取原始文档对应的原始对象集合,其中,原始对象集合包括文字对象和图片对象;读取原始文档对应的本地文档操作队列中的多个文档操作指令,其中,多个文档操作指令包括本地操作指令和异地操作指令;根据多个文档操作指令中各文档操作指令对原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合;基于目标对象集合,生成目标文档。上述方法可以解决协同文档编辑过程中由于异地操作的滞后性带来的部分文字和图片之间的摆放冲突问题。
Description
技术领域
本申请涉及异地多人协同文档编辑技术领域,特别涉及一种文档生成方法和装置。
背景技术
在协同编辑过程中,参与者基于本地编辑页面进行操作、将本地操作发送到异地操作队列并接收异地操作同步至本地操作队列。待操作同步之后,各站点操作队列包含的操作一致。
然而,由于异地操作的滞后性,本地的编辑页面并不能完整体现各站点参与者共同的操作结果,所以基于本地编辑页的操作可能会与异地操作存在冲突。而且,由于文档相对文本较为复杂,文档中存在文字、图像、段等对象,所以文档中存在着图图、图文、文文等冲突,其中嵌入型图片和四周型图片和文字对象的冲突尤为突出。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种文档生成方法和装置,以解决现有技术中异地多人协同编辑文档时本地操作与异地操作存在冲突的问题。
本申请实施例提供了一种文档生成方法,包括:获取原始文档对应的原始对象集合,其中,原始对象集合包括文字对象和图片对象;读取原始文档对应的本地文档操作队列中的多个文档操作指令,其中,多个文档操作指令包括本地操作指令和异地操作指令;根据多个文档操作指令中各文档操作指令对原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合;基于目标对象集合,生成目标文档。
在一个实施例中,文字对象中记录有文字内容和文字属性数据,文字属性数据包括文字的位置坐标,文字对象包括第一文字对象和第二文字对象,第一文字对象的位置坐标为空,第二文字对象的位置坐标不为空;图片对象中记录有图片属性数据和图片存储路径,图片属性数据包括图片类型标识,图片对象包括衬托型图片对象、四周型图片对象和嵌入型图片对象,衬托型图片对象的图片类型标识为预设的第一标识,四周型图片对象的图片类型标识为预设的第二标识,衬托型图片对象的图片类型标识为预设的第三标识。
在一个实施例中,原始文档包括至少一个组对象;组对象包括段对象或者包括段对象和四周型图片对象;段对象包括行对象或者包括行对象和衬托型图片对象;行对象包括文字对象和/或嵌入型图片对象;相应的,根据多个文档操作指令中各文档操作指令对原始对象集合执行对应的操作,得到目标对象集合,包括:获取原始文档对应的组信息列表,其中,组信息列表中包括至少一个组对象中各组对象的信息以及多个组对象之间的相对位置关系;将至少一个组对象中各组对象分配到多个线程中的各线程,以根据各组对象的信息从原始对象集合中获取各组对象对应的文字对象和图片对象,并根据多个文档操作指令中各文档操作指令对各组对象对应的文字对象和图片对象进行并行操作,得到目标对象集合。
在一个实施例中,目标对象集合包括第一文字对象和嵌入型图片对象;相应的,基于目标对象集合,生成目标文档,包括:根据目标对象集合中的第一文字对象的文字属性数据在目标文档中摆放对应的文字内容;基于目标对象集合中的嵌入型图片对象的图片存储路径获取目标对象集合中的嵌入型图片对象对应的图片内容;确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象之间是否存在位置冲突;在确定目标嵌入型图片对象与已摆放的第一文字对象之间存在位置冲突的情况下,根据第一预设算法摆放目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档。
在一个实施例中,确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象是否存在位置冲突,包括:确定要摆放的目标嵌入型图片对象所在的目标行;判断目标嵌入型图片对象的位置是否在目标行的最右侧的第一文字对象的左侧;在判断出目标嵌入型图片对象的位置在目标行的最右侧的第一文字对象的左侧的情况下,确定目标嵌入型图片对象与已摆放的第一文字对象存在位置冲突。
在一个实施例中,根据第一预设算法摆放目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档,包括:确定位于目标行中且与目标嵌入型图片对象左侧相邻的目标文字对象的位置坐标,并根据目标文字对象的位置坐标确定目标嵌入型图片对象的位置坐标;根据经确定的目标嵌入型图片对象的位置坐标,在目标文档中摆放目标嵌入型图片对象对应的图片内容并更新目标行中位于目标文字对象右侧的第一文字对象的位置坐标。
在一个实施例中,图片属性数据包括位置数据;目标对象集合包括四周型图片对象和第一文字对象;相应的,基于目标对象集合,生成目标文档,包括:基于目标对象集合中待摆放的目标四周型图片对象的图片存储路径获取目标四周型图片对象对应的图片内容;根据目标四周型图片对象的位置数据在目标文档中摆放目标四周型图片对象对应的图片内容;确定要摆放的第一文字对象与目标四周型图片对象之间是否存在位置冲突;在确定要摆放的第一文字对象与目标四周型图片对象之间存在位置冲突的情况下,根据第二预设算法在目标文档中摆放要摆放的第一文字对象对应的文字内容。
在一个实施例中,确定要摆放的第一文字对象与目标四周型图片对象之间是否存在位置冲突,包括:确定要摆放的第一文字对象与目标四周型图片对象是否满足如下逻辑关系:{B.Pos.x<A.Pos.x+A.size<B.Pos.x+B.wid||B.Pos.x<A.Pos.x<B.Pos.x+B.wid}&&{B.Pos.y-B.len<A.Pos.y<B.Pos.y||B.Pos.y-B.len<A.Pos.y+A.size<B.Pos.y};在确定满足以上逻辑关系的情况下,确定要摆放的第一文字对象与目标四周型图片对象之间存在位置冲突;其中,A为要摆放的第一文字对象,A.Pos.x表示A的x坐标,A.Pos.y表示A的y坐标,A.size表示A的尺寸,B为目标四周型图片对象,B.Pos.x表示B的x坐标,B.Pos.y表示B的y坐标,B.size表示B的尺寸,B.wid表示B的宽度,B.len表示B的高度,x轴为目标文档中沿着从左到右的方向,y轴为目标文档中沿着从上到下的方向,||为逻辑或运算符,&&为逻辑与运算符。
在一个实施例中,根据第二预设算法在目标文档中摆放要摆放的第一文字对象对应的文字内容,包括:按照以下公式确定要摆放的第一文字对象对应的位置坐标:A.Pos.x=B.Pos.x+B.wid;其中,A为要摆放的第一文字对象,A.Pos.x表示A的x坐标,B为目标四周型图片对象,B.Pos.x表示B的x坐标,B.wid表示B的宽度,x轴为目标文档中沿着从左到右的方向,y轴为目标文档中沿着从上到下的方向。
本申请实施例还提供了一种文档生成装置,包括:获取模块,用于获取原始文档对应的原始对象集合,其中,原始对象集合包括文字对象和图片对象;读取模块,用于读取原始文档对应的本地文档操作队列中的多个文档操作指令,其中,多个文档操作指令包括本地操作指令和异地操作指令;操作模块,用于根据多个文档操作指令中各文档操作指令对原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合;生成模块,用于基于目标对象集合,生成目标文档。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的文档生成方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的文档生成方法的步骤。
在本申请实施例中,提供了一种文档生成方法,可以获取原始文档对应的原始对象集合,原始对象集合包括文字对象和图片对象,读取原始文档对应的本地文档操作队列中的多个文档操作指令,多个文档操作指令包括本地操作指令和异地操作指令,根据多个文档操作指令中各文档操作指令对原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合,基于目标对象集合,生成目标文档。上述方案中,将文档中的文字和图片对象化,并将得到的文字对象和图片对象组成文档对应的对象集合,在对文档进行编辑时,从操作队列中读取本地操作指令和异地操作指令,根据本地操作指令和异地操作指令对文档对应的对象集合中的文字对象和图片对象执行操作,得到目标对象集合,之后,可以基于目标对象集合生成对应的目标文档,从而可以解决协同文档编辑过程中由于异地操作的滞后性带来的部分文字和图片之间的摆放冲突问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中的文档生成方法的流程图;
图2示出了本申请一实施例中的文字对象的示意图;
图3示出了本申请一实施例中的图片对象的示意图;
图4示出了本申请一实施例中的行对象的示意图;
图5示出了本申请一实施例中的文档生成方法的流程示意图;
图6示出了本申请一实施例中的文档生成方法的流程示意图;
图7示出了本申请一实施例中的文档生成方法的流程示意图;
图8示出了本申请一实施例中的文档生成装置的示意图;
图9示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种***、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本申请实施例提供了一种文档生成方法。图1示出了本申请一实施例中文档生成方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图1所示,本申请一种实施例提供的文档生成方法可以包括以下步骤:
步骤S101,获取原始文档对应的原始对象集合,其中,所述原始对象集合包括文字对象和图片对象。
本申请实施例中的方法可以应用于多用户异地文档协同边编辑场景中的多用户中各用户的客户端设备。多个用户的客户端设备之间是通信连接的,可以对文档操作指令进行同步。其中,客户端设备可以是台式电脑、笔记本、手机终端、PDA等,只要是可以向用户或者业务人员进行内容展示和接收操作指令的设备都可以,对于前端设备的呈现形成,本申请不作限定。
客户端设备可以获取原始文档对应的原始对象集合。其中,原始对象集合可以包括文字对象和图片对象。文字对象中可以包含文字内容以及文字的属性信息等。图片对象中可以包括图片内容的存储路径以及图片的属性信息等。
步骤S102,读取所述原始文档对应的本地文档操作队列中的多个文档操作指令,其中,所述多个文档操作指令包括本地操作指令和异地操作指令。
多用户中各用户的客户端设备中均包含本地操作队列。在进行同步时,各客户端设备发送本地操作队列中的信息到其他站点,其他站点收到信息后,将操作指令填入其本地操作队列中,完成同步。客户端设备可以在同步之后读取原始文档对应的本地文档操作队列中的多个文档操作指令。多个文档操作指令可以包括本地操作指令和异地操作指令。文档操作指令中可以包括该操作指令所针对的对象的标识以及要执行的具体操作信息。
步骤S103,根据所述多个文档操作指令中各文档操作指令对所述原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合。
步骤S104,基于所述目标对象集合,生成目标文档。
在获得原始文档的原始对象集合以及原始文档对应的多个文档操作指令之后,可以按照多个文档操作指令中各操作指令对原始对象集合中的文字对象和图片对象执行对应的操作。例如,可以根据各操作指令中携带的对象标识对该对象标识对应的文字对象或者图片对象执行对应的操作。在执行多个文档操作指令中各文档操作指令之后,可以得到目标对象集合。目标对象集合中包括执行了对应操作的文字对象和图片对象。在得到目标对象集合之后,可以基于目标对象集合生成目标文档。生成的目标文档可以反映本地操作指令和异地操作指令对原始文档所做的编辑并且可以解决本地操作执行与异地操作指令之间的冲突。
上述实施例中的方法,将文档中的文字和图片对象化,并将得到的文字对象和图片对象组成文档对应的对象集合,在对文档进行编辑时,从操作队列中读取本地文档操作指令和异地文档操作指令,根据本地文档操作指令和异地文档操作指令对文档对应的对象集合中的文字对象和图片对象执行操作,得到目标对象集合,之后,可以基于目标对象集合生成对应的目标文档,从而可以解决协同文档编辑过程中由于异地操作的滞后性带来的部分文字和图片之间的摆放冲突问题。
在本申请一些实施例中,文字对象中可以记录有文字内容和文字属性数据。文字属性数据可以包括文字的位置坐标。文字对象可以包括第一文字对象和第二文字对象,第一文字对象的位置坐标为空,说明第一文字对象的摆放位置由***按顺序摆放。第二文字对象的位置坐标不为空,可以由用户自行定义,说明由用户指定第二文字对象的位置。第一文字对象属于一般意义上的文字,第二文字对象类似于嵌入型图片。将文字对象区分为第一文字对象和第二文字对象,将第一文字对象按照一般的文字来处理,将第二文字对象当作嵌入型图片来处理,可以方便对文字对象执行各种操作。
在本申请一些实施例中,图片对象中可以记录有图片属性数据和图片存储路径。图片存储路径中可以存储该图片对象对应的图片所存储的位置。图片属性数据可以包括图片类型标识,图片对象可以包括衬托型图片对象、四周型图片对象和嵌入型图片对象。衬托型图片对象的图片类型标识为预设的第一标识。四周型图片对象的图片类型标识为预设的第二标识。衬托型图片对象的图片类型标识为预设的第三标识。通过为不同类型的图片设置不同的标识,便于区别处理。
在本申请一些实施例中,原始文档包括至少一个组对象。组对象可以仅包括段对象,也可以包括段对象和四周型图片对象。段对象可以仅包括行对象,也可以包括行对象和衬托型图片对象。行对象可以包括文字对象和/或嵌入型图片对象。相应的,根据多个文档操作指令中各文档操作指令对原始对象集合执行对应的操作,得到目标对象集合,可以包括:获取原始文档对应的组信息列表,其中,组信息列表中包括至少一个组对象中各组对象的信息以及多个组对象之间的相对位置关系;将至少一个组对象中各组对象分配到多个线程中的各线程,以根据各组对象的信息从原始对象集合中获取各组对象对应的文字对象和图片对象,并根据多个文档操作指令中各文档操作指令对各组对象对应的文字对象和图片对象进行并行操作,得到目标对象集合。
具体地,客户端设备可以获取原始文档对应的组信息列表。其中,组信息列表可以是一个巨大的有序二维列表,维护者全文的组-段-图/文之间的关系以及组间的相对位置。例如,某原始文档对应的组信息列表为GL={G1={S1,S2,P1},G2={S3}},表示该站点的文档包含了两个组G1和G2,G1在前G2在后,G1中包含段对象S1、S2和四周性图片对象P1,G2中包含段对象S3,其中段对象S1、S2和S3中包含文字对象和/或嵌入型图片对象。可以根据组信息列表,将独立的组拆分到各个线程中,以对多个组进行并行处理。各个线程根据分配到的组的编号,从原始文档对应的对象集合中获取该组编号对应的文字对象和图片对象。文字对象和图片对象中可以记录有所属的组编号。各个线程可以根据多个文档操作指令中各指令对各组对象对应的文字对象和图片对象进行并行操作,得到目标对象集合。上述实施例中,通过给出组的概念,将相关的对象进行绑定,进而可以将文档摆放内容在组维度上切分,放在多个线程中独立进行,可以提高处理效率。
在本申请一些实施例中,目标对象集合包括第一文字对象和嵌入型图片对象;相应的,基于目标对象集合,生成目标文档,可以包括:根据目标对象集合中的第一文字对象的文字属性数据在目标文档中摆放对应的文字内容;基于目标对象集合中的嵌入型图片对象的图片存储路径获取目标对象集合中的嵌入型图片对象对应的图片内容;确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象之间是否存在位置冲突;在确定目标嵌入型图片对象与已摆放的第一文字对象之间存在位置冲突的情况下,根据第一预设算法摆放目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档。
在目标对象集合包括第一文字对象和嵌入型图片对象的情况下,第一文字对象可能与嵌入型图片对象发生位置冲突,可以通过预设算法来解决该冲突。具体地,首先可以根据目标对象集合中的第一文字对象的文字属性数据在目标文档中摆放对应的文字内容。其中,文字属性数据可以包括文字的尺寸、宽度、所属段编号以及该文字在所属段中的序号。在目标文档中摆放好第一文字对象之后,可以获取要摆放的嵌入型图片对象。可以基于该嵌入型图片对象的图片存储路径获取对应的图片内容。可以确定该嵌入型图片与已摆放的第一文字对象之间是否存在位置冲突。在确定存在位置冲突的情况下,可以根据第一预设算法摆放目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档。通过上述方法,可以在确定文字与嵌入型图片之间发生冲突的情况下调整图片和文字的位置,从而解决该冲突。
在本申请一些实施例中,确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象是否存在位置冲突,可以包括:确定要摆放的目标嵌入型图片对象所在的目标行;判断目标嵌入型图片对象的位置是否在目标行的最右侧的第一文字对象的左侧;在判断出目标嵌入型图片对象的位置在目标行的最右侧的第一文字对象的左侧的情况下,确定目标嵌入型图片对象与已摆放的第一文字对象存在位置冲突。
具体地,可以根据要摆放的目标嵌入型图片的位置坐标确定所在的目标行。确定目标嵌入型图片的右侧是否存在第一文字对象,即判断目标嵌入型图片对象的位置是否在目标行的最右侧的第一文字对象左侧。在判断出的目标嵌入型图片对象的位置是否在目标行的最右侧的第一文字对象左侧的情况下,确定目标嵌入型图片对象与已摆放的第一文字对象之间存在位置冲突。通过上述方式,可以方便快捷地确定待摆放的目标嵌入型图片对象是否与已摆放的文字对象存在位置冲突。
在本申请一些实施例中,根据第一预设算法摆放目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档,可以包括:确定位于目标行中且与目标嵌入型图片对象左侧相邻的目标文字对象的位置坐标,并根据目标文字对象的位置坐标确定目标嵌入型图片对象的位置坐标;根据经确定的目标嵌入型图片对象的位置坐标,在目标文档中摆放目标嵌入型图片对象对应的图片内容并更新目标行中位于目标文字对象右侧的第一文字对象的位置坐标。
具体地,在确定存在位置冲突的情况下,可以确定位于目标行中且与目标嵌入型图片对象左侧相邻的目标文字对象的位置坐标,即找出该目标行中满足条件W.Pos.x+A.size<P.Pos.x的最右侧文字,其中,W表示第一文字对象,P表示目标嵌入型图片对象,W.Pos.x表示W的x坐标,A.size表示W的尺寸,P.Pos.x表示P的x坐标。其中,x轴为目标文档中沿着从左到右的方向。在确定与目标嵌入型图片左侧相邻的目标文字对象的位置坐标之后,根据经确定的目标嵌入型图片对象的位置坐标,确定目标嵌入型图片对象的位置坐标并进行摆放,并更新目标行中位于目标文字对象右侧的第一文字对象的位置坐标。例如,设置目标嵌入型图片对象的x坐标为P.Pos.x=W1.Pos.x+W1.size,P.Pos.y=H1.Hd,并根据该坐标进行摆放。更新该行处于最右侧文字之后的文字对象,并以P.Pos.x+P.wid(其中,P.Wid为P的宽度)为起点对这些文字摆放。如果P.Pos.y+P.len>H.Hu(其中,P.len为P的高度,H为目标行,Hu为H的下边沿高度),则调整该行位置,并更新H.Hh(H.Hh为H的高度)和H.Hd(H.Hd为H的上边沿高度)。根据调整后的H更新该行所有对象的x坐标,即该行所有对象下移。通过上述方式,可以在文字对象与嵌入型图片对象之间发生冲突的情况下,解决该冲突。
在本申请一些实施例中,图片属性数据包括位置数据;目标对象集合包括四周型图片对象和第一文字对象;相应的,基于目标对象集合,生成目标文档,可以包括:基于目标对象集合中待摆放的目标四周型图片对象的图片存储路径获取目标四周型图片对象对应的图片内容;根据目标四周型图片对象的位置数据在目标文档中摆放目标四周型图片对象对应的图片内容;确定要摆放的第一文字对象与目标四周型图片对象之间是否存在位置冲突;在确定要摆放的第一文字对象与目标四周型图片对象之间存在位置冲突的情况下,根据第二预设算法在目标文档中摆放要摆放的第一文字对象对应的文字内容。
在目标对象集合包括四周型图片对象和第一文字对象的情况下,可以先摆放四周型图片对象,再摆放第一文字对象。具体地,可以基于目标对象集合中待摆放的目标四周型图片对象的图片存储路径获取目标四周型图片对应的图片内容。可以根据目标四周型图片对象的位置数据在目标文档中摆放目标四周型图片对象的图片内容。获取要摆放的第一文字对象,并确定要摆放的第一文字对象与目标四周型图片对象之间是否存在位置冲突。在确定存在位置冲突的情况下,根据第二预设算法在目标文档中摆放要摆放的第一文字对象对应的文字内容。上述实施例中,先摆放四周型图片对象再摆放文字对象,在存在冲突的情况下,根据预设算法解决冲突,实现多人协同在线编辑文档。
在本申请一些实施例中,确定要摆放的第一文字对象与目标四周型图片对象之间是否存在位置冲突,可以包括:确定要摆放的第一文字对象与目标四周型图片对象是否满足如下逻辑关系:{B.Pos.x<A.Pos.x+A.size<B.Pos.x+B.wid||B.Pos.x<A.Pos.x<B.Pos.x+B.wid}&&{B.Pos.y-B.len<A.Pos.y<B.Pos.y||B.Pos.y-B.len<A.Pos.y+A.size<B.Pos.y}在确定满足以上逻辑关系的情况下,确定要摆放的第一文字对象与目标四周型图片对象之间存在位置冲突;其中,A为要摆放的第一文字对象,A.Pos.x表示A的x坐标,A.Pos.y表示A的y坐标,A.size表示A的尺寸,B为目标四周型图片对象,B.Pos.x表示B的x坐标,B.Pos.y表示B的y坐标,B.size表示B的尺寸,B.wid表示B的宽度,B.1en表示B的高度,x轴为目标文档中沿着从左到右的方向,y轴为目标文档中沿着从上到下的方向,||为逻辑或运算符,&&为逻辑与运算符。通过上述方式,可以判断出要摆放的文字对象与已摆放的四周型图片对象之间是否存在冲突。
在本申请一些实施例中,根据第二预设算法在目标文档中摆放要摆放的第一文字对象对应的文字内容,可以包括:按照以下公式确定要摆放的第一文字对象对应的位置坐标:A.Pos.x=B.Pos.x+B.wid;其中,A为要摆放的第一文字对象,A.Pos.x表示A的x坐标,B为目标四周型图片对象,B.Pos.x表示B的x坐标,B.wid表示B的宽度,x轴为目标文档中沿着从左到右的方向,y轴为目标文档中沿着从上到下的方向。通过上述方式,可以将存在位置冲突的第一文字对象摆放在四周型图片对象的右侧。
下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
在本具体实施例中,在文档中,有文字对象W、图片对象P、行对象L、段对象S和组对象G,其中文字对象和图片对象是文档的原子粒度对象。行对象由文字对象和嵌入型图片对象组成,而多个行对象组成了段对象。本实施例中还提出组对象的概念,它存在两种类型:第一类由四周型图片和相关段对象组成;第二类是单个段对象独立成组。本实施例中还给出了全文对象摆放流程,提出算法Sys3和Sys2消解两类图文对象冲突,实现文档的整体编排。
请参考图2,给出了文字对象W的示意图,文字对象W的参数为<Pos[],size,Ww,Con,OrdW,Sid,Dis>,文档中的文字对象通过Dis=0标识,它包含两个部分-内容和外边框,内容是文字对象要传递给用户的信息,用Con描述;而外边框则用于控制文字对象的大小和位置,由Ww、Size、Pos[]三个属性共同描述,相关属性的详细描述如下。Dis作为对象类型标志位,用于区分***中的不同对象,其中Dis=W表示文字对象。size代表文字对象的外边框大小,是不为0的正数,表示外边框为x*x的正方形,该参数默认值为1。Ww是文档中文字对象的内容的大小,Ww一方面可以作为图片对象和文字对象冲突时的缓冲,另一方面也使文档排版更加和谐,它的值不大于对象的size属性值。Pos[]代表外边框左下角的坐标,如果Pos为空,则说明该文字对象由***顺序摆放,但是当Pos被用户自行定义时,则说明用户指定该文字对象的摆放位置;Pos为空的文字对象是通过文字序列来实现存储并由***统一设置摆放位置,而Pos不为空的文字对象则会像图片对象一样处理。Sid表示文字对象从属的段对象编号,OrdW代表文字对象在某段中文字对象集合中的序号,Sid和OrdW的组合表示文字对象在某段的几号对象,共同决定该文字对象在全文的位置。
请参考图3,示出了图片对象P的示意图,图片对象P的参数为<Pos[],Len,Wid,OrdP,Sid,Gid,Dis>,对应的属性如下。Len和Wid则分别代表图片对象的高和宽。Dis作为区分文档对象类型的标志位,当Dis=P时表示文档中的图片对象,在文档中,图片对象与文字对象有多重位置关系,所以Dis的值范围是[P1,P2,P3]用于区分图片对象的不同类型。对于图片对象而言,Dis=P1,代表图片衬托在文字下方,在位置上对文字对象没有影响;Dis=P2,代表文字对象环绕在图片四周;Dis=P3,代表图片对象像一个文字对象一样嵌入到行中,并和同行其他对象保持下边高度一致。OrdP是***给每一个图片对象添加的序号,文档中的每一个图片对象都有唯一的OrdP作为ID,这样,***可以通过Dis和OrdP找到文档中的任意对象。Sid表示该图片对象的从属段编号,Gid表示该图片对象的从属组编号,Pos[x,y]表示图片对象的左上角坐标。不同的图片对象对于的属性值不同,衬托型图片不归属与任何段和组,所以相应的Sid和Gid为空,Pos[]表示在全文中的位置;四周型图片由段对象环绕,而本身不从属与任何段,所以Sid为空,Gid为图片和段对象组成的组对象对应编号,Pos[]表示该图片在组中的相对位置;嵌入型图片会嵌入到具体段中,所以它的Sid和Gid不为空,Pos[]表示该图片在组中的相对位置。
请参考图4,示出了行对象的示意图。如图4所示,行对象H的模型为<Hu,Hd,Hh>,对应的属性Hu和Hd分别表示该行的上沿高度和下沿高度。Hh是表示该行的行高,它是由该行中最大对象的高度来决定。行高的确定有两种情况,H1中的对象都是文字对象,行高取文字对象中的最大尺寸。H2中文字对象和嵌入式图片对象(Sty=3)混合摆放,此时行高是文字对象的尺寸和图片对象的高度中的最大值。
段对象S的模型为<OrdD,Gid,Dis>,作为行的集合,可以包含文字对象和嵌入型图片两种对象,由段编号OrdD作为全局标识,Gid表示该段对象的归属组,Dis=S表示该对象为段对象。
组对象G由组编号OrdG进行标识,它作为段对象和四周型图片的集合,包含两类:第一类是四周型图片对象和环绕周围的段对象组成组对象;第二类为无四周型图片对象的段对象,单独成组。
本实施例中还提出了操作模型O,文档中有文字/图片对象粒度的Insert、Update和Delete操作和段对象粒度的Insert和Update操作。***操作的模型是Ins<Dis,Obj,Loc>,该操作有三个属性,Dis标识操作对象的类型,Dis=W/P/S分别表示文字/图片/段;Obj是***对象的信息,Loc=<Ord,Sid,Gid>表示***对象在段中的相对位置、所在的段和组编号。如果***的嵌入型图片/文字对象,需要明确段内位置信息、相关段对象编号和组对象编号,所以Loc中各属性均不为空。删除操作对应的模型是del<Dis,Loc>,其中Dis和Loc的含义同***操作相同,Dis用W/P/S分别表示文字/图片/段操作对象,Loc由Ord,Sid,Gid组成共同确定要删除的那个对象。Update<Dis,Loc,Info>是更新操作的模型,其中Info=<Attribute,Value>,Dis=W/P,通过Dis和Loc可以选中要操作的对象,然后通过Info.Attribute和Info.Value将被选对象的相应属性更新为新值。
本实施例中还提出了操作队列OA,用以存储该文档上各站点的操作集合,每一个站点都有一个操作队列。文档初始化时,OA={},某一时刻产生一个本地操作O1和其他站点操作O2,此时本地操作立刻记录在OA中,此时OA={O1},待站点之间同步后,OA更新变成{O1,O2},以此类推,OA不断增长。
图片集合PA可以存储图片对象和Pos值不为空的文字对象,文字集合WA可以存储Pos值为空的文字对象和嵌入型图片对象。
组信息列表GL是一个巨大的有序二维列表,可以维护着全文的组-段-图/文之间的关系及组间相对位置。例如某站点的GL={G1={S1,S2,P1},G2={S3}},表示该站点的文档包含了两个组G1和G2,G1在前G2在后,G1中包含段对象S1、S2和四周性图片对象P1,G2中包含段对象S3,其中段对象S1、S2和S3中包含文字对象和嵌入型图片对象。
请参考图5至图7,示出了本具体实施例中的文档生成方法的图文混排的流程。如图5所示,A1表示操作队列,该队列记录本地操作和异地操作,其中同一时刻发生的操作,本地操作立刻进入本地操作队列,其他站点的操作待同步后才会同步在本地操作队列。A2表示图片队列PA和文字队列WA,PA存储图片对象和Pos值不为空的文字对象,WA存储Pos值为空的文字对象和嵌入型图片对象。PA和WA通过合并操作队列中的操作进行维护,各种操作对GL、PA和WA的影响如表1所示。A3表示文档内容处理的流程框架,它主要包含以下三个步骤:根据GL信息,独立的组会被拆分到各个线程中;线程根据获取组的编号,从PA和WA取到该组相关的段对象、图片对象和文字对象;根据A4和A5子流程对两类组对象中的相关段和段中对象进行摆放,并生成组中行的高度和与段中文字/图片对象在段中实际摆放位置;将计算后的各组信息汇总到一起,完成全文的处理。
表1
A4子流程针对的组对象包含段对象和四周型图片对象进行处理,该流程如图6所示,它首先将组中的四周型图片对象和文字对象,然后开始摆放相关段中的嵌入型图片对象,最后将衬托型图片对象放在合适的位置。在摆放过程中,会存在文字对象与四周型图片对象和文字对象与嵌入型图片对象两种冲突,这两种冲突分别由算法Sys3和Sys2进行消解。
A5子流程处理的对象是仅包含段对象的组,是A4子流程的一个简化,该流程如图7所示。在这种子流程下,组对象只包含段对象,对应的冲突只有文字对象和嵌入型图片对象。具体地,算法Sys3逻辑如下.
步骤1,在本行与四周型图片对象无冲突的前提下,找到该行待填充的文字对象。
步骤2,取出一个待填充的文字对象A,更新文字对象的Pos.y=H.Hd。如果该行最右侧文字对象为B,则A.Pos1.x=B.Pos.x+B.size,否则该行未放置对象,则A.Pos.x=0。
步骤3,以对象A的新Pos值为坐标,比较对象A和四周型图片对象C的位置关系,如果{B.Pos.x<A.Pos.x+A.size<B.Pos.x+B.wid||B.Pos.x<A.Pos.x<B.Pos.x+B.wid}&&{B.Pos.y-B.len<A.Pos.y<B.Pos.y||B.Pos.y-B.len<A.Pos.y+A.size<B.Pos.y},则两者存在位置冲突。
步骤4,根据步骤3判断图片和文字对象是否存在冲突,如果存在冲突,则A.Pos1.x=C.Pos.x+C.wid。
步骤5,使用A.Pos1放置对象A,如果A的高为该行文字对象和嵌入式图片对象的最大值,则更新H.Hh=size。
步骤6,重复步骤2~4,完成该行对象的摆放。
步骤7,重复步骤1~5,完成多行的摆放。
对于仅包含嵌入型图片对象和文字对象的段,文字对象会优先摆放,其次是嵌入型图片对象。在摆放过程中,文字对象和嵌入型图片对象之间的冲突会通过Sys2重新计算嵌入型图片对象的位置,并放置。具体地,算法Sys2逻辑如下:
步骤1,取文字对象放入行H,按照顺序摆放,该行最后一个文字对象为We,且H的上一行为H1。
步骤2,取出一个嵌入型图图片对象P,如果P.Pos.x<We.Pos.x+We.size则P和该行的文字对象存在冲突。
步骤3,如果存在冲突,则通过步骤4-8完成该图片对象的摆放。
步骤4,取行H中已摆放的文字对象,找出W.Pos.x+size<P.Pos.x的最右侧文字W1。
步骤5,设置P.Pos.x=W1.Pos.x+W.size,P.Pos.y=H.Hu。
步骤6,更新该行处于W1之后的文字对象,并以P.Pos.x+P.wid为起点对这些文字摆放。
步骤7,如果P.Pos.y+Len>H.Hd,调整该行位置,并更新H.Hh=P.len和H.Hd=P.Pos.y+P.len。
步骤8,根据调整后的H更新该行所有对象的Pos.y属性,即该行所有对象下移。
步骤9,重复2-8完成该行嵌入型图片对象的摆放。
上述具体实施例中,针对文档设计并提出了新的对象模型和概念,并依托该模型创造性的提出一种在文档协作编辑过程的冲突解决思路,提出了文档中对象摆放流程和摆放冲突消解算法两个部分,解决了协同文档编辑过程中的部分图片和文字摆放冲突;在提供图文对象操作的基础上增加了基于段对象的操作,使用户可以在单字、单图与单段三个粒度上对文档编辑,丰富了用户的操作类型;同时,提出组的概念,将相关的对象进行绑定,进而可以将文档摆放内容在组维度上切分,放在多个线程中独立进行。综上,上述实施例在对文档重新建模的基础上,提供用户更多维度的操作,提出组概念将不相关内容摆放任务切分在不同线程中处理,从操作种类和处理效率两个方面提升用户的体验。
基于同一发明构思,本申请实施例中还提供了一种文档生成装置,如下面的实施例所述。由于文档生成装置解决问题的原理与文档生成方法相似,因此文档生成装置的实施可以参见文档生成方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图8是本申请实施例的文档生成装置的一种结构框图,如图8所示,包括:获取模块801、读取模块802、操作模块803和生成模块804,下面对该结构进行说明。
获取模块801用于获取原始文档对应的原始对象集合,其中,所述原始对象集合包括文字对象和图片对象。
读取模块802用于读取所述原始文档对应的本地文档操作队列中的多个文档操作指令,其中,所述多个文档操作指令包括本地操作指令和异地操作指令。
操作模块803用于根据所述多个文档操作指令中各文档操作指令对所述原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合。
生成模块804用于基于所述目标对象集合,生成目标文档。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:将文档中的文字和图片对象化,并将得到的文字对象和图片对象组成文档对应的对象集合,在对文档进行编辑时,从操作队列中读取本地文档操作指令和异地文档操作指令,根据本地文档操作指令和异地文档操作指令对文档对应的对象集合中的文字对象和图片对象执行操作,得到目标对象集合,之后,可以基于目标对象集合生成对应的目标文档,从而可以解决协同文档编辑过程中由于异地操作的滞后性带来的部分文字和图片之间的摆放冲突问题。
本申请实施方式还提供了一种计算机设备,具体可以参阅图9所示的基于本申请实施例提供的文档生成方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备91、处理器92、存储器93。其中,所述存储器93用于存储处理器可执行指令。所述处理器92执行所述指令时实现上述任意实施例中所述的文档生成方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机***之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字***中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在***中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于文档生成方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述文档生成方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种文档生成方法,其特征在于,包括:
获取原始文档对应的原始对象集合,其中,所述原始对象集合包括文字对象和图片对象;
读取所述原始文档对应的本地文档操作队列中的多个文档操作指令,其中,所述多个文档操作指令包括本地操作指令和异地操作指令;
根据所述多个文档操作指令中各文档操作指令对所述原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合;
基于所述目标对象集合,生成目标文档。
2.根据权利要求1所述的方法,其特征在于,所述文字对象中记录有文字内容和文字属性数据,所述文字属性数据包括文字的位置坐标,所述文字对象包括第一文字对象和第二文字对象,所述第一文字对象的位置坐标为空,所述第二文字对象的位置坐标不为空;
所述图片对象中记录有图片属性数据和图片存储路径,所述图片属性数据包括图片类型标识,所述图片对象包括衬托型图片对象、四周型图片对象和嵌入型图片对象,所述衬托型图片对象的图片类型标识为预设的第一标识,所述四周型图片对象的图片类型标识为预设的第二标识,所述衬托型图片对象的图片类型标识为预设的第三标识。
3.根据权利要求2所述的方法,其特征在于,所述原始文档包括至少一个组对象;所述组对象包括段对象或者包括段对象和四周型图片对象;所述段对象包括行对象或者包括行对象和衬托型图片对象;所述行对象包括文字对象和/或嵌入型图片对象;
相应的,根据所述多个文档操作指令中各文档操作指令对所述原始对象集合执行对应的操作,得到目标对象集合,包括:
获取所述原始文档对应的组信息列表,其中,所述组信息列表中包括所述至少一个组对象中各组对象的信息以及所述多个组对象之间的相对位置关系;
将所述至少一个组对象中各组对象分配到多个线程中的各线程,以根据所述各组对象的信息从所述原始对象集合中获取所述各组对象对应的文字对象和图片对象,并根据所述多个文档操作指令中各文档操作指令对所述各组对象对应的文字对象和图片对象进行并行操作,得到目标对象集合。
4.根据权利要求2所述的方法,其特征在于,所述目标对象集合包括第一文字对象和嵌入型图片对象;
相应的,基于所述目标对象集合,生成目标文档,包括:
根据所述目标对象集合中的第一文字对象的文字属性数据在目标文档中摆放对应的文字内容;
基于所述目标对象集合中的嵌入型图片对象的图片存储路径获取所述目标对象集合中的嵌入型图片对象对应的图片内容;
确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象之间是否存在位置冲突;
在确定目标嵌入型图片对象与已摆放的第一文字对象之间存在位置冲突的情况下,根据第一预设算法摆放所述目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档。
5.根据权利要求4所述的方法,其特征在于,确定目标对象集合中待摆放的目标嵌入型图片对象与已摆放的第一文字对象是否存在位置冲突,包括:
确定要摆放的目标嵌入型图片对象所在的目标行;
判断所述目标嵌入型图片对象的位置是否在所述目标行的最右侧的第一文字对象的左侧;
在判断出所述目标嵌入型图片对象的位置在所述目标行的最右侧的第一文字对象的左侧的情况下,确定所述目标嵌入型图片对象与已摆放的第一文字对象存在位置冲突。
6.根据权利要求5所述的方法,其特征在于,根据第一预设算法摆放所述目标嵌入型图片对象对应的图片内容并调整已摆放的第一文字对象对应的文字内容的位置,生成目标文档,包括:
确定位于所述目标行中且与所述目标嵌入型图片对象左侧相邻的目标文字对象的位置坐标,并根据所述目标文字对象的位置坐标确定所述目标嵌入型图片对象的位置坐标;
根据经确定的所述目标嵌入型图片对象的位置坐标,在所述目标文档中摆放所述目标嵌入型图片对象对应的图片内容并更新所述目标行中位于所述目标文字对象右侧的第一文字对象的位置坐标。
7.根据权利要求2所述的方法,其特征在于,所述图片属性数据包括位置数据;所述目标对象集合包括四周型图片对象和第一文字对象;
相应的,基于所述目标对象集合,生成目标文档,包括:
基于所述目标对象集合中待摆放的目标四周型图片对象的图片存储路径获取所述目标四周型图片对象对应的图片内容;
根据所述目标四周型图片对象的位置数据在目标文档中摆放所述目标四周型图片对象对应的图片内容;
确定要摆放的第一文字对象与所述目标四周型图片对象之间是否存在位置冲突;
在确定要摆放的第一文字对象与所述目标四周型图片对象之间存在位置冲突的情况下,根据第二预设算法在所述目标文档中摆放所述要摆放的第一文字对象对应的文字内容。
8.根据权利要求7所述的方法,其特征在于,确定要摆放的第一文字对象与所述目标四周型图片对象之间是否存在位置冲突,包括:
确定所述要摆放的第一文字对象与所述目标四周型图片对象是否满足如下逻辑关系:
{B.Pos.x<A.Pos.x+A.size<B.Pos.x+B.wid||B.Pos.x<A.Pos.x<B.Pos.x+B.wid}&&{B.Pos.y-B.len<A.Pos.y<B.Pos.y||B.Pos.y-B.len<A.Pos.y+A.size<B.Pos.y};
在确定满足以上逻辑关系的情况下,确定要摆放的第一文字对象与所述目标四周型图片对象之间存在位置冲突;
其中,A为所述要摆放的第一文字对象,A.Pos.x表示A的x坐标,A.Pos.y表示A的y坐标,A.size表示A的尺寸,B为所述目标四周型图片对象,B.Pos.x表示B的x坐标,B.Pos.y表示B的y坐标,B.size表示B的尺寸,B.wid表示B的宽度,B.len表示B的高度,x轴为所述目标文档中沿着从左到右的方向,y轴为所述目标文档中沿着从上到下的方向,||为逻辑或运算符,&&为逻辑与运算符。
9.根据权利要求7所述的方法,其特征在于,根据第二预设算法在所述目标文档中摆放所述要摆放的第一文字对象对应的文字内容,包括:
按照以下公式确定所述要摆放的第一文字对象对应的位置坐标:
A.Pos.x=B.Pos.x+B.wid;
其中,A为所述要摆放的第一文字对象,A.Pos.x表示A的x坐标,B为所述目标四周型图片对象,B.Pos.x表示B的x坐标,B.wid表示B的宽度,x轴为所述目标文档中沿着从左到右的方向,y轴为所述目标文档中沿着从上到下的方向。
10.一种文档生成装置,其特征在于,包括:
获取模块,用于获取原始文档对应的原始对象集合,其中,所述原始对象集合包括文字对象和图片对象;
读取模块,用于读取所述原始文档对应的本地文档操作队列中的多个文档操作指令,其中,所述多个文档操作指令包括本地操作指令和异地操作指令;
操作模块,用于根据所述多个文档操作指令中各文档操作指令对所述原始对象集合中的文字对象和图片对象执行对应的操作,得到目标对象集合;
生成模块,用于基于所述目标对象集合,生成目标文档。
11.一种计算机设备,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求1至9中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述指令被执行时实现权利要求1至9中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110484711.0A CN113051878A (zh) | 2021-04-30 | 2021-04-30 | 文档生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110484711.0A CN113051878A (zh) | 2021-04-30 | 2021-04-30 | 文档生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113051878A true CN113051878A (zh) | 2021-06-29 |
Family
ID=76518165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110484711.0A Pending CN113051878A (zh) | 2021-04-30 | 2021-04-30 | 文档生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113051878A (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198952A1 (en) * | 2006-02-21 | 2007-08-23 | Pittenger Robert A | Methods and systems for authoring of a compound document following a hierarchical structure |
CN112241865A (zh) * | 2019-07-16 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种文档协同处理的方法以及相关装置 |
-
2021
- 2021-04-30 CN CN202110484711.0A patent/CN113051878A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070198952A1 (en) * | 2006-02-21 | 2007-08-23 | Pittenger Robert A | Methods and systems for authoring of a compound document following a hierarchical structure |
CN112241865A (zh) * | 2019-07-16 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 一种文档协同处理的方法以及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10656811B2 (en) | Animation of user interface elements | |
JP6713141B1 (ja) | レイアウト解析方法、読書補助装置、回路及び媒体 | |
US6903751B2 (en) | System and method for editing electronic images | |
CN105718435A (zh) | 手写内容的重排方法及电子设备 | |
CN107943363B (zh) | 背景图像的配置方法及装置、交互智能平板及存储介质 | |
US20080098326A1 (en) | Laying out web components using mounting and pooling functions | |
CN1255765C (zh) | 数据通信***和方法 | |
WO2022089170A1 (zh) | 字幕区域识别方法、装置、设备及存储介质 | |
CN111639527A (zh) | 英文手写文本识别方法、装置、电子设备及存储介质 | |
CN107122104B (zh) | 数据显示方法及装置 | |
CN113051878A (zh) | 文档生成方法和装置 | |
CN110533742B (zh) | 一种图像填色方法、装置、设备及存储介质 | |
JP6287498B2 (ja) | 電子ホワイトボード装置、電子ホワイトボードの入力支援方法、及びプログラム | |
CN115134317B (zh) | 消息显示方法、装置、存储介质和电子装置 | |
JP6924544B2 (ja) | 漫画データ表示システム、方法及びプログラム | |
JP3638176B2 (ja) | 手書きデータ編集装置及び手書きデータ編集方法 | |
CN106548501B (zh) | 一种图像绘制方法及设备 | |
CN114598921A (zh) | 视频帧提取方法、装置、终端设备和存储介质 | |
US11074392B2 (en) | Information processing apparatus and non-transitory computer readable medium for switching between an attribute information mode and an image information mode | |
JPH10312407A (ja) | 図面表示装置 | |
JP4040905B2 (ja) | 縮小画像表示装置、方法、プログラムおよびプログラムを記録した記録媒体 | |
JP6716409B2 (ja) | 情報処理装置 | |
JP6152633B2 (ja) | 表示制御装置及びプログラム | |
CN111787389A (zh) | 转置视频识别方法、装置、设备及存储介质 | |
CN113743438B (zh) | 文本检测用数据集生成方法、装置和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |