一种根据版心背景格对文字块进行自动分栏的方法转让专利

申请号 : CN200610066428.1

文献号 : CN1821994B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 唐英敏姜来郑海棠

申请人 : 北京北大方正电子有限公司北京大学

摘要 :

本发明属于印刷排版领域,具体涉及一种根据版心背景格对文字块进行自动分栏的方法。现有的方法中,排版人员对文字块进行分栏时,按照文字块的宽度进行平均分栏,然后再手工进行调整栏线位置,以使文字块栏线的位置与版心背景格栏线的位置重合,费时费力,准确性不高。本发明所述的方法,首先确定文字块和版心背景格的相对位置;然后据此确定文字块第一栏的起始边和终止边的位置,并确定文字块每一栏的栏宽;最后根据确定的文字块的栏宽进行自动分栏。采用本发明所述的方法,使排版人员在对文字块进行分栏操作时可以实现自动分栏,不必手工调整栏宽,可以实现既准确又快速地在版心背景格的特定位置对文字块进行自动分栏,精确性和效率均大大提高。

权利要求 :

1.一种根据版心背景格对文字块进行自动分栏的方法,包括以下步骤:

(1)确定需要分栏的文字块,获取版心背景格的信息,得到版心各栏的栏宽数组,确定文字块和版心背景格的相对位置;

(2)根据文字块和版心背景格的相对位置,确定文字块第一栏的起始边和终止边的位置,并确定文字块每一栏的栏宽,所述的文字块起始边是指横向排版时文字块外包框的左边或者竖向排版时文字块外包框的顶边,所述的文字块终止边是指横向排版时文字块外包框的右边或者竖向排版时指文字块外包框的底边;

(3)根据步骤(2)中确定的文字块的栏宽进行分栏。

2.如权利要求1所述的一种根据版心背景格对文字块进行自动分栏的方法,其特征是:步骤(2)中,确定文字块第一栏的起始边和终止边的位置时,具体方法如下:初始化N=-1,N表示文字块当前栏起始边在版心栏的序号,N=-1表示文字块当前栏起始边在版心区域以外,取出版心背景格的信息,从中得到版心的栏宽数组,用dStart和dEnd分别表示文字块当前栏的起始边的坐标值和终止边的坐标值,对应的栏宽是dEnd-dStart,用hStart和hEnd分别表示版心起始边的坐标值和版心终止边的坐标值,所述版心区域的坐标原点是标尺原点,X轴的正方向向右,Y轴的正方向向下,然后进行以下操作,

1)如果文字块起始边的坐标值<(hStart-栏间距),则N=-1,dStart=文字块起始边的坐标值,dEnd=hStart-栏间距;

2)如果文字块起始边的坐标值>=hEnd,则N=-1,dStart=文字块起始边的坐标值,dEnd=文字块终止边的坐标值;

3)如果不满足前面两个条件,则文字块的起始边在版心区域内,则根据文字块起始边坐标值与版心各栏起始边、终止边的坐标值确定N的数值,其中,版心背景格的分栏数>N>=0,dStart=文字块起始边的坐标值,dEnd=版心第N栏终止边的坐标值。

3.如权利要求1或2所述的一种根据版心背景格对文字块进行自动分栏的方法,其特征是:步骤(2)中,确定文字块每一栏的栏宽时,具体方法如下:a.当dStart<文字块终止边的坐标值,并且文字块当前的分栏数<版心分栏数+2时,进入循环;

b.如果dStart>=hEnd、或者dEnd<=版心第N+1栏起始边的坐标值,则当前栏是文字块的最后一栏,dEnd=文字块终止边的坐标值,退出循环;

c.否则就不是最后一栏,dEnd=版心第N栏终止边的坐标值,文字块当前栏的栏宽=dEnd-dStart;

d.然后,版心栏序号N=N+1,dStart=dEnd+栏间距,更新版心第N栏的起始边和终止边的坐标值,重复步骤a到d。

4.如权利要求3所述的一种根据版心背景格对文字块进行自动分栏的方法,其特征是:确定文字块的栏宽时:

1)如果文字块的起始边落在版心第N栏终止栏线和第N+1栏起始栏线之间的区域内,则将从文字块起始边到第N+1栏的起始栏线处的部分并入文字块的第一栏,栏间距区域内的部分不单独分为一栏;

2)如果文字块的终止边落在版心第N栏终止栏线和第N+1起始栏线之间的区域内,则将从第N栏终止栏线到文字块终止边的部分并入文字块的最后一栏。

5.如权利要求1或2所述的一种根据版心背景格对文字块进行自动分栏的方法,其特征是:步骤(3)中,文字块内所有栏的栏宽确定之后,分栏之前,如果排版方向是反向横排,则把栏宽数组进行反转。

6.如权利要求4所述的一种根据版心背景格对文字块进行自动分栏的方法,其特征是:步骤(3)中,文字块内所有栏的栏宽确定之后,分栏之前,如果排版方向是反向横排,则把栏宽数组进行反转。

说明书 :

技术领域

本发明属于印刷排版领域,具体涉及一种根据版心背景格对文字块进行自动分栏的方法。

背景技术

在印刷排版领域中,对文字进行排版是很重要的工作流程,目前,用排版软件进行排版过程中,当进行文字排版处理时,文字块的位置确定之后,常常需要把文字块按照版心背景格栏线的位置进行分栏。
目前常见的分栏方法是按照文字块的宽度进行平均分栏,该方法并没有考虑文字块位置、版心背景格等信息,因此通常情况下,分栏后文字块栏线的位置与版心背景格栏线的位置不能完全重合,二者之间存在一些差别,如果需要文字块在版心背景格的特定位置进行分栏的效果,则需要排版人员在分栏之后手动调整栏线位置,使文字块栏线的位置与版心背景格栏线的位置重合。
由上述的描述可见,现有分栏方法的缺点是:需要经过分栏和手动调整栏线两步操作才能达到在版心背景格的特定位置分栏的目的;手动调整栏线位置费时费力,降低了排版效率;手动操作受鼠标移动最小距离的影响,而存在一定误差,这些误差通过手动操作几乎不可消除。

发明内容

针对现有技术中存在的缺陷,本发明的目的是提供一种根据版心背景格对文字块进行自动分栏的方法,该方法能够让排版人员通过简单的一步操作,准确快速地在版心背景格的特定位置对文字块进行分栏。
为达到以上目的,本发明采用的技术方案是:一种根据版心背景格对文字块进行自动分栏的方法,包括以下步骤:
(1)确定需要分栏的文字块,获取版心背景格的信息,得到版心各栏的栏宽数组,确定文字块和版心背景格的相对位置;
(2)根据文字块和版心背景格的相对位置,确定文字块第一栏的起始边和终止边的位置,并确定文字块每一栏的栏宽,所述的文字块起始边是指横向排版时文字块外包框的左边或者竖向排版时文字块外包框的顶边,所述的文字块终止边是指横向排版时文字块外包框的右边或者竖向排版时指文字块外包框的底边;
(3)根据步骤(2)中确定的文字块的栏宽进行分栏。
进一步,步骤(2)中,确定文字块第一栏的起始边和终止边的位置时,具体方法如下:初始化N=-1,N表示文字块当前栏起始边在版心栏的序号,N=-1表示文字块当前栏起始边在版心区域以外,取出版心背景格的信息,从中得到版心的栏宽数组,用dStart和dEnd分别表示文字块当前栏的起始边的坐标值和终止边的坐标值,对应的栏宽是dEnd-dStart,用hStart和hEnd分别表示版心起始边的坐标值和版心终止边的坐标值,所述版心区域的坐标原点是标尺原点,X轴的正方向向右,Y轴的正方向向下,然后进行以下操作,
1)如果文字块起始边的坐标值<(hStart-栏间距),N=-1,dStart=文字块起始边的坐标值,dEnd=hStart-栏间距;
2)如果文字块起始边的坐标值>=hEnd,N=-1,dStart=文字块起始边的坐标值,dEnd=文字块终止边的坐标值;
3)如果不满足前面两个条件,则文字块的起始边在版心区域内,则根据文字块起始边坐标值与版心各栏起始边、终止边的坐标值确定N的数值,其中,版心背景格的分栏数>N>=0,dStart=文字块起始边的坐标值,dEnd=版心第N栏终止边的坐标值。
进一步,步骤(2)中,确定文字块每一栏的栏宽时,具体方法如下:
a.当dStart<文字块终止边的坐标值,并且文字块当前的分栏数<版心分栏数+2时(因为自动分栏的文字块最多可以分成的栏数=版心分栏数+2),进入循环;
b.如果dStart>=hEnd、或者dEnd<=版心第N+1栏起始边的坐标值,则当前栏是文字块的最后一栏,dEnd=文字块终止边的坐标值,退出循环;
c.否则就不是最后一栏,dEnd=版心第N栏终止边的坐标值,文字块当前栏的栏宽=dEnd-dStart;
d.然后,版心栏序号N=N+1,dStart=dEnd+栏间距,更新版心第N栏的起始边和终止边的坐标值,重复步骤a到d。
更进一步,确定文字块的栏宽时:
1)如果文字块的起始边落在版心第N栏终止栏线和第N+1栏起始栏线之间的区域内,则将从文字块起始边到第N+1栏的起始栏线处的部分并入文字块的第一栏,栏间距区域内的部分不单独分为一栏;
2)如果文字块的终止边落在版心第N栏终止栏线和第N+1起始栏线之间的区域内,则将从第N栏终止栏线到文字块终止边的部分并入文字块的最后一栏。
进一步,步骤(3)中,文字块内所有栏的栏宽确定之后,分栏之前,如果排版方向是反向横排,则把栏宽数组进行反转。
本发明的效果在于:采用本发明所述的方法,排版人员在对文字块进行分栏操作时可以实现自动分栏,不必手工调整栏宽,可以实现既准确又快速地在版心背景格的特定位置对文字块进行自动分栏,精确性和效率均大大提高。

附图说明

图1是本发明所述方法的具体实施方式的流程图;
图2横排的版心示意图;
图3正向横排的文字块不分栏的效果示意图;
图4正向横排的文字块自动分栏的效果示意图;
图5正向竖排文字块不分栏的效果示意图;
图6正向竖排文字块自动分栏的效果示意图;
图7正向横排文字块的起始边、终止边在版心栏间距区域内的不分栏效果示意图;
图8正向横排文字块的起始边、终止边在版心栏间距区域内的自动分栏效果示意图;
图9正向横排文字块的起始边、终止边在版心栏间距区域内未经特殊处理的模拟效果示意图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步的描述:
如图2所示,版心21分为四个栏,分别为第0栏24、第1栏25第2栏26第3栏27,版心起始边和终止边分别如图2中的22、23所示,第1栏起始边和终止边分别如图2中的28、29所示。其中的网格为版心背景格,版心背景格填充整个版心21区域。
本实施例中,首先定义下面技术术语的含义:
文字块起始边:横向排版时指文字块外包框的左边(X值,如图4中的41),竖向排版时指文字块外包框的顶边(Y值,如图6中的61)。
文字块终止边:横向排版时指文字块外包框的右边(X值,如图4中的42),竖向排版时指文字块外包框的底边(Y值,如图6中的62)。
版心当前栏的起始边:横向排版时指版心当前栏排版区域的最左位置(X值,如图2中的28表示第1栏的起始边),竖向排版时指版心当前栏排版区域的最顶位置(Y值)。
版心当前栏的终止边:横向排版时指版心当前栏排版区域的最右位置(X值,如图2中的29表示第1栏的终止边),竖向排版时指版心当前栏排版区域的最底位置(Y值)。
版心起始边:横向排版时指版心区域的最左位置(X值,如图2中的22),竖向排版时指版心区域的最顶位置(Y值)。
版心终止边:横向排版时指版心区域的最右位置(X值,如图2中的23),竖向排版时指版心区域的最底位置(Y值)。
本实施例中,所述版心区域的坐标原点是标尺原点,X轴的正方向向右,Y轴的正方向向下。
如图1所示,一种根据版心背景格对文字块进行自动分栏的方法,包括以下步骤:
(1)首选确定需要分栏的文字块,获取版心背景格的信息,得到版心各栏的栏宽数组,确定文字块和版心背景格的相对位置;
(2)根据文字块和版心背景格的相对位置,确定文字块第一栏的起始边和终止边的位置,并确定文字块每一栏的栏宽;
确定文字块第一栏的起始边和终止边的位置时,本实例中采用的具体方法如下:
初始化N=-1,N表示文字块当前栏起始边在版心栏的序号,N=-1表示文字块当前栏起始边在版心区域以外,取出版心背景格的信息,从中得到版心各栏的栏宽数组,用dStart和dEnd分别表示文字块当前栏的起始边的坐标值和终止边的坐标值,对应的栏宽是dEnd-dStart,用hStart和hEnd分别表示版心起始边的坐标值和版心终止边的坐标值,然后进行以下操作,
1)如果文字块起始边的坐标值<(hStart-栏间距),N=-1,dStart=文字块起始边的坐标值,dEnd=hStart-栏间距;
2)如果文字块起始边的坐标值>=hEnd,N=-1,dStart=文字块起始边的坐标值,dEnd=文字块终止边的坐标值;
3)如果不满足前面两个条件,则文字块的起始边在版心区域内,则根据文字块起始边坐标值与版心各栏起始边、终止边的坐标值确定N的数值,其中,版心背景格的分栏数>N>=0,dStart=文字块起始边的坐标值,dEnd=版心第N栏终止边的坐标值。
确定文字块每一栏的栏宽时,本实施例中采用的具体方法如下:
a.当dStart<文字块终止边的坐标值,并且文字块当前的分栏数<版心分栏数+2时,进入循环;
b.如果dStart>=hEnd、或者dEnd<=版心第N+1栏起始边的坐标值,则当前栏是文字块的最后一栏,dEnd=文字块终止边的坐标值,退出循环;
c.否则就不是最后一栏,dEnd=版心第N栏终止边的坐标值,文字块当前栏的栏宽=dEnd-dStart;
d.然后,版心栏序号N=N+1,dStart=dEnd+栏间距,更新版心第N栏的起始边和终止边的坐标值,重复步骤a到d。
如图7和图8所示,如果在上述确定栏宽的过程中,遇到下述问题则特殊处理:
1)如果文字块的起始边落在版心第N栏终止栏线和第N+1栏起始栏线之间的区域内,如图8中的81所示,则从文字块起始边到第N+1栏的起始栏线处,并入文字块的第一栏,栏间距区域内的部分不单独分为一栏。图8中,文字块起始边81落在版心第1栏终止栏线83和第2栏起始栏线84之间的区域内,如果严格地把文字块分成所有栏的栏宽和版心栏宽都相等的情况,就会出现图9的结果,图中区域91的宽度不够1个栏间距的宽度,排版中也不允许出现半个栏间距的情况,因此把图9中的91区域合并到文字块的第一栏,就是图8的效果。这样,当文字块在版心区域中进行自动分栏时,文字块一栏的最大宽度=版心栏宽+1个版心栏间距;文字块在版心区域外时,就不受这个最大宽度的限制了。
2)如果文字块的终止边落在版心第N栏终止栏线和第N+1起始栏线之间的区域内,如图8中的82所示,则从第N栏终止栏线到文字块终止边,并入文字块的最后一栏。图8中,文字块终止边82落在版心第3栏终止栏线85和第4栏起始栏线86之间的区域内,合并前后的对比参见图8和图9。
(3)根据步骤(2)中确定的文字块的栏宽进行分栏,文字块内所有栏的栏宽确定之后,如果排版方向是反向横排,就把栏宽数组进行反转,在其它排版方向时保持不变。然后进行分栏,分栏的方法与现有的普通分栏方法相同。
如图3、图5、图7是没有根据版心背景格进行文字块分栏的示意图,图4、图6、图8分别是图3、图5、图7采用本发明所述方法根据版心背景格自动分栏后的效果示意图。如图3和图4所示,当版心背景格是横排时,网格行附近的数字表示版心背景格行序号,网格列附近的数字表示版心背景格栏的序号。图4中,41表示文字块起始边,42表示文字块终止边。图8是图7采用本发明所述方法特殊处理后的效果,图9是图7中没有用本发明所述方法特殊处理的效果,实际排版中不会出现图9的效果。
另外,对本发明所述的分栏方法其应用范围说明如下:
(1)只有当文字块的排版方向和版心背景格的排版方向都是横排或者都是竖排的时候,本发明所述的自动分栏才会有效果;如果版心背景格是横排,文字块是竖排,或者版心背景格是竖排,文字块是横排,则该文字块只有一栏。当文字块的排版跟版心背景格的排版方向调整为一致后,仍然可以得到根据本发明所述的方法进行自动分栏后的效果。
(2)只有文字块与版心有重叠区域的时候,本发明所述的自动分栏才有效果;如果文字块与版心没有重叠区域,则该文字块为一栏。当调整文字块或者版心使两者有重叠区域后,仍然可以得到根据本发明所述的方法进行自动分栏后的效果。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。