一种排版方法及系统 【技术领域】
本发明属于印前计算机排版技术领域,具体涉及一种排版方法及系统。
背景技术
在计算机排版领域中,对于一个给定形状和尺寸的排版页面,要将不同形状和尺寸的素材填充到排版页面中,目前常用方法为针对每一页排版页面,按宽或高优先、面积优先等固定规则取待排素材放置到排版页面上,一个排版页面排满后,继续下一个排版,直到所有素材排完为止。现有方法没有考虑到不同大小素材之间的优先组合关系,是一种相对盲目的试错型的方法,需要多次反复回溯,因而其排版效率低。
【发明内容】
针对现有技术中存在的缺陷,本发明目的是提供一种排版效率高的排版方法及系统。
为了实现上述目的,本发明采用的技术方案是,一种排版方法,包含如下步骤:
(1)在排版页面高或宽方向上获取待排素材的所有组合;
(2)从所有待排素材中选取在数量上排名前K位的素材,所述K为自然数且不小于2;
(3)根据排名前K位素材的高度或宽度计算每组组合中每种类型的素材相对于排名前K位素材的得分;
(4)计算每组组合所得的总分并根据每组组合所得的总分从所有组合中选取一个优选组;
(5)根据优选组中各素材的尺寸计算所有待排素材的排序权值;
(6)根据素材的排序权值将待排素材排放到排版页面上。
进一步,步骤(3)中根据排名前K位素材的高度计算每组组合中每种类型的素材相对于排名前K位素材的得分的方法如下:
将在数量上排名前K位的素材的高度记为H1、H2、H3......HK,数量记为C1、C2、C3......CK,所述数量是指某种类型的素材在待排素材中的个数;对于任意组合G0,由高度分别为h1、h2、h3......hn的素材组成,其高度种数D为n,所述高度种数是指一个组合中不同高度素材的数量;高度分别为h1、h2、h3......hn的素材对应的数量为c1、c2、c3......cn;设组合G0中的具体一个素材的高度为hi,1≤i≤n;计算该素材相对于排名前K位的素材的得分的函数为Fi(Hi,Ci),如果hi不在H1、H2、H3......HK之中,则Fi(Hi,Ci)=0;如果hi在H1、H2、H3......HK之中,设hi=Hj,1≤j≤k,则根据在数量上排名前K位素材中高度为Hj的素材的数量Cj和组合G0中高度为hi的素材的数量ci之间的关系按下述公式确定Fi(Hi,Ci)的值:
当Cj≥ci时,Fi(Hi,Ci)=ci;
当Cj<ci时,Fi(Hi,Ci)=Cj-ci。
进一步,步骤(5)中所述计算所有待排素材的排序权值的方法为,每个待排素材的排序权值M为优选组的高度种数D与每组组合中各种类型素材相对于排名前K位的素材的得分的乘积,即M=D×Fi(Hi,Ci)。
进一步,步骤(1)中的每个待排素材的组合中,各素材高的总和等于排版页面的高,或者各素材宽的总和等于排版页面的宽。
进一步,步骤(2)中,2≤K≤10。
进一步,步骤(4)中将总分最大的组合作为优选组。
进一步,步骤(6)中,按照素材的排序权值从大到小的顺序将待排素材排到排版页面上。
进一步,步骤(6)中,不同类型素材的排序权值相等时按素材面积从大到小的顺序排版。
为实现本发明地目的,本发明还提供一种排版系统,包括用于在排版页面高或宽方向上获取待排素材所有组合的素材组合获取模块(71);
用于从所有待排素材中选取在数量上排名前K位素材的素材选取模块(72),所述K为自然数且不小于2;
用于根据排名前K位素材的高度或宽度计算每组组合中每种类型的素材相对于排名前K位素材的得分和每组组合的总得分的素材得分计算模块(73);
用于根据每组组合的总得分从所有组合中选取一个优选组的优选组选择模块(74);
用于根据优选组中各素材的尺寸计算所有待排素材的排序权值的排序权值计算模块(75);
以及用于根据素材的排序权值将待排素材排放到排版页面上的排版模块(76)。
本发明的效果在于:由于本发明是根据不同大小素材之间的优先组合关系来排版,因而能大大减少回溯次数,从而提高了排版效率。
【附图说明】
图1是本发明所述一种排版方法的流程图;
图2为本发明实施例中所有待排素材示意图;
图3为本发明实施例中已排版好3×4的素材和1×2的素材后排版页面B1示意图;
图4为本发明实施例中已排版好3×3的素材后排版页面B2示意图;
图5为本发明实施例中已排版好2×2素材后排版页面B1示意图;
图6为本发明实施例中已排版好5×4素材后排版页面B2示意图;
图7是本发明所述一种排版系统结构图。
【具体实施方式】
下面结合说明书附图和具体实施方式对本发明作进一步的描述。
本发明所述一种排版方法的流程如图1所示,包括如下步骤:
步骤S11:获取素材的所有组合。
此步骤具体为在排版页面高或宽方向上获取待排素材的所有组合。所述的组合是由待排素材构成的,并要求构成组合的各个素材高的总和等于排版页面的高或构成组合的各个素材宽的总和等于排版页面的宽。以排版图2所示的待排素材为例,共有8个待排素材,其中2个3×4的素材,1个2×2的素材,1个3×3的素材,2个1×2的素材,1个5×4的素材,1个3×1的素材;排版页面大小为8×4。本实施例中,采用在排版页面宽方向上获取待排素材的所有组合:第一种组合由1个3×4的素材组成,第二种组合由1个2×2的素材和1个1×2的素材组成,第三种组合由1个3×3的素材和1个3×1的素材组成,第四种组合由1个5×4的素材组成,共计上述四种组合。
步骤S12:选取前K位素材。
此步骤具体为从所有待排素材中选取在数量上排名前K位的素材。所述K为自然数且不小于2,一般情况下K为2至10。前K位素材要求是不同大小的素材,即是不同类型的素材。在本实施例中,选取在数量上排名前2位的素材,分别为3×4的素材和1×2的素材。
步骤S13:计算每组组合中每种类型素材的得分。
此步骤具体为根据排名前K位的素材的高度或宽度计算每组组合中每种类型的素材相对于排名前K位的素材的得分。计算每组组合中每种类型的素材相对于排名前K位的素材的得分的方法有多种,本实施例中,根据排名前K位素材的高度采用下面方法来计算:
将在数量上排名前K位的素材的高度记为H1、H2、H3......HK,数量记为C1、C2、C3......CK,所述数量是指某种类型的素材在待排素材中的个数。对于任意组合G0,由高度分别为h1、h2、h3......hn的素材组成,其高度种数D为n,所述高度种数指一个组合中高度不同素材的数量。高度分别为h1、h2、h3......hn的素材对应的数量为c1、c2、c3......cn。设G0中的具体一个素材的高度为hi,1≤i≤n。计算该素材相对于排名前K位的素材的得分的函数为Fi(Hi,Ci),如果hi不在H1、H2、H3......HK之中,即在数量上排名前K位素材中没有高度为hi的素材,那么Fi(Hi,Ci)=0;如果hi在H1、H2、H3......HK之中,设hi=Hj,1≤j≤k,则根据在数量上排名前K位素材中高度为Hj的素材的数量Cj和组合G0中高度为hi的素材的数量ci之间的关系确定Fi(Hi,Ci)的值:
当Cj≥ci时,Fi(Hi,Ci)=ci;
当Cj<ci时,Fi(Hi,Ci)=Cj-ci。
按照上述计算方法得到本实施例第一种组合中3×4的素材的得分为2,第二种组合中2×2的素材的得分为0,1×2的素材的得分为2,第三种组合中3×3的素材和3×1的素材的得分都为1,第四种组合中5×4的素材的得分为0。
上述方法中,如果根据排名前K位素材的宽度计算,只需将其中的高度换为宽度即可。
步骤S14:计算每组组合所得的总分并选取优选组。
此步骤具体为计算每组组合所得的总分,根据每组组合所得的总分从所有组合中选取一个优选组。计算每组组合所得的总分的具体方法就是将每种组合中各种类型的素材的得分加起来。本实施例中,根据步骤S13中得到的各种组合中各种类型的素材的得分,可以得到第一种组合的总分为2,第二种组合的总分为2,第三种组合的总分为2,第四种组合的总分为0。得到每组组合的总分后,再根据总分选取优选组。根据总分选取优选组的方法有多种。本实施例中,采用将总分最大的组合选作为优选组,总分最大的得分为2,但有三个组合,一个是第一种组合,另一个为第二种组合,还有一个为第三种组合,当出现这种总分最大的组合同时有几个时,可选其中任一一个总分最大的组合选作为优选组,本实施例中选取第二种组合为优选组。
步骤S15:根据优选组计算各种类型的素材的排序权值。
此步骤具体为根据优选组中各素材的尺寸计算各种类型的素材的排序权值。这里根据优选组中各素材的尺寸计算各种类型的素材的排序权值的方法也有多种,本实施例采用一个函数来计算,此函数具体为优选组合的高度种数D与每组组合中各种类型素材相对于排名前K位的素材的得分的乘积,即M=D×Fi(Hi,Ci)。其中Fi(Hi,Ci)就是步骤S13中计算每组组合中每种类型的素材相对于排名前K位的素材的得分的函数。按上述计算方法可以得到3×4的素材的排序权值为4,2×2的素材的排序权值为0,1×2的素材的排序权值为4,3×3的素材和3×1的素材的排序权值都为2,5×4的素材的排序权值也为0。
步骤S16:根据素材的排序权值将素材排入排版页面。
此步骤具体为根据素材的排序权值将待排素材排放到排版页面上。本实施例中,采用按照素材的排序权值从大到小顺序将待排的素材排到排版页面上。当某种排序权值的素材有几种不同的类型时,按素材面积从大到小的顺序将素材排到版面上。当不同类型素材的排序权值和面积均相等时,任意排版。本实施例中,最大排序权值为4,但有两种不同的类型的素材,即3×4的素材的排序权值和1×2的素材的排序权值都为4,这时按素材面积从大到小的顺序将素材排到版面上,所以先排3×4的素材,再排1×2的素材,这两种类型的素材排好后排版页面B1的情况如图3所示。排好3×4的素材和1×2的素材后,接下来排版排序权值为2的素材,即3×3的素材和3×1的素材,按素材面积从大到小的顺序先排3×3的素材,后排3×1的素材。由于排好3×4的素材和1×2的素材后,当前排版页面B1不能排下3×3的素材,这时需要另起一个新的排版页面B2,将3×3的素材排放在新的排版页面B2上,如图4所示。然后将3×1的素材也排放在新的排版页面B2上,即将3×1的素材22排放到图4的41处。其余待排素材的排序权值都为0,按素材面积从大到小的顺序将素材排到版面上,即按5×4的素材、2×2的素材的顺序将其排放到排版页面上。也就是说先将5×4的素材23排放到图4所示排版页面B2的42处。然后将2×2的素材21排放到图3所示排版页面B1的31处。图5和图6便是最终的排版结果。
一种实现上述方法的排版系统的结构如图7所示,包括用于在排版页面高或宽方向上获取待排素材所有组合的素材组合获取模块71;
用于从所有待排素材中选取在数量上排名前K位素材的素材选取模块72,所述K为自然数且不小于2;
用于根据排名前K位素材的高度或宽度计算每组组合中每种类型的素材相对于排名前K位素材的得分和每组组合的总得分的素材得分计算模块73;
用于根据每组组合的总得分从所有组合中选取一个优选组的优选组选择模块74;
用于根据优选组中各素材的尺寸计算所有待排素材的排序权值的排序权值计算模块75;
以及用于根据素材的排序权值将待排素材排放到排版页面上的排版模块76。
本发明所述的方法及系统并不限于具体实施方式中所述的实施例,例如计算每组组合中每种类型素材的得分、选取优先组、以及根据素材排序权值的排版顺序等可以采用其他的方法实现。因此,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。