一种单调区域的文字排版方法

文档序号:6561014阅读:142来源:国知局
专利名称:一种单调区域的文字排版方法
技术领域
本发明属于印刷前计算机排版领域,具体涉及一种单调区域的文字排版方法。
背景技术
在报刊书籍的排版中,文字排版的效果越来越丰富,文字的排版区域也越来越复杂,排版系统对于复杂的排版区域内文字排版的处理过程是首先将复杂的排版区域分割为多个按序排列的单调区域,然后依次完成文字在各个单调区域内的排版。所述的单调区域是一个闭合的区域,该区域的特征是任何一条水平直线穿过该区域时,与其边界的有效交点不多于两个,对于该区域边界上有水平线段与水平直线重合的情况,只计算水平直线进入该区域的入点和穿出该区域的出点为有效交点;对于竖排文字的情况,如果对于闭合的排版区域在任何一条垂直直线穿过时,有效交点也符合上述特征,那么该区域也称为单调区域。
在现有的技术中,文字排版的单调区域在开始文字排版之前即分割完成,在文字排版过程中不重新计算单调区域。当文字W在单调区域内进行排版时,判断该单调区域能否排版当前文字W的方法是判断文字W排版后所在行的外接矩形是否超出了单调区域的范围,所述的行的外接矩形是两条边与排版方向平行,另外两条边与排版方向垂直,同时能够将该行内的所有文字都包含在内的面积最小的矩形。如果文字W排版后所在行的外接矩形超出了单调区域,则确定文字W不能在该单调区域内进行排版,如果文字W排版后所在行的外接矩形没有超出单调区域,则能直接确定文字W在单调区域内进行排版。显然该方法的应用是有局限性的,如果单调区域是规则的矩形时,这种方法处理很准确,能将文字W排入合适的位置,也能充分利用排版区域;但是当单调区域不是规则的矩形的时候,这种处理方法往往不能准确的计算出单调区域能否排版文字W,从而导致排版区域不能被充分利用,影响了排版效果,浪费了排版的版面。

发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种单调区域的文字排版方法,该方法在进行文字排版的过程中能够适时对原始的单调区域进行分割,计算出新的单调区域,并在新的单调区域内进行文字排版,能够充分利用排版区域,能够提高文字排版的精确度和美观性。
为达到以上目的,本发明采用的技术方案是一种单调区域的文字排版方法,包括以下步骤(1)在排版过程中,将排版区域分割为按序排列的单调区域,将拟排版的文字W所在的行设为当前行,并设置当前行所在的单调区域R为初始单调区域;(2)在步骤(1)中所述的初始单调区域内试排当前文字W,判断文字W所在的行即当前行的外接矩形B是否超出了初始单调区域,如果没有超出,则排版文字W,取得下一个文字作为当前文字继续排版,如果超出则执行步骤(3);(3)如果文字W的高度等于所在行的行高,则进行折行处理并执行步骤(2),如果文字W的高度小于所在行的行高,则执行步骤(4);(4)取得文字W排版前的行外接矩形C,通过行外接矩形C的上下边界并沿排版方向作平行线与初始单调区域R的边界相交,由此形成的闭合区域作为动态单调区域r,在动态单调区域r内排版文字W,如果排版成功,则执行步骤(5),否则执行步骤(6);(5)取得下一个文字作为当前文字,以动态单调区域r作为初始单调区域,执行步骤(2);(6)返回初始单调区域R,进行折行处理,然后按照步骤(2)对当前文字W进行排版,排版完所有的文字后,处理结束。
进一步,在步骤(4)中,在动态单调区域内排版文字W的具体步骤是1)根据文字W所在的当前行的基线对齐参数,计算出当前行的基线位置,作为文字W在动态单调区域r内的基线位置;2)按照基线对齐位置对文字W进行试排,判断动态单调区域r内的已排版文字的行外接矩形是否超出动态单调区域r的范围,如果没有超出则排版文字W,否则排版失败。
更进一步,基线对齐参数取值范围从0到256,其中0表示文字顶齐,256表示文字底齐,128表示文字中齐。
本发明的效果在于采用本发明所述的方法,可以在文字排版过程中适时计算出新的单调区域,并能在新的单调区域内按照原单调区域内的文字对齐方式对文字进行排版,从而可以充分利用排版区域,提高了文字排版的精确度,具有良好的排版效果。


图1是本发明所述方法的流程图;图2是实施例中所述的文字在矩形排版区域内的排版效果图;图3是本实例中拟进行文字排版的单调区域示意图;图4是采用现有技术在图3所示的单调区域内进行排版文字的效果图;图5是采用本发明所述的方法试排当前文字时计算出来的行外接矩形的示意图;图6是本实施例中计算出来的动态单调区域的示意图;图7是采用本发明所述的方法在基线对齐为底齐时排版文字的示意图;图8是图7的基础上采用本发明所述的方法实现最终排版后的效果示意图;图9a,9b,9c是采用基线对齐为上齐情况下的排版结果对比示意图;图10a,10b,10c是采用基线对齐为中齐情况下的排版结果对比示意图。
具体实施例方式
下面结合实施例和附图,对本发明作进一步的阐述在本实施例中,拟在一行内排版文字“一步两个台阶”,为了达到形象的效果,对排版内容以两个字为一组,依次设置由大到小不同的字号,基线对齐采用底齐的方式,那么在一个规则的矩形排版区域内的排版效果如图2所示,但是在实际排版过程中,为了充分利用排版空间并使排版元素之间不产生叠加关系,本实施例的文字排版的单调区域调整为如图3所示,如采用现有技术所述的方法,将本实施例中的文字“一步两个台阶”排入到如图3所示的单调区域内时,其排版结果如图4所示,文字“两个台阶”部分会被判断为排不下,排版的区域还有很多空闲;如采用本发明所述的方法,其排版效果将会大有不同,排版区域会得到充分利用,具体如下如图1所示,一种单调区域的文字排版方法,包括以下步骤
(1)在排版过程中,将排版区域分割为按序排列的单调区域,将拟排版的文字W所在的行设为当前行,并设置当前行所在的单调区域R为初始单调区域;本实施例中,如图3所示,拟排版的文字“一步两个台阶”所在的单调区域R是由交点1、2、3、4、5、6、7和交点8所组成的闭合区域,该单调区域即为初始的单调区域;(2)在步骤(1)中所述的初始单调区域内试排当前文字W,判断文字W所在的行即当前行的外接矩形B是否超出了初始单调区域,如果没有超出,则排版文字W,取得下一个文字作为当前文字继续排版,如果超出则执行步骤(3);本实施例中,在初始单调区域内,根据行外接矩形是否超出初始单调区域范围的判断方法确定能够排版下 “一步”两个字,其下一个字“两”作为当前文字进行试排时,判断为当前行的外接矩形如图5中的虚线框所示,超出了初始单调区域的范围,因此继续执行步骤(3);(3)如果文字W的高度等于所在行的行高,则进行折行处理并重复执行步骤(2),如果文字W的高度小于所在行的行高,则执行步骤(4);本实施例中,由于当前文字“两”的字高小于所在行的行高,因此执行步骤(4);(4)取得文字W排版前的行外接矩形C,通过行外接矩形C的上下边界并沿排版方向作平行线与初始单调区域R的边界相交,由此形成的闭合区域作为动态单调区域r,在动态单调区域r内排版文字W,如果排版成功,则执行步骤(5),否则执行步骤(6);在本实施例中,当前文字“两”之前的文字“一步”已经排版到了初始单调区域中,由文字“一步”所形成的行外接矩形为交点9、10、11、12所形成的矩形C,通过外接矩形C的上下边界即边线9-10和边线12-11沿排版方向所作的平行线即直线9-15和直线12-16与步骤(1)中所述的初始单调区域的边界相交,由此形成的闭合区域为动态单调区域如图6所示,即由交点10、13、3、4、5、6、14、11所围成的闭合区域即为动态单调区域r;其中在动态单调区域内排版文字W的具体步骤是1)根据文字W所在的当前行的基线对齐参数,计算出当前行的基线位置,作为文字W在动态单调区域r内的基线位置,基线对齐参数取值范围从0到256,其中0表示文字顶齐,256表示文字底齐,128表示文字中齐;本实施例中,根据当前文字“两”所在的当前行的基线对齐参数,本实施例中采用底齐的方式,确定当前行的基线位置,并作为当前文字“两”在动态单调区域r内排版时的基线位置;2)按照基线对齐位置对文字W进行试排,判断动态单调区域r内的已排版文字行的外接矩形是否超出动态单调区域r的范围,如果没有超出则排版文字W,否则排版失败;本实施例中,在由交点10、13、3、4、5、6、14、11所围成的动态单调区域r中,通过采用本步骤中比较行外接矩形是否超出动态单调区域r的方法,判断出当前文字“两”可以排下,因此对当前文字“两”进行排版,排版结果如图7所示;(5)取得下一个文字作为当前文字,以动态单调区域r作为初始单调区域,执行步骤(2);本实施例中,对于仍然未排版的文字“个台阶”依次按照本步骤(5)所述的方法进行排版,最终得到的排版结果如图8所示;(6)由于本实施例中,经过步骤(5)已完成所有文字的排版,不必再进行步骤(6)的操作,因此排版完所有的文字后,处理结束。
上述实施例是采用如图3所示的单调区域并且在基线对齐为底齐的情况下得到的,如果步骤(1)中的单调区域采用图9(b)或者图10(b)所示的排版区域,并且在步骤(4)中采用基线上齐或者中齐的对齐方式时,其排版效果的对比如图9、图10所示,其中图9(a)、图10(a)为排版区域为规则的矩形的情况下的效果示意图;图9(b)、图10(b)为排版区域的单调区域发生改变之后,采用现有方法后得到的排版效果示意图,因为将文字“两个台阶”判断为排不下,所以,只排版出了“一步”两个字;图9(c)、图10(c)是采用了本发明所述的方法之后,在与图9(b)、图10(b)同样的单调区域内排版同样文字后得到的不同效果示意图,结果是所有的文字都被排版了,充分利用了排版的版面空间。
本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
权利要求
1.一种单调区域的文字排版方法,包括以下步骤(1)在排版过程中,将排版区域分割为按序排列的单调区域,将拟排版的文字W所在的行设为当前行,并设置当前行所在的单调区域R为初始单调区域;(2)在步骤(1)中所述的初始单调区域内试排当前文字W,判断文字W所在的行即当前行的外接矩形B是否超出了初始单调区域,如果没有超出,则排版文字W,取得下一个文字作为当前文字继续排版,如果超出则执行步骤(3);(3)如果文字W的高度等于所在行的行高,则进行折行处理并执行步骤(2),如果文字W的高度小于所在行的行高,则执行步骤(4);(4)取得文字W排版前的行外接矩形C,通过行外接矩形C的上下边界并沿排版方向作平行线与初始单调区域R的边界相交,由此形成的闭合区域作为动态单调区域r,在动态单调区域r内排版文字W,如果排版成功,则执行步骤(5),否则执行步骤(6);(5)取得下一个文字作为当前文字,以动态单调区域r作为初始单调区域,执行步骤(2);(6)返回初始单调区域R,进行折行处理,然后按照步骤(2)对当前文字W进行排版,排版完所有的文字后,处理结束。
2.如权利要求1所述的一种单调区域的文字排版方法,其特征是步骤(4)中,在动态单调区域内排版文字W的具体步骤是1)根据文字W所在的当前行的基线对齐参数,计算出当前行的基线位置,作为文字W在动态单调区域r内的基线位置;2)按照基线对齐位置对文字W进行试排,判断动态单调区域r内的已排版文字的行外接矩形是否超出动态单调区域r的范围,如果没有超出则排版文字W,否则排版失败。
3.如权利要求2所述的一种单调区域的文字排版方法,其特征是基线对齐参数取值范围从0到256,其中0表示文字顶齐,256表示文字底齐,128表示文字中齐。
全文摘要
本发明涉及一种单调区域的文字排版方法,属于印刷前计算机排版领域。现有技术中,判断单调区域内能否排版当前文字W的方法是判断文字W排版后所在行的外接矩形是否超出了单调区域的范围,当单调区域不是规则的矩形的时候,这种处理方法往往不能准确的计算出单调区域能否排版文字W,从而导致排版区域不能被充分利用,影响了排版效果。本发明所述的方法是当以行外接矩形的方法判断不能排版文字W后,对原始的单调区域进行分割,计算新的单调区域,并在新的单调区域内进行文字排版。采用本发明所述的方法,可以明显提高文字排版的精确度,充分利用排版区域,具有良好的排版效果。
文档编号G06F17/25GK1952923SQ200610114740
公开日2007年4月25日 申请日期2006年11月22日 优先权日2006年11月22日
发明者闫国龙 申请人:北京北大方正电子有限公司, 北京大学, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1