一种文字的可变数据排版的方法

文档序号:6560786阅读:479来源:国知局
专利名称:一种文字的可变数据排版的方法
技术领域
本发明属于印前计算机排版技术领域,具体涉及一种文字的可变数据排版的方法。
背景技术
目前,在各种出版物印刷前的排版工作中,经常会遇到对大数据量的文字内容进行有规律地排版并且文字内容之间又相互关联的情况,这种排版的规律性体现在文字排版的样式相同,仅是文字的内容不同;而相互关联则体现在对于排版后的文字,如果需要再次编辑或者增删前面的文字,其后面文字的排版位置需要联动变化,例如字典的排版,如果删除前面的一个字及其所有的注释,则其后面的字需要相应的跟上补白,或者插入一个新字及其相关信息时,其后面的字需要相应地自动后移。在出版物印前的排版工作中,排版数据的增删和修改是经常出现的,因此大数据量的文字排版后,在其再编辑的过程中支持排版数据的联动是必要的。
目前,现有的可变数据排版技术中,文字的可变数据排版的实现方法是根据排版的数据内容创建指定样式的文字块,然后根据排版数据直接将文字块内指定的可变内容项进行替换,排版的效果简单,排版后的版面相对固定,排版结果为多个独立的文字块,无法保持排版结果再编辑过程中的联动性,造成排版结果的再次编辑的困难;同时也难以支持大数据量文字一个页面排不下,需连续排版到多个页面上的要求。这些都限制了可变数据排版的应用场景。

发明内容
针对现有技术中存在的缺陷,本发明的目的是提供一种文字的可变数据排版的方法,该方法在对大数据量的文字内容进行有规律地排版并且文字内容之间又相互关联时,能够使文字排版的效果更加丰富灵活,同时能够支持排版结果再编辑的可联动性,支持跨页排版,能够进一步扩展可变数据排版的应用范围。
为达到以上目的,本发明采用的技术方案是一种文字的可变数据排版的方法,包括以下步骤
(1)将需要进行排版的内容即文字数据转换为XML格式的数据,同时得到基于XML的排版内容的数据结构,如果需要排版的文字数据已是XML格式的数据,则直接进入步骤(2);(2)根据需要排版的文字数据内容,在排版系统中设计文字流模板,然后解析文字流模版,按照段、行、可变内容项三个层次构建和初始化文字流模版的节点树,即文字流模板的段、行、可变内容项对应节点树的段节点、行节点、可变内容项节点,其中段节点、行节点为枝干节点,可变内容项节点为叶子节点;(3)按照段、行、可变内容项从上至下的顺序,逐级设置文字流模版节点树各个节点与步骤(1)中基于XML的排版内容数据结构之间的关联;(4)依照步骤(3)中建立的关联,将排版的数据内容进行逐级展开,逐级递归得到每个节点所对应的排版内容,根据一对多原则,在文字流模板节点树中构建相对应的节点对象,将排版内容依次记录到相对应的节点对象中,得到展开后的文字流模版节点树;(5)根据步骤(4)中展开的文字流模版节点树,对文字流模版内容的段、行进行一对一关系的复制创建,实现对文字流模版内容的展开;(6)依次取得文字流模版节点树的各个叶子节点,将叶子节点记录的排版数据内容置换文字流模版内容中对应的可变内容项;(7)根据指定的排版区域范围,依次创建续排文字块,在文字块内加入文字流模版的内容,直到文字流模版的内容全部排版完成,则处理结束。
进一步,为使本发明具有更好的发明效果,步骤(2)中以段分隔符为界限区分两个不同的段,所述的段分隔符是用来分隔一篇文章中的多个不同的段的分隔符,对于每一个段,都具有段属性,包括段首缩进(即一个段的第一行的起始处先缩进几个字的位置,然后再排文字内容,其余的行不进行缩进就直接排版文字)、段间距(确定两个段之间上下间隔的参数)等;以回车换行符为界限区分不同的行。
进一步,为使本发明具有更好的发明效果,步骤(2)中所述的段节点、行节点、可变内容项节点均是基于XML结构进行描述。
进一步,为使本发明具有更好的发明效果,步骤(2)中述的段节点、行节点均进行编号,段的编号从0开始,按自然数依次递增;行编号从0开始,按自然数递增,每重起一段,行编号都重新从0开始计数。
进一步,为使本发明具有更好的发明效果,步骤(3)中设置文字流模版节点树的各个节点与排版内容数据结构之间的关联时,段节点、行节点、可变内容项节点三类节点均通过XML节点属性databinding记录与排版数据内容之间的关联。
进一步,为使本发明具有更好的发明效果,步骤(4)中将排版的数据内容进行逐级展开,得到展开后的文字流模版节点树时,采用的方法是文字流模版节点树是基于XML进行构建的,节点树的每个节点都记录了XML节点属性databinding,根据databinding,可以逐级递归的得到节点树的每个节点所对应的排版内容的XML节点,采用XPath技术即能实现对排版内容的XML节点的访问,并构建出对应的文字流模版节点树的节点对象,同时将排版内容的XML节点记录的数据内容赋值到创建的节点对象之中,从而实现文字流模版节点树的展开。
进一步,为使本发明具有更好的发明效果,步骤(5)中对文字流模版的内容进行展开时,采用的方法如下1)取得展开后的文字流模版节点树的第一个段节点,将其标记为Para_Node,作为当前段节点;2)依据当前段节点Para_Node所记录的段编号在文字流模版内容的段对应处复制并插入对应的段内容;3)取得当前操作的段节点Para_Node下的第一个行节点,将其标记为Line_Node,作为当前节点;4)依据当前行节点Line_Node所记录的行编号在文字流模版内容对应的段内复制并插入对应的行内容,取得下一个行结点作为当前阶段,重复执行步骤4),直到最后一个行节点处理完成,则执行步骤5);5)取得下一个段节点,重复执行步骤2),直到最后一个段节点处理完成,则处理结束;进一步,为使本发明具有更好的发明效果,步骤(7)中每排版完一个新创建的文字块后,取得未排完的文字流模版内容作为下一个新创建文字块的输入内容,直到没有剩余,处理结束。
本发明的效果在于采用本发明所述的方法,在对大数据量的文字内容进行有规律地排版并且文字内容之间又相互关联时,可以使排版的效果更加丰富灵活,同叶,能够保证排版结果再编辑的可联动性,支持了跨页排版,从而扩展了可变数据排版的应用范围。


图1是本发明所述方法的流程图;图2是根据排版内容对文字流模版节点树进行展开的流程图;图3是在排版系统中设计的文字流模版示意图;图4是根据文字流模版构建的节点树示意图;图5是基于XML描述的排版内容的数据结构示意图;图6是文字流模版节点树的各节点与排版内容数据结构的关联示意图;图7是文字流模版内容的展开结果示意图;图8是文字流模版内容排版入一个文字块的效果图;图9是文字流模版内容排版入多个文字块的效果图;图10是采用现有技术实现表1所示排版内容的效果图;图11是采用现有技术在图10的基础上删除一条书目记录后的效果图;图12是在图8所示的排版结果中删除一条书目记录后的排版效果图。
具体实施例方式
下面结合实施例和附图,对本发明作进一步的阐述如图1所示,一种文字的可变数据排版的方法,包括以下步骤(1)将需要进行排版的内容即文字数据转换为XML格式的数据,同时得到基于XML的排版内容的数据结构,如果需要排版的文字数据已是XML格式的数据,则直接进入步骤(2);本实例中需要进行排版的数据为书目信息,数据文件的原始格式如表1所示表1 需要排版的书目信息


将表1所示的排版内容转换为XML格式的数据,得到基于XML的排版内容的数据结构如图5所示,具体表现为如下形式<书目信息集>
<出版社书目>
<出版社名称>上海交通大学出版社</出版社名称>
<书目记录>
<书名>营销工程</书名>
<作者>王方华、李乃和</作者>
<出版日期>2006年1月</出版日期>
<刊号>ISBN7-313-04224-8</刊号>
<内容简介>本书内容涵盖26个营销模型,主要涉及市场反映函数、市场细分模型,市场定位模型,广告内容设计模型等。他可以帮助MBA和在职营销经理系统学习营销工程软件提供原理上的支持。</内容简介>
</书目记录>
<书目记录>
<书名>日本强势汽车品牌启示录</书名>
<作者>薛可</作者>
<出版日期>2005年5月</出版日期>
<刊号>ISBN7-313-04180-2</刊号>
<内容简介>本书作者亲赴日本进行汽车品牌的专题研究,系统研究了日本丰田、本田、日产三大强势汽车品牌的历史发展轨迹、品牌形象定位、品质保障、广告传播与公关表现,并对三大品牌进行了全方位的比较。</内容简介>
</书目记录>
<书目记录>
<书名>英语专业四级双解词典</书名>
<作者>吴云娣</作者>
<出版日期>2006年2月</出版日期>
<刊号>ISBN7-313-04211-6</刊号>
<内容简介>本书根据《高校英语专业四级考试大纲》编写,收录了高等学校英语专业学生在基础阶段应掌握认知的词汇5500~6000个,以及最基本的搭配。全书编写了同义词或近义词注释和用法的差异,并附有例句,使读者一目了然。</内容简介>
</书目记录>
</出版社书目>
<出版社书目>
<出版社名称>黄河水利出版社</出版社名称>
<书目记录>
<书名>别让努力成为陷阱</书名>
<作者>马文涛</作者>
<出版日期>2006年1月</出版日期>
<刊号>ISBN7-80734-032-0</刊号>
<内容简介>本书通过讲述三十多个哲理故事,详细说明了通向成功道路上的种种障碍和处理这些障碍的方法。本书告诉我们这样一个道理生命的奖赏不在努力的起点,而远在成功的终点;改变需要经历痛苦,但改变不适痛苦的起点,而是终点。</内容简介>
</书目记录>
</出版社书目>
</出版社书目>
<出版社书目>
<出版社名称>中国标准出版社</出版社名称>
<书目记录>
<书名>标准化基础知识问答</书名>
<作者>白殿一</作者>
<出版日期>2006年3月</出版日期>
<刊号>ISBN7-5066-4008-2</刊号>
<内容简介>本书从标准与标准化、标准的内容、标准的制定、标准与生活等方面对标准进行了深入浅出的讲解,内容涉及标准代号的含义、什么是国际标准、什么是国家标准、什么是安全标准、什么是卫生标准、标准和我们的生活有什么关系、玩具使用应包括哪些内容、食品标签应包括什么内容等。</内容简介>
</书目记录>
<书目记录>
<书名>生活中的图形标志</书名>
<作者>白殿一</作者>
<出版日期>2006年3月</出版日期>
<刊号>ISBN7-5066-4011-2</刊号>
<内容简介>本书从国内外标准中遴选了与人们日常生活密切相关的公共信息图形符号、设备用图形符号,涉及公共信息、铁路客运、城市交通、包装、环境保护和安全等领域,并收录了常见的国内外认证标志,涉及家用电器、食品安全、电子产品等领域。</内容简介>
</书目记录>
</出版社书目>
</书目信息集>
关于XML语言可以参考XML Base W3C Recommendation 27 June2001。
(2)根据需要排版的文字数据内容,在排版系统中设计文字流模板,然后解析文字流模版,以段分隔符为界限区分两个不同的段,以回车换行符为界限区分不同的行,按照段、行、可变内容项三个层次构建和初始化文字流模版的节点树,即文字流模板的段、行、可变内容项对应节点树的段节点、行节点、可变内容项节点,其中段节点、行节点为枝干节点,可变内容项节点为叶子节点;本实施例中,段节点、行节点均进行编号,段的编号从0开始,按自然数依次递增;行编号从0开始,按自然数递增,每重起一段,行编号都重新从0开始计数;段节点、行节点、可变内容项节点均是基于XML结构进行描述。
本实施例中,根据表1所示的排版数据特点,在排版系统中设计文字流模版如图3所示,在图3所示的文字流模版中,包含一个段,2个行,其中出版社是一行,书名、作者、出版时间、刊号和内容简介是另一行。以换段符为段分隔符,以回车换行符为行分隔符,按照段、行、可变内容项三个层次对文字流模版内容进行拆分,本实例中的文字流模版内容拆分的结果为形成1个段节点(标记为P0),该段里面包含2个行节节点(分别标记为L0、L1),其中L0包含一个可变内容项节点(出版社),L1包含5个可变内容项节点,依次是书名、作者、出版时间、刊号和内容简介。
由段节点P0、行节点L0、L1以及各个可变内容项节点组成的文字流模版的节点树如图4所示。
(3)按照段、行、可变内容项从上至下的顺序,逐级设置文字流模版节点树各个节点与步骤(1)中基于XML的排版内容数据结构之间的关联;本实施例中,文字流模版节点树的各个节点即段节点、行节点、可变内容项节点均是基于XML结构进行描述,每个节点都有一个XML节点属性databinding,利用该节点属性databinding逐级设置文字流模版节点树与基于XML的排版内容数据结构之间的关联,如图6所示;(4)依照步骤(3)中建立的关联,将排版的数据内容进行逐级展开,逐级递归的得到每个节点所对应的排版内容,根据一对多原则,在文字流模板节点树中构建相对应的节点对象,将排版内容依次记录到相对应的节点对象中,得到展开后的文字流模版节点树;本实施例中,文字流模版节点树是基于XML进行构建的,节点树的每个节点都记录了XML节点属性databinding,根据databinding,可以逐级递归的得到节点树的每个节点所对应的排版内容的XML节点(本发明的步骤(1)中已将排版内容转换成XML格式的数据,自然就得到了排版内容的XML节点),采用XPath技术即能实现对排版内容的XML节点的访问,并构建出对应的文字流模版节点树的节点对象,同时将排版内容的XML节点记录的数据内容赋值到创建的节点对象之中,从而实现文字流模版节点树的展开。
(5)根据步骤(4)中展开的文字流模版节点树,对文字流模版内容的段、行进行一对一关系的复制创建,实现对文字流模版内容的展开,展开的过程如图2所示,具体方法如下
1)取得展开后的文字流模版节点树的第一个段节点,将其标记为Para_Node,作为当前段节点;2)依据当前段节点Para_Node所记录的段编号在文字流模版内容的段对应处复制并插入对应的段内容;3)取得当前操作的段节点Para_Node下的第一个行节点,将其标记为Line_Node,作为当前节点;4)依据当前行节点Line_Node所记录的行编号在文字流模版内容对应的段内复制并插入对应的行内容,取得下一个行结点作为当前阶段,重复执行步骤4),直到最后一个行节点处理完成,则执行步骤5);5)取得下一个段节点,重复执行步骤2),直到最后一个段节点处理完成,则处理结束。
本实例中的文字流模版内容的展开结果如图7所示,文字流模版排版内容根据节点树展开后,形成了三个段,其中,第一段包含4个行,第二段包含2个行,第三段包含3个行。
(6)依次取得文字流模版节点树的各个叶子节点,将叶子节点记录的排版数据内容置换文字流模版内容中对应的可变内容项;(7)根据指定的排版区域范围,依次创建续排文字块,加入文字流模版的内容,直到文字流模版内容全部排完,最终的排版效果如图8以及图9所示,图8所示的排版效果是将所有的排版内容排入一个文字块内,当然,用户也可以根据需求,将排版内容排入不同的文字块内,如图9所示。
如果利用现有的文字可变数据排版技术实现本实例中表1所述排版内容的排版效果,那么,出版社名称、书目记录都需要生成独立的文字块,然后再对生成的文字块进行流式排版,结果如图10所示,如果此时需要删除内容,如删除书名为《日本强势汽车品牌启示录》的书目记录内容,那么,版面的效果如图11所示,需要继续对后面的排版结果进行调整,才能对《日本强势汽车品牌启示录》所占的版面位置补白;而采用本发明所述的方法,直接在图8的基础上删除《日本强势汽车品牌启示录》的书目记录内容,后面的文字内容会自动向前流动进行补白,结果如图12所示。
本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。
权利要求
1.一种文字的可变数据排版的方法,包括以下步骤(1)将需要进行排版的内容即文字数据转换为XML格式的数据,同时得到基于XML的排版内容的数据结构,如果需要排版的文字数据已是XML格式的数据,则直接进入步骤(2);(2)根据需要排版的文字数据内容,在排版系统中设计文字流模板,然后解析文字流模版,按照段、行、可变内容项三个层次构建和初始化文字流模版的节点树,即文字流模板的段、行、可变内容项对应节点树的段节点、行节点、可变内容项节点,其中段节点、行节点为枝干节点,可变内容项节点为叶子节点;(3)按照段、行、可变内容项从上至下的顺序,逐级设置文字流模版节点树各个节点与步骤(1)中基于XML的排版内容数据结构之间的关联;(4)依照步骤(3)中建立的关联,将排版的数据内容进行逐级展开,逐级递归得到每个节点所对应的排版内容,根据一对多原则,在文字流模板节点树中构建相对应的节点对象,将排版内容依次记录到相对应的节点对象中,得到展开后的文字流模版节点树;(5)根据步骤(4)中展开的文字流模版节点树,对文字流模版内容的段、行进行一对一关系的复制创建,实现对文字流模版内容的展开;(6)依次取得文字流模版节点树的各个叶子节点,将叶子节点记录的排版数据内容置换文字流模版内容中对应的可变内容项;(7)根据指定的排版区域范围,依次创建续排文字块,在文字块内加入文字流模版的内容,直到文字流模版的内容全部排版完成,则处理结束。
2如权利要求1所述的一种文字的可变数据排版的方法,其特征在于步骤(2)中以段分隔符为界限区分两个不同的段,所述的段分隔符是用来分隔一篇文章中的多个不同的段的分隔符;以回车换行符为界限区分不同的行;步骤(2)中所述的段节点、行节点、可变内容项节点均是基于XML结构进行描述;步骤(2)中述的段节点、行节点均进行编号,段的编号从0开始,按自然数依次递增;行编号从0开始,按自然数递增,每重起一段,行编号都重新从0开始计数。
3.如权利要求1或2所述的一种文字的可变数据排版的方法,其特征在于步骤(3)中设置文字流模版节点树的各个节点与排版数据之间的关联时,段节点、行节点、可变内容项节点三类节点均通过XML节点属性databinding记录与排版数据内容之间的关联。
4.如权利要求1或2所述的一种文字的可变数据排版的方法,其特征在于步骤(4)中将排版的数据内容进行逐级展开,得到展开后的文字流模版节点树时,采用的方法是文字流模版节点树是基于XML进行构建的,节点树的每个节点都记录了XML节点属性databinding,根据databinding,可以逐级递归得到节点树的每个节点所对应的排版内容的XML节点,采用XPath技术即能实现对排版内容的XML节点的访问,并构建出对应的文字流模版节点树的节点对象,同时将排版内容的XML节点记录的数据内容赋值到创建的节点对象之中,从而实现文字流模版节点树的展开。
5.如权利要求3所述的一种文字的可变数据排版的方法,其特征在于步骤(4)中将排版的数据内容进行逐级展开,得到展开后的文字流模版节点树时,采用的方法是文字流模版节点树是基于XML进行构建的,节点树的每个节点都记录了XML节点属性databinding,根据databinding,可以逐级递归得到节点树的每个节点所对应的排版内容的XML节点,采用XPath技术即能实现对排版内容的XML节点的访问,并构建出对应的文字流模版节点树的节点对象,同时将排版内容的XML节点记录的数据内容赋值到创建的节点对象之中,从而实现文字流模版节点树的展开。
6.如权利要求1所述的一种文字的可变数据排版的方法,其特征在于步骤(5)中对文字流模版的内容进行展开时,采用的方法如下1)取得展开后的文字流模版节点树的第一个段节点,将其标记为Para_Node,作为当前段节点;2)依据当前段节点Para_Node所记录的段编号在文字流模版内容的段对应处复制并插入对应的段内容;3)取得当前操作的段节点Para_Node下的第一个行节点,将其标记为Line_Node,作为当前节点;4)依据当前行节点Line_Node所记录的行编号在文字流模版内容对应的段内复制并插入对应的行内容,取得下一个行结点作为当前行节点,重复执行步骤4),直到最后一个行节点处理完成,则执行步骤5);5)取得下一个段节点,重复执行步骤2),直到最后一个段节点处理完成,则处理结束。
7.如权利要求1所述的一种文字的可变数据排版的方法,其特征在于步骤(7)中每排版完一个新创建的文字块后,取得未排完的文字流模版内容作为下一个新创建文字块的输入内容,直到没有剩余,处理结束。
全文摘要
本发明涉及一种文字的可变数据排版的方法,属于印前计算机排版领域。现有技术中,文字的可变数据排版的方法是创建指定样式的文字块,利用排版数据直接对文字块内指定的可变内容项进行替换,排版效果简单,排版后的结果为多个独立的文字块,无法保持排版结果再编辑过程中的联动性。本发明所述的方法将设计好的文字流模版解析后,从段、行、可变内容项三个层次构建节点树,并将节点树与排版数据进行关联,然后根据排版内容依次对段、行、可变内容项进行逐级展开,实现了排版内容的多层次嵌套式的可变数据排版。采用本发明所述的方法,可以使文字的可变数据排版的效果更加丰富灵活,保证了排版结果再编辑的可联动性,支持了跨页排版。
文档编号G06F17/30GK1908931SQ200610112498
公开日2007年2月7日 申请日期2006年8月22日 优先权日2006年8月22日
发明者闫国龙 申请人:北京北大方正电子有限公司, 北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1