CN110096691B - 基于电子书的排版方法、电子设备及计算机存储介质 - Google Patents
基于电子书的排版方法、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN110096691B CN110096691B CN201910305427.5A CN201910305427A CN110096691B CN 110096691 B CN110096691 B CN 110096691B CN 201910305427 A CN201910305427 A CN 201910305427A CN 110096691 B CN110096691 B CN 110096691B
- Authority
- CN
- China
- Prior art keywords
- area
- typesetting
- engine
- sub
- level
- 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.)
- Active
Links
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/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/60—Editing figures and text; Combining figures or text
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Document Processing Apparatus (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种基于电子书的排版方法、电子设备及计算机存储介质,该方法包括:确定电子书的页面区域中包含的对象排版区域,通过对象排版引擎在对象排版区域内排布待展示的对象;确定与对象排版区域相对应的目标矩形区域,通过目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;根据至少一个候选矩形区域的区域范围,确定页面区域中包含的文字排版区域,通过文字排版引擎在文字排版区域内排布待展示的文字。由此能够确保展示对象的位置固定不变,即使文字的字号、字体发生调整也不会对已经插入的展示对象造成影响,避免了因展示对象位置变化而导致文字的索引偏移量发生改变,进而对笔记造成影响的问题。
Description
技术领域
本发明涉及计算机领域,具体涉及一种基于电子书的排版方法、电子设备及计算机存储介质。
背景技术
在电子书排版过程中,为了实现图文并茂的效果,经常需要向电子书页面中插入诸如图片之类的展示对象。在现有的排版方式中,通常采用图文混排的方式实现。具体地,通过排版引擎排版文字信息,然后,在文字信息的排版过程中动态插入图片。由于电子书在排版过程中需要执行校对、编辑等操作,因此,文字信息大多为流式信息。在该种流式排版方式中,页面中的各个文字信息的索引偏移量取决于插入的图片的位置,一旦插入的图片位置发生改变,则对应页面中的各个文字信息的索引偏移量也将发生改变。
但是,在实现本发明的过程中,发明人发现现有技术中的上述方案至少存在下述缺陷:由于文字信息的索引偏移量与用户的笔记、想法等用户交互信息相互关联,而用户交互信息在电子书中的位置是固定的,不会因为插入图片调整其位置信息,因此,一旦电子书中插入的图片在后续编辑过程中删除或改变位置,则会导致用户交互信息不再与其对应的文字内容具有位置关联关系,发生交互信息位置错乱的现象,从而为用户的阅读造成不便。并且,在上述流式排版方式中,插入图片的位置无法预先设置,因此,图片位置不固定,一旦文字的字体调整或字号改变后则会导致图片位置发生变化,从而导致页面布局不一致的问题,例如图片原本显示在当前页的下半部分,当将字号调大后,图片会被挤到下一页的上半部分。由此可见,上述排版方式无法控制插入图片的位置,且图片位置的变化容易对笔记等用户交互信息造成影响,从而严重影响用户的正常阅读。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于电子书的排版方法、电子设备及计算机存储介质。
根据本发明的一个方面,提供了一种基于电子书的排版方法,包括:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
根据本发明的另一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
根据本发明的又一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
在本发明提供的基于电子书的排版方法、电子设备及计算机存储介质中,首先,通过对象排版引擎在电子书的页面区域中包含的对象排版区域内排布待展示的对象;然后,通过矩形分割的方式确定页面区域中包含的文字排版区域,通过文字排版引擎在文字排版区域内排布待展示的文字。由此可见,在该方式中,将整个页面区域预先划分为对象排版区域以及文字排版区域两大部分,进而通过对象排版引擎以及文字排版引擎分别在对应区域内排版,由于各个排版引擎相互独立工作,由此能够预先确定图片等展示对象所占的位置区域,确保展示对象的位置固定不变,即使取消对象的展示,由于对象排版区域仍然存在,因此不会导致文字偏移量的改变,从而可以避免用户交互信息与文字信息之间位置错乱的问题;同时,由于对象和文字分别在各自的排版区域中展示,因此无论文字的字号、字体如何调整,其也是在文字排版区域中进行流式排版,排版结果不影响对象排版区域的位置和尺寸,从而不会改变对象的展示位置。另外,在上述方式中通过矩形分割的方式来确定各个排版引擎所对应的排版区域能够对排版空间进行有效管理,由于各种不规则区域都可以通过多个大小不等的矩形进行描述,由此为各个排版引擎共用排版空间提供了保障。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例提供的基于电子书的排版方法的流程图;
图2示出了本发明另一个实施例提供的基于电子书的排版方法的流程图;
图3示出了根据本发明另一个实施例的一种电子设备的结构示意图;
图4示出了一种形式的本级矩形区域的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了本发明一个实施例提供的基于电子书的排版方法的流程图。如图1所示,该方法包括以下步骤:
步骤S110:确定电子书的页面区域中包含的对象排版区域,通过对象排版引擎在对象排版区域内排布待展示的对象。
其中,电子书的页面区域是指整个排版区域,用于排布一页内容中包含的文字、对象等各类信息。通常,页面区域为矩形区域。对象排版区域是指:从整个页面区域中划分出来用于排布展示对象的局部区域。其中,对象排版区域可以位于整个页面区域的顶部、底部、中部等各种位置,并且,对象排版区域的形状可以为矩形、菱形、圆形等各种形状,本发明对此不做限定。
对象排版引擎用于在对象排版区域内排布待展示的对象,其中,对象排版引擎的数量和类型可以灵活确定。例如,本实施例中的对象可以为图片、表格等各种对象,相应地,对象排版引擎可以为图片排版引擎、表格排版引擎等各类引擎。并且,当对象的数量或类型较多时,为了更好地展示各个对象,可以进一步将对象排版区域划分为多个子区域,相应地,对象排版引擎进一步包括多个子引擎,分别用于在各个子区域内独立排版,从而确保各个对象的独立展示。
步骤S120:确定与对象排版区域相对应的目标矩形区域,通过目标矩形区域将页面区域中包含的剩余可用区域划分为至少一个候选矩形区域。
具体地,确定与对象排版区域相对应的目标矩形区域的目的在于:将整个页面区域划分为多个矩形,从而通过各个矩形对页面区域进行描述,以便于实现页面区域的分割操作。
其中,在确定与对象排版区域相对应的目标矩形区域时,如果对象排版区域本身即为矩形区域,则可以直接将对象排版区域作为目标矩形区域;如果对象排版区域本身为菱形、圆形等非矩形区域,则需要先确定与对象排版区域相对应的矩形区域(例如以圆形区域的直径为矩形边长来确定对应的矩形区域),然后,将与对象排版区域相对应的矩形区域作为该目标矩形区域,即将对象排版区域的外接矩形区域确定为该目标矩形区域。通过上述方式,能够将各种规则或不规格形式的对象排版区域通过标准的目标矩形区域进行描述。
接下来,通过目标矩形区域将页面区域中包含的剩余可用区域划分为至少一个候选矩形区域。由于页面区域本身为一个整体性的矩形区域,当整体性的矩形区域中去除一个矩形区域(即目标矩形区域)后,其剩余的区域形状必然能够通过一个或多个尺寸相同或不同的矩形(即候选矩形区域)进行描述。因此,通过该方式,能够通过矩形管理方式对排版空间进行管理,从而将完整的排版空间通过矩形分割的方式划分为多个可供不同的排版引擎使用的子空间。
步骤S130:根据至少一个候选矩形区域的区域范围,确定页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
其中,在根据至少一个候选矩形区域的区域范围,确定页面区域中包含的文字排版区域时,如果候选矩形区域仅为一个,则可以直接将该候选矩形区域作为文字排版区域;如果候选矩形区域为多个,则需要将多个候选矩形区域进行合并,以得到包含多个候选矩形区域的文字排版区域。其中,文字排版引擎用于排版文字,其排版范围限于文字排版区域之内。由此可见,由于文字排版引擎独立于对象排版引擎,且仅在文字排版区域之内排版文字,因此,能够确保文字与对象互不冲突。并且,通过矩形管理的方式,能够使文字排版引擎得以在由多个尺寸不同的矩形构成的不规则文字排版区域内排版,从而提升了排版的灵活性和便捷性。
由此可见,在该方式中,将整个页面区域预先划分为对象排版区域以及文字排版区域两大部分,进而通过对象排版引擎以及文字排版引擎分别在对应区域内排版,由于各个排版引擎相互独立工作,由此能够预先确定图片等展示对象所占的位置区域,确保展示对象的位置固定不变,即使文字的字号、字体发生调整也不会对已经插入的展示对象造成影响,从而避免了因展示对象的位置变化而导致文字的索引偏移量发生改变,进而对笔记等用户交互信息造成影响的问题。即使取消对象的展示,由于对象排版区域仍然存在,因此不会导致文字偏移量的改变,从而可以避免用户交互信息与文字信息之间位置错乱的问题;同时,由于对象和文字分别在各自的排版区域中展示,因此无论文字的字号、字体如何调整,其也是在文字排版区域中进行流式排版,排版结果不影响对象排版区域的位置和尺寸,从而不会改变对象的展示位置。另外,在上述方式中通过矩形分割的方式来确定各个排版引擎所对应的排版区域能够对排版空间进行有效管理,由于各种不规则区域都可以通过多个大小不等的矩形进行描述,由此为各个排版引擎共用排版空间提供了保障。
实施例二
图2示出了本发明另一个实施例提供的基于电子书的排版方法的流程图。如图2所示,该方法包括以下步骤:
步骤S210:确定电子书的页面区域中包含的对象排版区域。
在本实施例中,为了丰富电子书的呈现效果,便于用户在读书过程中获取到更多的信息。本实施例中的对象排版区域进一步包括多个对象排版子区域,分别为第一边缘区域、中部区域、以及第二边缘区域;其中,第一边缘区域与第二边缘区域相对设置。具体地,第一边缘区域和第二边缘区域可以分别为顶部区域和底部区域,也可以分别为左侧区域或右侧区域,本发明对此不做限定。
在本实施例中,第一边缘区域为顶部区域,用于设置位于电子书页面的顶部的图片等对象;第二边缘区域为底部区域,用于设置位于电子书页面的底部的图片等对象;中部区域位于电子书页面的中心区域。其中,各个区域的区域大小和区域范围以及区域形状可由本领域技术人员灵活设定,本发明对此不做限定。
本实施例采用图层叠加的方式进行图文排版,每个对象排版子区域单独位于一个图层,对象排版子区域的位置和大小基于展示需求预先设定,文字排版区域单独位于一个图层。每个图层由一个排版引擎负责排版。
在进行图文排版时,首先进行对象排版,待完成各层的对象排版后,最后进行文字排版。由于每个图层的大小均与页面区域大小一致,而不同排版区域又是单独在各自图层中设置的,因此各个图层无法直接获取其他图层中排版区域的位置和大小。本实施例中,采用矩形管理策略实现各图层之间的区域位置协调。具体的,可以开辟一块矩形管理内存,用于记录图层数量、图层性质(例如对象排版图层或者文字排版图层,或者对象排版图层中进一步区分上部/中部/下部区域排版图层)、图层关联的排版区域的位置和大小等信息。下级图层在进行区域排版时可以向矩形管理内存请求上级图层中的排版区域信息,从而避免两级排版区域重叠或存在空隙的问题。步骤S220:通过对象排版引擎在上述对象排版区域内排布待展示的对象。
在本实施例中,由于对象排版区域包括多个子区域,相应地,对象排版引擎也进一步包括:多级对象排版子引擎。其中,各个对象排版子区域分别与各级对象排版子引擎相对应。
具体实施时,按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:
首先,本级对象排版子引擎获取电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象。
具体地,本实施例中的对象排版子引擎包括三级,调用顺序为:依次调用第一级、第二级、第三级对象排版子引擎进行处理,其中,每一级对象排版子引擎被调用时称作本级对象排版子引擎。例如,作为第一级的顶部对象排版子引擎首先被调用,与顶部对象排版子引擎相对应的本级对象排版子区域(即顶部对象排版子区域)通常位于页面顶部,用于排布顶部对象。
然后,判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与本级对象排版子区域相对应的本级矩形区域,以便通过本级矩形区域将电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;并根据至少一个下级矩形区域的区域范围,确定电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域,并将下一级对象排版子区域所对应的区域信息以及图层信息通过矩形管理内存进行存储,以供下一级对象排版子引擎查询。由此可见,整个页面区域被各级排版引擎轮询占用,当一个排版引擎占用对应的局部区域后,下一个排版引擎根据剩余可用区域进行排版,各个排版引擎各自对应的排版子区域互不重叠,从而保证了各级排版引擎在空间共用的前提下独立工作。
具体地,当顶部对象排版子引擎排版完毕后,需要判断顶部对象排版子引擎是否具有下一级对象排版子引擎。由于顶部对象排版子引擎为第一级子引擎,因此,其对应的下一级子引擎为第二级子引擎,即底部对象排版子引擎。相应地,需要根据本级对象排版子引擎已占用的排版空间来分配下一级对象排版子引擎所对应的排版空间。具体实施时,先要确定与本级对象排版子区域相对应的本级矩形区域。其中,若本级对象排版子区域本身为矩形区域,则可以直接将本级对象排版子区域确定为本级矩形区域;若本级对象排版子区域为圆形、三角形等非矩形区域,则需要将能够全部包含本级对象排版子区域的矩形区域确定为本级矩形区域。发明人在实现本发明的过程中发现,由于页面区域通常为矩形区域,因此,当从页面区域中去除一个矩形区域(即本级矩形区域)后,无论被去除的矩形区域位于页面区域的何种位置,也无论被去除的矩形区域的尺寸如何,页面区域中的剩余可用区域均可通过一个或多个矩形区域(即下级矩形区域)进行描述。利用上述特点,本发明将本级对象排版子区域转化为本级矩形区域,相应地,将页面区域中包含的除本级矩形区域之外的剩余可用区域分割为一个或多个尺寸相同或不同的下级矩形区域,以便于下一级对象排版子引擎进行排版。其中,为了展示方式的多样性,本级对象排版子区域可以为圆形、三角形等各种形状,以便于实现丰富的图片样式,但是,无论本级对象排版子区域为何种形状,都能够通过本级矩形区域进行覆盖。最后,根据至少一个下级矩形区域的区域范围,能够确定电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域,以便于下一级对象排版子引擎重复执行上述的排版操作。
由此可见,通过依次调用各级对象排版子引擎执行以上操作即可完成各级展示对象的排版过程。其中,首先调用第一级的顶部对象排版子引擎实现顶部对象的插入,然后调用第二级的底部对象排版子引擎实现底部对象的插入,最后调用第三级的中部对象排版子引擎实现中部对象的插入。具体实施时,可以预先划分好各级排版引擎所对应的排版区域,由于各自的排版区域已预先设定,因此,各级排版引擎之间的调用顺序可以灵活调整。也可以在各级排版引擎的调用过程中动态确定下一级排版引擎所对应的排版区域,本发明对具体细节不做限定。
步骤S230:确定与对象排版区域相对应的目标矩形区域,通过目标矩形区域将页面区域中包含的剩余可用区域划分为至少一个候选矩形区域。
其中,由于本实施例中的对象排版区域包括多个子区域,因此,目标矩形区域为包含各个对象排版子区域的区域。另外,需要说明的是,当各个对象排版子区域的尺寸不同时,目标矩形区域可能为一个非矩形的区域,而是由多个尺寸不同的小矩形构成的复合区域,因此,本发明不限定目标矩形区域的形状一定为矩形,但是,目标矩形区域中的各个子分块的形状应为矩形。另外,还需要说明的是,当各个对象排版子区域互不相邻时,目标矩形区域可能由多个空间上相互分离的矩形区域构成,即目标矩形区域既可能为连通区域,也可能为非连通区域。总之,目标矩形区域能够覆盖全部的对象排版子区域,且其中包含的各个子分块均为矩形。
由于目标矩形区域本身为矩形,或者,其包含的各个子分块均为矩形,因此,通过目标矩形区域能够将页面区域中包含的剩余可用区域划分为至少一个候选矩形区域。通过该方式,能够将各种不规则的形状通过多个大小不等的候选矩形区域进行描述,从而使后续的文字排版操作能够基于各个候选矩形区域实现,为文字排版提供了便利。
步骤S240:根据至少一个候选矩形区域的区域范围,确定页面区域中包含的文字排版区域,通过文字排版引擎在文字排版区域内排布待展示的文字。
其中,在根据至少一个候选矩形区域的区域范围,确定页面区域中包含的文字排版区域时,可以直接将各个候选矩形区域的区域范围的集合确定为文字排版区域;或者,也可以将各个候选矩形区域的区域范围中的局部区域确定为文字排版区域,以实现部分留白的效果,本发明对此不做限定。文字排版引擎用于实现流式文字排版操作,具体地,从源数据文档中获取待排版的文字,将获取到的各个待排版的文字依照流式排版方式排入文字排版区域。该方式能够向不规则区域内排入文字。
具体实施时,可以通过多个图层来管理各个排版引擎的排版内容,从而通过图层叠加的方式实现多个排版引擎所对应的排版内容的叠加显示。相应地,通过对象排版引擎在对象排版区域内排布待展示的对象时,在预设的与对象排版引擎相对应的对象排版图层中确定与对象排版区域相对应的对象渲染区域,在该对象渲染区域内渲染待展示的对象。其中,在绘制对象时,可预先通过H5页面或HTML协议设置对象的样式,如长宽高等尺寸信息。通过文字排版引擎在文字排版区域内排布待展示的文字时,在预设的与文字排版引擎相对应的文字排版图层中确定与文字排版区域相对应的文字渲染区域,在文字渲染区域内渲染待展示的文字。当然,在对象排版引擎包括多个对象排版子引擎的情况中,每个对象排版子引擎分别对应于一个对象排版子图层。其中,本实施例中待展示的对象可以灵活设定,具体可包括:静态图片对象、动态图片对象、和/或视频对象等。
另外,在一个具体的示例中,为了实现显示的灵活性,各个排版区域所对应的页面区块可以为浮动块或平铺块两类。当页面区块为平铺块时,无论该区块的宽度如何,在水平方向上都会占据全部的页面空间。例如,当页面宽度为10厘米时,即使平铺块本身的宽度仅为3厘米,且位于页面左侧,但是,在水平方向上右侧剩余的7厘米也被该平铺块占据,从而导致其他的排版子引擎无法利用该平铺块右侧的空间。当页面区块为浮动块时,该区块仅占用局部空间,不会占用水平方向上的全部空间。例如,当页面宽度为10厘米时,如果浮动块本身的宽度仅为3厘米,且位于页面左侧,则在水平方向上右侧剩余的7厘米未被该浮动块占据,属于剩余可用空间。由此可见,当排版区域的区域类型为浮动类型且非平铺类型时,页面区域容易被划分为多个尺寸不等的矩形区域,从而使空间利用更为充分。
例如,当本级矩形区域的区域类型为浮动类型且非平铺类型时,至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域。图4示出了一种形式的本级矩形区域的示意图,相应地,将剩余可用区域分割为三个下级矩形区域,分别为下级矩形区域1、下级矩形区域2、下级矩形区域3。由此可见,通过该方式能够将各种不规则的剩余可用区域描述为由多个矩形组成的排版区域,从而为下一个排版引擎的排版带来便利。同理,当目标矩形区域的区域类型为浮动类型且非平铺类型时,至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
另外,发明人在实现本发明的过程中发现,位于中部区域的对象排版区域通常会将文字排版区域分割为上下两部分非连通的区域,即上部文字排版区域以及下部文字排版区域。由于该两部分文字排版区域非连通,因此,在文字排版的过程中需要识别是否到达上部文字排版区域的末尾,从而跳转到下部文字排版区域。在本实施例中,可以在文字排版引擎的排版过程中,动态检测当前排版位置是否到达文字行的末尾位置,每当检测到当前排版位置到达一行文字的末尾时,判断是否到达上部文字排版区域的末尾,从而通过逐行判断的方式实现。另外,位于中部区域的对象排版子区域的排版操作既可以在文字排版之前进行,也可以在文字排版的过程中进行。
在一个具体的示例中,在文字排版引擎的排版过程中,动态检测是否到达上部文字排版区域的末尾。具体地,可以通过当前排版位置的坐标值与中部区域的区域坐标范围进行比较的方式来判断是否到达上部文字排版区域的末尾。相应地,通过文字排版引擎在文字排版区域内排布待展示的文字时,每当确定当前排版位置位于文字行的末尾位置时,判断当前排版位置的坐标值与中部区域的区域坐标范围是否匹配。具体地,可以预先设置一个匹配阈值,将当前排版位置的垂直坐标值与中部区域的区域坐标范围中的顶部位置点的垂直坐标值进行比较,当二者的差值小于预设的匹配阈值时,确定二者匹配。
当二者匹配时,保存与当前排版位置相对应的文字偏移信息,调用与中部区域相对应的对象排版子引擎向中部区域内排布待展示的对象;当中部区域内待展示的对象排布完毕后,根据文字偏移信息在文字排版区域内续排待展示的文字。具体实施时,可以保存与当前排版位置相对应的文字偏移信息,并将文字排版引擎所对应的进程挂起,回调与中部区域相对应的对象排版子引擎的进程实例,从而实现中部区域的对象插入操作。并且,在与中部区域相对应的对象排版子引擎的进程实例执行完毕后,恢复文字排版引擎所对应的进程,继续执行文字排版操作。通过该方式,既能够确保上部文字排版区域与下部文字排版区域之间的连贯性,又能够在文字排版过程中实时插入中部对象。
另外,有些电子书除了设置有通用于各个页面的顶部对象、底部对象和中部对象之外,还针对章节末尾这一特殊位置设置有章节对象。相应地,对象排版子区域进一步包括:预设章节结束区域。由于章节末尾与下一章之间通常会存在大块的空白区域,而且,当用户读到章节末尾时,出于休息放松或回顾章节内容等原因,通常会存在短暂的阅读间歇,因此,在章节末尾位置插入章节对象能够满足用户休息放松的需求,也便于用户在短暂的阅读间歇获取更多有用信息。相应地,章节对象的尺寸可以设置得较大、内容也可以是经过层层甄选的重要内容。
但是,发明人在实现本发明的过程中发现,在额外设置有章节对象时,章节对象与其他位置的对象经常发生冲突。通常情况下,排版过程中都是依次排版位于顶部、底部以及中部的对象,并且,基于流式排版的特点,在文字排版过程中,无法预先获知当前页面是否能够到达章节末尾位置,只有当排到章节末尾位置时,才能够知晓。因此,当排到章节末尾位置并插入章节对象时,位于顶部、底部以及中部的对象已插入完毕,而章节对象的尺寸又较大,因此,容易与其他位置的对象发生冲突。
为了解决上述问题,当预设章节结束区域与第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,在通过文字排版引擎在文字排版区域内排布待展示的文字时,动态检测是否产生冲突现象,具体地,检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配。具体可通过多种方式检测,例如,可以检测当前排版位置所对应的文字偏移信息所对应的下一个文字是否为章节起始位置等。或者,还可以检测是否插入了章节对象等,总之,总要能够检测出冲突现象即可,本发明不限定具体的检测方式。
当检测出冲突现象时,清空电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版。由此可见,当产生冲突时,则将页面中的全部内容清空,并按照冲突处理规则重新排版该页内容。其中,预设的冲突处理规则包括:更改预设章节结束区域所对应的对象排版子引擎的调用顺序,使预设章节结束区域所对应的对象排版子引擎的调用顺序早于第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。正常情况下,在排版过程中,首先调用第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎实现对象排版操作,然后调用文字排版引擎实现文字排版操作,由于章节对象需要在文字排版结束时方可确定是否插入,因此,预设章节结束区域所对应的对象排版子引擎的正常调用顺序晚于其他各个对象排版子引擎。但是,为了防止冲突,且优先确保章节对象的正常显示,通过预设的冲突处理规则使预设章节结束区域所对应的对象排版子引擎的调用顺序早于各个排版引擎,从而确保章节对象优先插入,其他位置的对象在后续插入过程中,若位置与章节对象发生冲突则会插入失败,从而避免了冲突现象。
综上可知,由于各个排版引擎相互独立工作,由此能够预先确定图片等展示对象所占的位置区域,确保展示对象的位置固定不变,即使文字的字号、字体发生调整也不会对已经插入的展示对象造成影响,从而避免了因展示对象的位置变化而导致文字的索引偏移量发生改变,进而对笔记等用户交互信息造成影响的问题。即使取消对象的展示,由于对象排版区域仍然存在,因此不会导致文字偏移量的改变,从而可以避免用户交互信息与文字信息之间位置错乱的问题;同时,由于对象和文字分别在各自的排版区域中展示,因此无论文字的字号、字体如何调整,其也是在文字排版区域中进行流式排版,排版结果不影响对象排版区域的位置和尺寸,从而不会改变对象的展示位置。另外,在上述方式中通过矩形分割的方式来确定各个排版引擎所对应的排版区域能够对排版空间进行有效管理,由于各种不规则区域都可以通过多个大小不等的矩形进行描述,由此为各个排版引擎共用排版空间提供了保障。
另外,在本实施例提供的排版方式中,能够通过图层叠加以及多排版引擎的设置,实现空间共用的效果,确保对象区域与文字区域互不冲突。并且,通过矩形管理方式,能够准确描述各种不规则的排版区域,以确保排版操作的正常进行。而且,该方式还能够针对中部对象以及章节对象实施对应的处理,以确保各类对象的准确插入。而且,通过该方式,无论在何种设备上插入对象都不会对设备上所显示的各个文字的文字偏移量造成影响,从而便于在各类终端设备上使用,能够确保在各类设备上插入的对象的位置固定。
实施例三
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于电子书的排版方法。
可执行指令具体可以用于使得处理器执行以下操作:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
在一种可选的方式中,所述对象排版引擎进一步包括:多级对象排版子引擎,且所述对象排版区域进一步包括:多个分别与各级对象排版子引擎相对应的对象排版子区域;
其中,所述对象排版子区域包括以下中的至少一个:第一边缘区域、中部区域、和/或第二边缘区域;其中,所述第一边缘区域与所述第二边缘区域相对设置。
在一种可选的方式中,所述可执行指令使处理器执行以下操作:
按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:
本级对象排版子引擎获取所述电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在所述本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象;
判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与所述本级对象排版子区域相对应的本级矩形区域;
通过所述本级矩形区域将所述电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;
根据所述至少一个下级矩形区域的区域范围,确定所述电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域。
在一种可选的方式中,所述本级矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域;和/或,
所述目标矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
在一种可选的方式中,当所述对象排版子区域包括中部区域时,所述可执行指令使处理器执行以下操作:
每当确定当前排版位置位于文字行的末尾位置时,判断所述当前排版位置的坐标值与所述中部区域的区域坐标范围是否匹配;
若是,保存与所述当前排版位置相对应的文字偏移信息,调用与所述中部区域相对应的对象排版子引擎向所述中部区域内排布待展示的对象;
当所述中部区域内待展示的对象排布完毕后,根据所述文字偏移信息在所述文字排版区域内续排待展示的文字。
在一种可选的方式中,所述对象排版子区域进一步包括:预设章节结束区域;并且,当所述预设章节结束区域与所述第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,所述可执行指令使处理器执行以下操作:
动态检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配;
若是,清空所述电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版;
其中,所述预设的冲突处理规则包括:更改所述预设章节结束区域所对应的对象排版子引擎的调用顺序,使所述预设章节结束区域所对应的对象排版子引擎的调用顺序早于所述第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。
在一种可选的方式中,所述可执行指令使处理器执行以下操作:
在预设的与所述对象排版引擎相对应的对象排版图层中确定与所述对象排版区域相对应的对象渲染区域,在所述对象渲染区域内渲染待展示的对象;
且所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
在预设的与所述文字排版引擎相对应的文字排版图层中确定与所述文字排版区域相对应的文字渲染区域,在所述文字渲染区域内渲染待展示的文字。
在一种可选的方式中,所述待展示的对象包括:静态图片对象、动态图片对象、和/或视频对象。
实施例四
图3示出了根据本发明另一个实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图3所示,该电子设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。处理器302,用于执行程序310,具体可以执行上述基于电子书的排版方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行以下操作:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
在一种可选的方式中,所述对象排版引擎进一步包括:多级对象排版子引擎,且所述对象排版区域进一步包括:多个分别与各级对象排版子引擎相对应的对象排版子区域;
其中,所述对象排版子区域包括以下中的至少一个:第一边缘区域、中部区域、和/或第二边缘区域;其中,所述第一边缘区域与所述第二边缘区域相对设置。
在一种可选的方式中,所述可执行指令使处理器执行以下操作:
按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:
本级对象排版子引擎获取所述电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在所述本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象;
判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与所述本级对象排版子区域相对应的本级矩形区域;
通过所述本级矩形区域将所述电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;
根据所述至少一个下级矩形区域的区域范围,确定所述电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域。
在一种可选的方式中,所述本级矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域;和/或,
所述目标矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
在一种可选的方式中,当所述对象排版子区域包括中部区域时,所述可执行指令使处理器执行以下操作:
每当确定当前排版位置位于文字行的末尾位置时,判断所述当前排版位置的坐标值与所述中部区域的区域坐标范围是否匹配;
若是,保存与所述当前排版位置相对应的文字偏移信息,调用与所述中部区域相对应的对象排版子引擎向所述中部区域内排布待展示的对象;
当所述中部区域内待展示的对象排布完毕后,根据所述文字偏移信息在所述文字排版区域内续排待展示的文字。
在一种可选的方式中,所述对象排版子区域进一步包括:预设章节结束区域;并且,当所述预设章节结束区域与所述第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,所述可执行指令使处理器执行以下操作:
动态检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配;
若是,清空所述电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版;
其中,所述预设的冲突处理规则包括:更改所述预设章节结束区域所对应的对象排版子引擎的调用顺序,使所述预设章节结束区域所对应的对象排版子引擎的调用顺序早于所述第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。
在一种可选的方式中,所述可执行指令使处理器执行以下操作:
在预设的与所述对象排版引擎相对应的对象排版图层中确定与所述对象排版区域相对应的对象渲染区域,在所述对象渲染区域内渲染待展示的对象;
且所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
在预设的与所述文字排版引擎相对应的文字排版图层中确定与所述文字排版区域相对应的文字渲染区域,在所述文字渲染区域内渲染待展示的文字。
在一种可选的方式中,所述待展示的对象包括:静态图片对象、动态图片对象、和/或视频对象。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (21)
1.一种基于电子书的排版方法,包括:
确定所述电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;所述对象排版引擎进一步包括:多级对象排版子引擎,且所述对象排版区域进一步包括:多个分别与各级对象排版子引擎相对应的对象排版子区域;其中,按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:本级对象排版子引擎获取所述电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在所述本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象;判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与所述本级对象排版子区域相对应的本级矩形区域;通过所述本级矩形区域将所述电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;根据所述至少一个下级矩形区域的区域范围,确定所述电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
2.根据权利要求1所述的方法,其中,所述对象排版子区域包括以下中的至少一个:第一边缘区域、中部区域、和/或第二边缘区域;其中,所述第一边缘区域与所述第二边缘区域相对设置。
3.根据权利要求1所述的方法,其中,所述本级矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域;和/或,
所述目标矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
4.根据权利要求2-3任一所述的方法,其中,当所述对象排版子区域包括中部区域时,所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
每当确定当前排版位置位于文字行的末尾位置时,判断所述当前排版位置的坐标值与所述中部区域的区域坐标范围是否匹配;
若是,保存与所述当前排版位置相对应的文字偏移信息,调用与所述中部区域相对应的对象排版子引擎向所述中部区域内排布待展示的对象;
当所述中部区域内待展示的对象排布完毕后,根据所述文字偏移信息在所述文字排版区域内续排待展示的文字。
5.根据权利要求2-3任一所述的方法,其中,所述对象排版子区域进一步包括:预设章节结束区域;并且,当所述预设章节结束区域与第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
动态检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配;
若是,清空所述电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版;
其中,所述预设的冲突处理规则包括:更改所述预设章节结束区域所对应的对象排版子引擎的调用顺序,使所述预设章节结束区域所对应的对象排版子引擎的调用顺序早于所述第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。
6.根据权利要求1-3任一所述的方法,其中,所述通过对象排版引擎在所述对象排版区域内排布待展示的对象包括:
在预设的与所述对象排版引擎相对应的对象排版图层中确定与所述对象排版区域相对应的对象渲染区域,在所述对象渲染区域内渲染待展示的对象;
且所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
在预设的与所述文字排版引擎相对应的文字排版图层中确定与所述文字排版区域相对应的文字渲染区域,在所述文字渲染区域内渲染待展示的文字。
7.根据权利要求1-3任一所述的方法,其中,所述待展示的对象包括:静态图片对象、动态图片对象、和/或视频对象。
8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行以下操作:
确定电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;所述对象排版引擎进一步包括:多级对象排版子引擎,且所述对象排版区域进一步包括:多个分别与各级对象排版子引擎相对应的对象排版子区域;其中,按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:本级对象排版子引擎获取所述电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在所述本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象;判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与所述本级对象排版子区域相对应的本级矩形区域;通过所述本级矩形区域将所述电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;根据所述至少一个下级矩形区域的区域范围,确定所述电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
9.根据权利要求8所述的电子设备,其中,所述对象排版子区域包括以下中的至少一个:第一边缘区域、中部区域、和/或第二边缘区域;其中,所述第一边缘区域与所述第二边缘区域相对设置。
10.根据权利要求8所述的电子设备,其中,所述本级矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域;和/或,
所述目标矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
11.根据权利要求9-10任一所述的电子设备,其中,当所述对象排版子区域包括中部区域时,所述可执行指令使处理器执行以下操作:
每当确定当前排版位置位于文字行的末尾位置时,判断所述当前排版位置的坐标值与所述中部区域的区域坐标范围是否匹配;
若是,保存与所述当前排版位置相对应的文字偏移信息,调用与所述中部区域相对应的对象排版子引擎向所述中部区域内排布待展示的对象;
当所述中部区域内待展示的对象排布完毕后,根据所述文字偏移信息在所述文字排版区域内续排待展示的文字。
12.根据权利要求9-10任一所述的电子设备,其中,所述对象排版子区域进一步包括:预设章节结束区域;并且,当所述预设章节结束区域与第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,所述可执行指令使处理器执行以下操作:
动态检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配;
若是,清空所述电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版;
其中,所述预设的冲突处理规则包括:更改所述预设章节结束区域所对应的对象排版子引擎的调用顺序,使所述预设章节结束区域所对应的对象排版子引擎的调用顺序早于所述第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。
13.根据权利要求8-10任一所述的电子设备,其中,所述可执行指令使处理器执行以下操作:
在预设的与所述对象排版引擎相对应的对象排版图层中确定与所述对象排版区域相对应的对象渲染区域,在所述对象渲染区域内渲染待展示的对象;
且所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
在预设的与所述文字排版引擎相对应的文字排版图层中确定与所述文字排版区域相对应的文字渲染区域,在所述文字渲染区域内渲染待展示的文字。
14.根据权利要求8-10任一所述的电子设备,其中,所述待展示的对象包括:静态图片对象、动态图片对象、和/或视频对象。
15.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行以下操作:
确定电子书的页面区域中包含的对象排版区域,通过对象排版引擎在所述对象排版区域内排布待展示的对象;所述对象排版引擎进一步包括:多级对象排版子引擎,且所述对象排版区域进一步包括:多个分别与各级对象排版子引擎相对应的对象排版子区域;其中,按照预设的各级对象排版子引擎的调用顺序,依次调用各级对象排版子引擎执行以下操作:本级对象排版子引擎获取所述电子书的页面区域中包含的与本级对象排版子引擎相对应的本级对象排版子区域,并在所述本级对象排版子区域内排布与本级对象排版子引擎相对应的待展示的对象;判断本级对象排版子引擎是否具有下一级对象排版子引擎;若是,确定与所述本级对象排版子区域相对应的本级矩形区域;通过所述本级矩形区域将所述电子书的页面区域中包含的剩余可用区域划分为至少一个下级矩形区域;根据所述至少一个下级矩形区域的区域范围,确定所述电子书的页面区域中包含的与下一级对象排版子引擎相对应的下一级对象排版子区域;
确定与所述对象排版区域相对应的目标矩形区域,通过所述目标矩形区域将所述页面区域中包含的剩余可用区域划分为至少一个候选矩形区域;
根据所述至少一个候选矩形区域的区域范围,确定所述页面区域中包含的文字排版区域,通过文字排版引擎在所述文字排版区域内排布待展示的文字。
16.根据权利要求15所述的计算机存储介质,其中,所述对象排版子区域包括以下中的至少一个:第一边缘区域、中部区域、和/或第二边缘区域;其中,所述第一边缘区域与所述第二边缘区域相对设置。
17.根据权利要求15所述的计算机存储介质,其中,所述本级矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个下级矩形区域为多个,且多个下级矩形区域中至少包含两个尺寸不同的下级矩形区域;和/或,
所述目标矩形区域的区域类型为浮动类型且非平铺类型,则所述至少一个候选矩形区域为多个,且多个候选矩形区域中至少包含两个尺寸不同的候选矩形区域。
18.根据权利要求16-17任一所述的计算机存储介质,其中,当所述对象排版子区域包括中部区域时,所述可执行指令使处理器执行以下操作:
每当确定当前排版位置位于文字行的末尾位置时,判断所述当前排版位置的坐标值与所述中部区域的区域坐标范围是否匹配;
若是,保存与所述当前排版位置相对应的文字偏移信息,调用与所述中部区域相对应的对象排版子引擎向所述中部区域内排布待展示的对象;
当所述中部区域内待展示的对象排布完毕后,根据所述文字偏移信息在所述文字排版区域内续排待展示的文字。
19.根据权利要求16-17任一所述的计算机存储介质,其中,所述对象排版子区域进一步包括:预设章节结束区域;并且,当所述预设章节结束区域与第一边缘区域、中部区域、和/或第二边缘区域存在冲突时,所述可执行指令使处理器执行以下操作:
动态检测当前排版位置所对应的文字偏移信息是否与章节结束位置相匹配;
若是,清空所述电子书的页面区域中已排布的对象和/或文字,并按照预设的冲突处理规则依次调用各个排版引擎进行排版;
其中,所述预设的冲突处理规则包括:更改所述预设章节结束区域所对应的对象排版子引擎的调用顺序,使所述预设章节结束区域所对应的对象排版子引擎的调用顺序早于所述第一边缘区域、中部区域、和/或第二边缘区域所对应的对象排版子引擎。
20.根据权利要求15-17任一所述的计算机存储介质,其中,所述可执行指令使处理器执行以下操作:
在预设的与所述对象排版引擎相对应的对象排版图层中确定与所述对象排版区域相对应的对象渲染区域,在所述对象渲染区域内渲染待展示的对象;
且所述通过文字排版引擎在所述文字排版区域内排布待展示的文字包括:
在预设的与所述文字排版引擎相对应的文字排版图层中确定与所述文字排版区域相对应的文字渲染区域,在所述文字渲染区域内渲染待展示的文字。
21.根据权利要求15-17任一所述的计算机存储介质,其中,所述待展示的对象包括:静态图片对象、动态图片对象、和/或视频对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305427.5A CN110096691B (zh) | 2019-04-16 | 2019-04-16 | 基于电子书的排版方法、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910305427.5A CN110096691B (zh) | 2019-04-16 | 2019-04-16 | 基于电子书的排版方法、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110096691A CN110096691A (zh) | 2019-08-06 |
CN110096691B true CN110096691B (zh) | 2022-12-23 |
Family
ID=67444888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910305427.5A Active CN110096691B (zh) | 2019-04-16 | 2019-04-16 | 基于电子书的排版方法、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110096691B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110717323B (zh) * | 2019-10-17 | 2020-07-31 | 北京幻想纵横网络技术有限公司 | 文档分章方法及装置、终端和计算机可读存储介质 |
CN111079396B (zh) * | 2019-12-20 | 2023-06-16 | 方正国际软件(北京)有限公司 | 不规则单元格中文字排版方法及排版装置 |
CN111339742B (zh) * | 2020-03-26 | 2021-06-15 | 掌阅科技股份有限公司 | 笔记区域划分方法、终端及计算机存储介质 |
CN111523286B (zh) * | 2020-04-16 | 2023-07-07 | 维沃移动通信有限公司 | 图片显示方法、装置、电子设备及计算机可读存储介质 |
CN111611037B (zh) * | 2020-05-09 | 2023-04-07 | 掌阅科技股份有限公司 | 用于电子书的视图对象处理方法、电子设备及存储介质 |
CN111581939A (zh) * | 2020-05-11 | 2020-08-25 | 广东小天才科技有限公司 | 一种题目排版的方法、装置、电子设备及存储介质 |
CN112100978B (zh) * | 2020-09-16 | 2022-07-08 | 掌阅科技股份有限公司 | 基于电子书的排版处理方法、电子设备及存储介质 |
CN112862926B (zh) * | 2021-01-29 | 2023-08-01 | 成都环宇知了科技有限公司 | 一种基于Swoole框架的智能图片合成方法及系统 |
CN113505565B (zh) * | 2021-05-25 | 2024-02-13 | 北京北大方正电子有限公司 | 页面对象组合方法、装置、电子设备、介质及程序产品 |
CN113672150A (zh) * | 2021-09-03 | 2021-11-19 | 掌阅科技股份有限公司 | 电子书页面展示方法、电子设备及存储介质 |
CN113886741A (zh) * | 2021-10-21 | 2022-01-04 | 网易有道信息技术(北京)有限公司 | 用于对公式进行排版的方法及其相关产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123002A (zh) * | 2007-09-14 | 2008-02-13 | 北大方正集团有限公司 | 一种图文的自动排版方法 |
CN102521219A (zh) * | 2011-12-19 | 2012-06-27 | 方正国际软件有限公司 | 版式与流式混合排版系统及其排版方法 |
CN105045776A (zh) * | 2015-09-07 | 2015-11-11 | 武汉大学 | 一种页面自动排版方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5784487A (en) * | 1996-05-23 | 1998-07-21 | Xerox Corporation | System for document layout analysis |
-
2019
- 2019-04-16 CN CN201910305427.5A patent/CN110096691B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101123002A (zh) * | 2007-09-14 | 2008-02-13 | 北大方正集团有限公司 | 一种图文的自动排版方法 |
CN102521219A (zh) * | 2011-12-19 | 2012-06-27 | 方正国际软件有限公司 | 版式与流式混合排版系统及其排版方法 |
CN105045776A (zh) * | 2015-09-07 | 2015-11-11 | 武汉大学 | 一种页面自动排版方法 |
Non-Patent Citations (1)
Title |
---|
专业中文排版软件纵横谈;谷琼等;《印刷技术》;20010620(第06期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110096691A (zh) | 2019-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110096691B (zh) | 基于电子书的排版方法、电子设备及计算机存储介质 | |
CN109542382B (zh) | 手写输入内容的显示方法、电子设备及计算机存储介质 | |
EP3279866A1 (en) | Method and apparatus for generating synthetic picture | |
US20200210032A1 (en) | Method for e-note management of electronic books, and electronic device | |
EA033675B1 (ru) | Система и способ автоматизированного преобразования интерактивных сайтов и приложений для поддержки мобильных и других сред отображения | |
CN109471587B (zh) | 基于Java虚拟机的手写内容的显示方法及电子设备 | |
CN109375972B (zh) | 多元素布局的方法、装置、计算机设备和存储介质 | |
CN104834645B (zh) | 用于展示版式文档的方法和装置 | |
CN111538697A (zh) | 电子书的翻页处理方法、电子设备及计算机存储介质 | |
CN115237522A (zh) | 页面自适应展示方法及装置 | |
CN111460345B (zh) | 电子书籍加载展示方法、电子设备及存储介质 | |
JP2010123002A (ja) | 文書画像レイアウト装置 | |
WO2019018062A1 (en) | AUTOMATIC IMAGE ORGANIZATION IN IMAGE GRID LAYOUT | |
CN111581939A (zh) | 一种题目排版的方法、装置、电子设备及存储介质 | |
CN104615587B (zh) | 一种电子数据排版方法及装置 | |
CN111783386A (zh) | 基于电子书的笔记处理方法、电子设备及存储介质 | |
WO2015167525A1 (en) | Automatic page layout for text items and image items | |
CN109871517B (zh) | 文字块排序方法、装置、存储介质及电子设备 | |
CN113011131B (zh) | 基于图片类电子书的排版方法、电子设备及存储介质 | |
JP6711203B2 (ja) | 画像処理装置及び画像処理プログラム | |
CN112100978B (zh) | 基于电子书的排版处理方法、电子设备及存储介质 | |
CN101996390A (zh) | 一种图像拷贝的方法和装置 | |
CN111783387A (zh) | 笔记处理方法、计算设备及存储介质 | |
US9912834B2 (en) | Document camera device and cutout assistance method | |
US6275237B1 (en) | Structural graph display system |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |