一种面向分类信息广告报纸的自动排版方法与流程

文档序号:12176955阅读:604来源:国知局
一种面向分类信息广告报纸的自动排版方法与流程

本发明涉及一种面向分类信息广告报纸的自动排版方法,属于印刷前计算机排版技术领域。



背景技术:

通常,对于一些出版物,如书籍、报刊、杂志等,或一些有严格版面要求的公文、证书等,在印刷前都会消耗大量的人力资源进行排版设计工作。在我国,随着计算机技术的发展,自动排版技术也取得了巨大的进步,如中华人民共和国知识产权局专利号为201210350929.8的“公文自动排版方法和装置”,公布了一种根据各公文模板要素,与预设的规则组件之间进行匹配、关联,再通过相关联的规则组件,调整相关参数进行排版的公文自动排版方法;中华人民共和国知识产权局专利号为201110084529.2的“一种图书自动排版方法及系统”,公布了一种通过建立排版模版样式与书稿内容样式映射表,在Word文档中,先以段落为单位,用所映射的样式排完所有正文,再通过内容控制组件制作封面、扉页和版权页的图书自动排版方法。

在DM(Direct Mail or Direct Marketing,直复式营销)行业,分类广告公司在DM广告报纸的排版制作过程中通常需要投入大量人力和时间,这不仅延长了印刷品的制作周期,也使制作成本居高不下。随着人力成本、印刷成本的不断上涨,如何提高排版工作效率对DM企业的生存与发展具有重要现实意义。中华人民共和国知识产权局专利号为200610113130.1的“一种分类广告自动排版的方法”,公布了一种通过将排版区域离散为以基本面积单元为单位的二维排版区域网格,并将广告对象抽象为逻辑对象,进而根据逻辑对象在排版区域网格的位置将广告对象放置到版面对应的实际位置上的自动排版方法;中华人民共和国知识产权局专利号为201310214919.6的“分类广告自动排版方法及系统”,公布了一个与数据库相结合的对分类广告订单及其稿件文件进行操作的自动排版系统,并提及了一种根据计算而得的坐标位置加载每个稿件文件的自动排版方法。

现有已公开的分类广告自动排版相关专利存在以下不足。第一,对广告的类别属性考虑不足,只考虑了如何将所有广告个体放进排版区域网格,而对类与类之间在页面上的位置关系缺乏规划;第二,忽略了页面上可能出现的同样占据空间的非广告个体,如各级广告类别的标题图片、官方发布的公告或宣传标语等等。

实际上,目前市面上发行的分类广告报纸,无论是在外观样式上,还是在广告的排列方式上都趋于一致。这些分类广告报纸通常将每个页面根据指定的单位宽度和单位高度划分为一个二维网格区域,广告个体的宽固定为单位宽度,非广告个体的宽须为单位宽度的整数倍或其宽度恰好覆盖整数个列,所有个体的高则必须为单位高度的整数倍,所有个体按顺序从上至下,从左至右排列。



技术实现要素:

本发明依据这种分类信息广告报纸最为通用的排版规则,提出了一种更加简洁、高效的自动排版方法。

本发明中,广告的排列原则完全遵循前文中提到的分类广告报纸通用的排版规则,在排版页面中,单位块被定义为一个宽为单位宽度、高为单位高度的矩形块,单位面积大小即为矩形块面积的大小,广告面积数即为占用的单位块的个数。

本发明的一种面向分类信息广告报纸的自动排版方法,包括以下步骤:

一、自动排版准备。将本期有效的广告数据从数据库中筛选出来,存入XML文件。按实际需要将各个字库添加到执行排版的电脑系统中。制作各级类别标题图片、页眉页脚图片及官方通知公告图片等,并在执行排版的计算机中,将它们存入一个或多个专用的文件夹。

二、版面初始化。所述版面初始化包括广告数据预处理、设计页面母版、定义字符及段落样式。

三、位置计算。所述位置计算包括判断广告分布类型、根据分布类型计算个体位置,分布类型分为不能排满当前页面类型、恰好排满当前页面类型、溢出当前页面类型。

四、结果输出。所述结果输出包括添加类别标题、广告稿件输出、样式调整、空余补齐。

五、完善页面。所述完善页面包括添加页眉页脚、生成目录。

本发明的自动排版方法,使整体排版效果更贴近实际报纸页面,对广告及非广告个体位置的计算方法更加简便,各类别在页面上的排布也更加清晰明了。该方法不仅融入了上述的非广告个体,也使广告类别之间的分隔更加整齐、美观,排版所得的页面更加贴近实际发行的分类广告报纸。

附图说明

图1是本发明的整体运行逻辑流程图。

图2是初始化逻辑流程图。

图3是广告位置计算整体逻辑流程图。

图4是不能排满当前页面类型的计算逻辑流程图。

图5是恰好排满当前页面类型的计算逻辑流程图。

图6是溢出当前页面类型的计算逻辑流程图。

图7是输出某一类别的逻辑流程图。

具体实施方式

以下结合技术方案和附图详细叙述本发明的具体实施例。

步骤一:初始化

步骤1.1:广告数据预处理。读取XML文件,取出所有广告数据,将广告的各个属性,如编号、各级类别标题、面积、标题、正文,分别存进对应的数组中。在此过程中,记录各类的起始广告编号;记录本期广告涉及的各级类别标题个数和名称等。

步骤1.2:设计页面母版。创建新母版,指定度量单位,指定原点位置,设置页宽、页高、页边距等,指定单位宽度和单位高度,并以此创建页面网格及参考线。

步骤1.3:定义字符及段落样式。文字样式的设置与广告面积大小有关。将所有有效的广告面积划分为几个档,为每一档指定分别用于标题及正文的标准字符样式或标准段落样式。具体操作是:创建新的字符或段落样式,指定使用字体,设置字号、字距、字体颜色、行间距等,对于段落样式,还可以指定对齐方式。

步骤二:位置计算模块

步骤2.1:判断广告分布类型。广告位置计算是以广告类别为单位逐个循环计算的。对于每个广告类别,在开始计算前,需要判断本类广告的分布类型。分布类型有以下三种:不能排满当前页面、恰好排满当前页面、溢出当前页面。具体的判断步骤如下:

1、首先计算当前类别广告排列的起始位置,即当前页面空白区域的上边对应的纵坐标。

2、根据页面底边的纵坐标计算本页面剩余行数,在上述剩余行数下,计算排完本类别所有广告需要的列数。

3、若该列数小于页面总列数,则本类属于不能排满当前页面类型;若该列数恰好等于页面总列数,则本类属于恰好排满当前页面类型;若该列数大于页面总列数,则本类属于溢出当前页面类型。

步骤2.2:根据分布类型计算个体位置。不同分布类型下的计算步骤如下。

(一)不能排满当前页面类型

1、根据广告面积,计算当前类别中所有广告占用的单位块总数,用该总数除以页面总列数,向上取离商最近的整数,即为本类广告计划占用的行数,作为当前排版的行数上限。

2、根据上述行数,从页面的第一列开始,按广告编号顺序,将广告面积数叠加起来,并用数组将每个广告所在的列序号记录下来(列序号是指某列在某文档全部列中的序号,从第一页第一列开始,列序号依次增加)。此外也要将各级类别标题占用的行数计算进去。

3、在叠加过程中,记录本列已被占用的行数。一旦超过行数上限,用数组记录造成此列溢出的广告编号,并将该广告的面积减掉(当本类最后一个广告被排完,且所属列没有溢出,则将造成此列溢出的广告编号记为该广告的编号),计算该列末尾的空余行数,再存入专门记录每列空余行数的数组。

4、判断排在本列末尾的广告是否为本类最后一个广告,若不是,则继续执行步骤5;若是,判断是否还有剩余的空列,若有则直接记录这些列的空余行数,计算结束,若无则直接结束。

5、转向下一列,从步骤3中所述的造成溢出的广告开始,重复步骤2、3中的计算。

6、当页面最后一列被排完时,判断排在该列的最后一个广告是否为本类最后一个广告,若是,则计算结束;若不是,则执行步骤7。

7、在当前的行数上限基础上加一行,作为新的行数上限,再返回步骤2,重新计算各个广告的所属列号及各列的剩余行数等,如此循环往复,直至本类所有广告都被排好。

(二)恰好排满当前页面类型

1、将行数上限固定为当前页面的剩余行数。

2、根据此时的行数上限,执行上述(一)中的步骤2、3、5。由于在之前的计算中,已经确定广告一定会占用本页全部的列,所以在本类型中,不会出现当前的行数上限不够用的情况,换言之,排版计算过程只需执行一次,而且也不会出现最后一列无广告的情况。

3、判断是否需要调整。虽然本页全部列都会被占用,但为了页面的美观,防止最后一列出现大量空白,仍要判断最后一列被使用的行数是否太少,如果太少则需要调整。判定需要调整的标准是:最后一列的空余行数超过此时行数上限的一半。若需要调整,则执行步骤4;若无需调整,则计算结束。

4、所谓调整,即将本类所有广告,完全遵照(一)中的流程重新计算,即将本类重新按照不能排满当前页面的类型进行处理。重新计算后本类广告占用的总行数一定小于步骤1所述的行数上限。

(三)溢出当前页面类型

在该类型下,需要将本类所有广告分为两部分处理。

1、首先,将行数上限设置为当前页面的剩余行数。

2、执行上述(二)中的步骤2。在计算过程中记录造成本页最后一列溢出的广告编号,在该广告之前的所有广告称为本类的第一部分。由于此时并没有排完所有广告,因此无需进行调整。

3、将从上述造成溢出的广告开始,至本类末尾的所有剩余广告作为第二部分。将页面总行数作为当前行数上限,对第二部分进行排版计算,得出在当前行数上限下,排完第二部分共需多少个列。

4、若所需列数小于页面总列数,则执行步骤5;若所需列数恰好等于页面总列数,则执行步骤6;若所需列数大于页面总列数,则执行步骤7。

5、将第二部分完全遵照上述(一)中的流程重新进行计算,本类计算结束。

6、将第二部分完全遵照上述(二)中的流程重新进行计算,本类计算结束。

7、在页面总行数作为目前行数上限的情况下,从第二部分的第一个广告开始,执行上述(二)中的步骤2,记录造成本页最后一列溢出的广告序号,此时无需进行调整。

8、将从上述步骤7中造成溢出的广告开始,至本类末尾的所有剩余广告作为一个整体,完全遵照上述(一)中的流程重新进行计算,本类计算结束。

步骤三:结果输出模块

在某类别广告完成上述位置计算后,就要根据计算结果输出该类所有广告,该类输出结束后再进行下一个类别的广告位置计算。

步骤3.1:添加类别标题。在输出某个类的广告之前,需要先将该类别的标题图片放置在页面上。可以将这些标题图片以类名或类序号命名,再通过该名称进行查找和引用。

步骤3.2:广告稿件输出。从本类第一个广告开始,取出该广告所属列序号,在对应的列上,根据当前排列起始位置(当前要创建的广告文本框上边对应的纵坐标)及该广告面积数创建文本框,从相应的数组中取出广告标题和正文,按照与广告面积数对应的标准字符或段落样式放入文本框。

步骤3.3:样式调整。由于各广告的字数不完全相同,因此按照标准字符或段落样式输出后,可能出现文本溢出或未填满文本框的情况。为保证广告纵向连续,不会对文本框的大小进行调整,但会对广告文本的样式进行调整,使文本框恰好被占满。调整方法如下:

1、取文本框属性,判断当前文本框是否存在溢流文本。

2、若不存在,则执行步骤3;若存在,执行步骤4。

3、在文本当前使用的标准字符或段落样式基础上,按一定的幅度增大字号和行距,并应用于广告文本,判断此时文本框是否存在溢流文本,若不存在,则继续执行步骤3,否则将各样式的字号及行距恢复到上一次文本框未出现溢流时的值,将恢复后的值应用于广告文本,执行步骤5。

4、在文本当前使用的标准字符及段落样式基础上,按一定的幅度减小字号和行距,并应用于广告文本,判断此时文本框是否仍然存在溢流文本,若存在,则继续执行步骤4,否则执行步骤5。

5、将各样式的字号和行距恢复到预设的标准样式的值。

步骤3.4:空余补齐。根据事先存储的造成各列溢出的广告序号,当某列最后一个广告的样式被调整完后,从数组中取出该列末尾的剩余行数,并从特定文件夹中取出一个面积大小匹配的企业提供的公告或通知图片放置在该列末尾处补齐。

步骤四:完善页面

步骤4.1:添加页眉页脚。从特定文件夹中取出指定的页眉页脚图片,放置在页面相应的位置上。在页眉或页脚处创建一个或多个文本框,根据需要决定是否创建新的文字样式,按指定样式将发行日期及报纸期号填入其中。页码可以像日期一样在文本框中用文字写入,也可以在文本框中插入设计好的页码图片。

步骤4.2:生成目录。根据本期广告的各级标题生成目录,放置于首页。目录中包括各级类标题的名称和该类别的起始页码。

几点补充说明:

1、关于行数上限设置的特殊情况

实际上,行数上限是可能有大于1的下限值的。各类别都必有一个标题图片,如果该图片占用的行数大于1行,则本类的行数上限在任何情况下都应该至少为该标题图片占用的行数。

2、计算各级类别标题的占用行数

通常企业会专门为各级类别的标题进行艺术设计,因此标题多以图片形式出现。一般图片的高会设置为单位高度的整数倍,所以标题占用的行即为该倍数。各类别都至少会有一个标题图片,如果还有从属的二级类别,则要在计算过程中判断广告之间的二级类别是否相同,若不同,则要加上该二级类标题占用的行数。

3、各级类别标题的输出

承接上一点的叙述,对于每个类别,在正式输出广告之前,首先放置类别标题图片,如果有从属的二级类别,在输出过程中判断广告之间的二级类别是否相同,若不同,则取出对应的图片放置到页面上。

4、图片广告的输出

如果特定类别的广告全部是图片格式的,则以广告编号命名图片文件,创建一个或多个专门的文件夹存储这些图片,并设置需要输出图片的类别名称或序号。输出时,对即将输出的类别进行判断,如果是全图片的类别,则在创建文本框后根据广告编号引用图片,省略掉文本输出及样式调整的步骤。

如果是个别的广告为图片格式,同样以广告编号命名图片文件并存储起来。此时应专门为广告设置一个属性标记其格式类型,可以用0、1来简单表示文本和图片两种类型,并用一个数组存储各广告对应的值,输出时,先取对应的数组值判断格式类型,其余操作与上一种情况相同。

5、目录的生成

在数据预处理过程中,已经记录了各级类别标题的个数和名称,也记录了各类别的起始广告编号,在所有排版结束之后,就可以根据起始广告的所属列序号计算该类的起始页码,由类名和其起始页码就可以输出目录了。为了使页面更加整齐,采用横向目录的形式,且由于目录一般位于报纸扉页,所以要提前根据类别总数计算目录占用的总行数,在计算第一个类别的广告位置时要将这些行数考虑进去。计算目录占用行数的方法如下:

1)将单位高度等分为m份,再将整个页宽等分为n份,目录部分即被划分为单位高度为1/m,单位宽度为1/n的虚拟网格区域。每个网格中应能且仅能容纳一个目录条目。

2)创建目录使用的字符样式,根据1/m的单位高度确定字号大小。

3)各级类名的排列与广告排列规则相同,各条目按列纵向排开,当前列排满后再排下一列。另外,如果目录有标题,还要计入标题图片占用的空间,目录标题图片的高应为1/m单位高度的整数倍,宽应能覆盖整数个目录列。

4)计算目录条目总数(包括标题占用的),先除以n,向上取离商最近的整数p,表示目录要占用p个1/m单位高度,再用p除以m,再次向上取离商最近的整数h,则整个目录占用的行数为h。

6、官方公告或通知等图片的制作及输出

从排版的效果来看,此类图片与广告个体是等价的,它们都遵循同样的排列规则,尺寸规格的设置也完全相同。

此类图片的输出是由排版过程中各列出现的空行数量决定的,各列空行的多少取决于当期所有广告面积的具体分布情况,这样的不确定性导致了不是所有的官方图片都一定会被输出。为了尽可能保证重要图片被输出且尽可能使所有图片被输出,采用以下的解决方法:

1)从1单位面积开始制作官方图片,面积上限根据实际需要决定。

2)为不同面积大小的官方图片创建不同的文件夹分别存储起来。对于特别重要的通知,制作多个不同面积版本的图片,分别放入对应文件夹。

3)在各文件夹内,根据重要程度排序并以序号为图片命名。从1开始,由小到大编号,重要程度依次递减。序号小的图片会优先输出。

4)输出开始前,取出各文件夹下的所有图片,按序号由小到大的顺序分别存入不同的数组。

5)需要输出官方图片时,根据空行大小取对应的图片文件数组。首次需要时,引用数组第一个元素对应的图片,记录对应下标,当再次需要填充该面积的图片时,根据上述下标引用下一个图片,当最后一个图片也已被引用后,则下次再次引用序号为1的图片。

这样循环取用图片的方式要求企业及时删除作废的图片。另外在制作中,不必保证每个广告面积数都必须有一个官方图片。如果某列空行数量较多,可以设置输出两个或三个较小面积图片的组合,组合中各个面积的图片仍采用上述循环取用的方式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1