具体实施方式
下面结合附图对本发明的具体实施方式进行说明。
图3为输入位置调整方法实施流程示意图,如图所示,在对含可变文字项的排版处理中,对输入位置的调整可以按如下方式实施:
步骤301、获取可变文字项的文字内容参与排版;
步骤302、获取所述文字内容在排版后的边界位置;
步骤303、根据所述边界位置调整输入位置。
图4-a是采用输入位置调整方法实现可变文字项的排版效果示意图;图4-b是采用输入位置调整方法实现可变文字项的输入位置步进调整示意图,本图是配合输入位置调整方法的效果示意图,用以说明本方案的实施,其中,“车辆名称”、“生产厂家”、“销售价格”和“简介信息”等以粗体效果呈现的内容为可变文字项。以下将结合两图对如何具体实施本发明进行充分说明。
实施中,对于步骤301,是取得可变文字项的内容参与排版,同时可以记录可变文字项与排版结果之间的对应关系;
具体可以为:在模版设计状态下,取可变文字项中记录关联数据项的参数值作为内容参与排版,在结果预览状态下,则从当前所预览的数据记录中取与该可变文字项对应的内容参与排版;即:获取可变文字项的文字内容可以是模版设计状态下所述可变文字项中记录关联数据项的参数值;和/或,是结果预览状态下当前所预览的数据记录中所述可变文字项对应的内容。由于在获取到可变文字项的文字内容后,是在何种方式下获取的已经不影响下一步骤的实施,因此,在以下实施例中将以模版设计状态的可变文字项的实现过程来说明本发明的实施方法,而预览状态下的原理相同,按模版状态下的实施例实施即可。
步骤302中,文字内容的边界位置是所述可变文字项参与排版时在所属文字流中的起始位置与终止位置。
可以通过上一步骤中所记录的可变文字项与排版结果之间的对应关系来获得边界位置,具体所记录的可变文字项与排版结果的对应关系是:可变文字项所对应的文字内容参与排版后所产生的局部排版结果,在可变文字项所属的文字流的整体排版结果内的起始位置和终止位置。具体的,以“生产厂家”为例,可以以(段索引、文字索引)的方式表示表示可变文字项在排版结果里面的起始位置和终止位置,以便用来记录可变文字项与排版结果之间的对应关系,其中段索引是指可变文字项所在的段在所属文章内的段序列号,文字索引则是指参与排版的文字在其所在段中的序列号。其中,段索引可以是一个数字,就是可变文字项所在的那一段在整篇文章里面是第几段,由于计算机里面一般都是习惯于从0计数来算起,平时所说的第1段,在计算机里面通常说成是第0段,然后依次是第1、2、3段等等;文字索引则是指可变文字项在它所在的行里面的位置,就是它是第几个字。则可变文字项“生产厂家”与排版结果之间的对应关系为:起始位置参数值(0,14),终止位置参数(0,17),也就是第一段第十四个字与第一段第十七个字。实施中,可以用段索引以及文字索引来实施,这是因为在排版的结果里面,段数和字数无论怎么排,都是不会变化,但行数却不固定,如果一个文字框很宽,那么,每段排出来的行就少,如果文字框很窄,那么排出来的行就多了,正因为行的不固定,所以,在表示位置参数的时候,就用第几段和在该段内的第几个字来表示,这样的表示使得在什么样的框里面排版,位置参数值都是稳定的。
步骤303的在根据所述边界位置调整输入位置步骤,即,调整位于可变文字项所对应局部排版结果范围内的当前输入位置到该局部排版结果的边界位置上;其中该边界位置即为可变文字项与排版结果对应关系中所描述的起始位置或者终止位置。
调整当前输入位置到边界位置具体实施的方法可以按以下方式实现:
一、根据触发设置当前输入位置的指令类型与所述边界位置调整输入位置。
触发设置当前输入位置的指令类型包括:第一指令类型、或第二指令类型,所述第一指令类型是依赖上一次输入位置进行设置当前输入位置的指令类型,所述第二指令类型是不依赖上一次输入位置进行设置当前输入位置的指令类型;
第一指令类型是依赖上次输入位置的调整的情况,例如按键盘的上下左右键调整当前输入位置;而第二指令类型是不依赖上一次输入位置的调整的情况,如通过在版面上点击鼠标左键所引起的当前输入位置的变化,它跟点击鼠标左键前当前输入位置的位置没有关系。即,依赖与不依赖的判断在于,两次输入位置的变化有无内在联系。
实施中,当触发设置当前输入位置的指令类型是第一指令类型时,根据当前输入位置调整方向与所述边界位置调整输入位置;
当触发设置当前输入位置的指令类型是第二指令类型时,根据当前输入位置在所述可变文字项参与排版时所属文字流的位置、及边界位置调整输入位置。
1、当触发设置当前输入位置的指令类型是第一指令类型时,根据当前输入位置调整方向与所述边界位置调整输入位置,具体可以为:
当前输入位置调整方向是向前调整,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
或,当前输入位置调整方向是向后调整,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
2、当触发设置当前输入位置的指令类型是第二指令类型时,根据当前输入位置在所述可变文字项参与排版时所属文字流的位置、及边界位置调整输入位置,进一步按如下步骤实施:
二、当触发设置当前输入位置的指令类型是第二指令类型时,根据当前输入位置在所述可变文字项参与排版时所属文字流的位置、及边界位置、以及所述可变文字项参与排版时所属文字流的行数调整输入位置。
即:当文字流的行数为单行,根据当前输入位置在所述可变文字项参与排版时所属文字流中距离行首与行尾的位置、及边界位置调整输入位置;
或,当文字流的行数为多行,根据当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行与终止位置行的位置、及边界位置调整输入位置。
具体实施可以为:
1、所述文字流的行数为单行
当前输入位置在所述可变文字项参与排版时所属文字流中距离行首的间隔字符数不大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
距离行首的间隔字符数大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
或者,
2、所述文字流的行数为多行
当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行的行数大于距离终止位置行的行数,将当前输入位置调整至所述边界位置的终止位置并作为输入位置;
距离起始位置行的行数小于距离终止位置行的行数,将当前输入位置调整至所述边界位置的起始位置并作为输入位置,距离起始位置行的行数小于距离终止位置行的行数,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
距离起始位置行的行数等于距离终止位置行的行数,根据当前输入位置在所属行中距离行首与行尾的位置、及边界位置调整输入位置。
当文字流的行数为多行,距离起始位置行的行数等于距离终止位置行的行数时,具体实施可以为:
当前输入位置在所属行中距离行首的间隔字符数不大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
当前输入位置在所属行中距离行首的间隔字符数大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
下面再举一例来进行说明。
图5为调整当前输入位置到边界位置的实施流程示意图,如图所示,可以按如下步骤实施:
步骤501、判断当前输入位置是否在可变文字项所对应的局部排版结果范围内,如果是,则执行步骤502,否则执行步骤509;
如图4-b所示,初始的输入位置位于A处,当执行向前调整一个字单元的指令时,当前的输入位置按现有技术将会被调整到“厂”和“家”字之间,此时采用本发明实施例所述的方法则可判断出当前输入位置已经位于可变文字项“生产厂家”的局部排版结果范围之内,因此,继续执行步骤502。
实施例中,初始的输入位置就是执行向前调整一个字单元指令前的当前输入位置,如在微软字处理软件Word里面把光标停在一个字后面,然后按一下向左的方向键,那么,光标就会跳到那个字的前面,即当前的输入位置发生了改变,初始输入位置就是指改变前的当前输入位置,为了区分改变前和改变后的当前输入位置,才引入了初始输入位置的说法。向后调整也是一样的,当前输入位置也会发生变化。
实施例中,调整当前输入位置不仅指调整本例中的一个字单元,比如Word里面按上健或下键就是会把光标调整到上一行或者下一行,实施例选择调整一个字单元的实施来进行说明,本领域技术人员易知其他的情况原理是相同的。
步骤502、判断触发设置当前输入位置的指令类型是否依赖上一次输入位置调整,如果是依赖于上一次输入位置的调整,则执行步骤503,否则执行步骤506;
其中依赖于上一次输入位置的调整包括在上一次输入位置的基础上向前进行步进调整或者向后进行步进调整,而不依赖于上一次输入位置的调整包括直接设置位置参数来调整当前的输入位置;
步骤503、判断当前输入位置的调整方向,如果是向前调整,执行步骤504,如果是向后调整,执行步骤505;
步骤504、调整当前输入位置至边界位置中的起始位置;执行步骤509;
如图4-b所示,在向前进行步进调整时,依据本步骤所描述的处理方法,将输入位置调整至可变文字项“生产厂家”的边界位置中的起始位置B。
步骤505、调整当前输入位置至边界位置中的终止位置;执行步骤509;
步骤506、判断当前输入位置所对应的可变文字项的局部排版结果是否为多行,如果为多行,则执行步骤507,否则执行步骤508;
步骤507、判断当前输入位置所在的行分别距离起始位置行和终止位置行的行数差值,如果距离起始位置行的行数差值小于距离终止位置行的行数差值,执行步骤504,如果距离起始位置行的行数差值大于距离终止位置行的行数差值,执行步骤505,如果距离起始位置行的行数差值等于距离终止位置行的行数差值,执行步骤508;
步骤508、判断当前输入位置分别距离当前输入位置所在行的行首、行尾的间隔字符数,如果距离行首的间隔字符数小于或等于距离行尾的间隔字符数,执行步骤504,如果距离行首的间隔字符数大于距离行尾的间隔字符数,执行步骤505;
步骤509、将当前输入位置调整至目标位置,处理结束。
调整完成,依据调整后的当前输入位置对可变文字项进行后继操作。
本发明实施例还提供了一种输入位置的调整系统,下面结合附图对调整系统的具体实施方式进行说明。
图6为输入位置的调整系统结构示意图,应用于含可变文字项的排版处理中,如图所示,系统中包括第一获取装置601、第二获取装置602、调整装置603,其中:
第一获取装置,用于获取可变文字项的文字内容参与排版;
第二获取装置,用于获取所述文字内容在排版后的边界位置;
调整装置,用于根据所述边界位置调整输入位置。
第一获取装置601中可以包括模版设计状态获取模块6011、和/或结果预览状态获取模块6012,其中:
模版设计状态获取模块,用于获取模版设计状态下所述可变文字项中记录关联数据项的参数值作为可变文字项的文字内容;
结果预览状态获取模块,用于获取结果预览状态下当前所预览的数据记录中所述可变文字项对应的内容作为可变文字项的文字内容。
实施例中,文字内容的边界位置是所述可变文字项参与排版时在所属文字流中的起始位置与终止位置;
所述调整装置可以进一步用于根据触发设置当前输入位置的指令类型与所述边界位置调整输入位置。
所述触发设置当前输入位置的指令类型包括:第一指令类型、或第二指令类型,所述第一指令类型是依赖上一次输入位置进行设置当前输入位置的指令类型,所述第二指令类型是不依赖上一次输入位置进行设置当前输入位置的指令类型;
所述调整装置包括第一指令类型调整模块6031、和/或第二指令类型调整模块6032,其中:
第一指令类型调整模块,用于所述触发设置当前输入位置的指令类型是第一指令类型,根据当前输入位置调整方向与所述边界位置调整输入位置;
第二指令类型调整模块,用于所述触发设置当前输入位置的指令类型是第二指令类型,根据当前输入位置在所述可变文字项参与排版时所属文字流的位置、及边界位置调整输入位置。
实施中,第一指令类型调整模块可以包括向前调整单元、和/或向后调整单元,其中:
向前调整单元,用于所述当前输入位置调整方向是向前调整,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
向后调整单元,用于所述当前输入位置调整方向是向后调整,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
第二指令类型调整模块可以进一步用于根据当前输入位置在所述可变文字项参与排版时所属文字流的位置、及边界位置、以及所述可变文字项参与排版时所属文字流的行数调整输入位置。
第二指令类型调整模块可以包括单行调整单元、和/或多行调整单元,其中:
单行调整单元,用于所述文字流的行数为单行,根据当前输入位置在所述可变文字项参与排版时所属文字流中距离行首与行尾的位置、及边界位置调整输入位置;
多行调整单元,用于所述文字流的行数为多行,根据当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行与终止位置行的位置、及边界位置调整输入位置。
在单行调整单元可以包括第一子单元,第二子单元,其中:
第一子单元,用于所述文字流的行数为单行,当前输入位置在所述可变文字项参与排版时所属文字流中距离行首的间隔字符数不大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
第二子单元,用于所述文字流的行数为单行,当前输入位置在所述可变文字项参与排版时所属文字流中距离行首的间隔字符数大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
在多行调整单元可以包括第三子单元、第四子单元、第五子单元,其中:
第三子单元,用于所述文字流的行数为多行,当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行的行数大于距离终止位置行的行数,将当前输入位置调整至所述边界位置的终止位置并作为输入位置;
第四子单元,用于所述文字流的行数为多行,当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行的行数小于距离终止位置行的行数,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;
第五子单元,用于所述文字流的行数为多行,当前输入位置在所述可变文字项参与排版时所属文字流中距离起始位置行的行数等于距离终止位置行的行数,根据当前输入位置在所属行中距离行首与行尾的位置、及边界位置调整输入位置。
所述第五子单元可以进一步用于在所述文字流的行数为多行,当前输入位置距离起始位置行的行数等于距离终止位置行的行数,且当前输入位置在所属行中距离行首的间隔字符数不大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的起始位置并作为输入位置;当前输入位置在所属行中距离行首的间隔字符数大于距离行尾的间隔字符数时,将当前输入位置调整至所述边界位置的终止位置并作为输入位置。
通过上述实施例的调整后,就可以依据调整后的当前输入位置对可变文字项进行后继操作了。后继操作中可以包括设置字体字号、删除文字等等操作,实施例中通过根据边界位置来调整当前输入位置,并将两个位置重合,从而达到的效果是,当前输入位置永远不会进入到可变文字项的内部,要么在它前面,要么就在它后面,这样,可变文字项就会一直被作为一个整体进行操作,例如选中操作、更改字体字号等等,都会作为整体被操作了。在后续操作中可变文字项就会始终被作为一个整体来操作,字体、字号就会同时被改变,始终是相同的。
由上述实施可以看出,现有技术中,可变文字项的实现方法是以盒子的方式整体参与排版或者在可变文字项的内容前后加上标记符后再参与排版,两种方式都难以做到排版效果合理性与操作便利性的同时兼顾。而本发明提供的实施例是在排版过程中提取可变文字项的内容作为普通文字参与排版,从而解决了盒子带来了排版效果不合理的问题;在交互式操作的处理过程中,将可变文字项所对应的排版结果作为一个整体进行定位,从而实现了可变文字项作为交互式操作基本操作单元的效果。本发明实施例不仅既支持对可变文字项的内容的折行,同时通过对含有可变文字项内容进行排版时的输入位置调整,从而使可变文字项始终作为一个整体被操作,还可以做到可变文字项对排版效果合理性与操作便利性的同时兼顾,增强了可变文字项的易用性。
同时,如实施例中图4-a所示,在文字块模版内的文字排版过程中,取得每个可变文字项的文字内容参与排版,排版后的效果如图4-a所示,对比以盒子方式表示可变文字项的排版效果图1-a,可以明显看出图4-a的排版效果更加美观合理。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。