具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
图1为本发明实施例提供的一种文字分栏处理方法的示意图。该方法可以由文字分栏处理装置来实现,该装置可以由软件和/或硬件来实现,集成于各种需要进行文字分栏的应用软件中实现。例如,应用软件可以为排版软件。
如图1所示,该方法包括以下步骤:
101、设置分栏参数;所述分栏参数包括分栏数和栏间距。
在进行分栏时开启应用软件,在应用软件中设置分栏参数。具体地,通过鼠标点击排版软件中分栏对话框,在该分栏对话框中输入分栏参数,其中,分栏参数可以为分栏数和栏间距。分栏数用于表示分栏的个数,栏间距为栏与栏之间的间隔。
本实施例提供的文字分栏处理方法,在步骤101之前包括:
设置文本框的宽度和文本框的格式。具体地,在排版软件中插入一个文本框,可以通过鼠标来拖拉文本框的边框,来调整文本框的宽度以及长度,并且可以设置文本框的格式,例如,文本框中字体的大小、字体颜色、字体格式等,行间距等。
102、判断所述分栏参数是否合法。
在对话框中输入分栏参数的过程中,排版软件可以对输入的分栏参数进行判断,以判断输入的分栏参数是否合法或者正确。具体地,排版软件在输入栏间距时,可以判断输出的栏间距的数值是否大于至少一个预设的分栏线宽的宽度,并且还可以判断输入的分栏数是否小于或者等于预设的最大分栏数。一般,在排版软件中均会设置一个默认的最大分栏数。其中,预设的分栏线宽可以为排版软件默认的线宽,也可以为用户选择的分栏线宽。
如果排版软件判断出分栏参数不合法,可以通过显示界面向用户显示错误信息,提示用户重新设置分栏参数。可选地,排版软件可以在用户将分栏数和栏间距后,在判断出其中至少一个参数不合法时,排版软件就可以通过显示界面向用户显示错误信息,提示用户重新设置分栏参数,或者排版软件在接收到一个参数后,就可以立即判断该参数是否合法,在不合法时通过显示界面向用户显示错误信息,提示用户重新设置分栏参数。进一步地,排版软件还可以向用户展示出现错误的参数对应的合法范围,以引导用户输入正确的分栏参数。
103、如果所述分栏参数合法,选择目标分栏方式,所述目标分栏方式为自由分栏方式、绝对分栏方式或相对分栏方式。
如果排版软件判断出分栏参数合法后,用户可以根据分栏需求,通过鼠标点击选取的分栏方式,作为目标分栏方式。其中,本实施例中目标分栏方式可以为自由分栏方式、绝对分栏方式和相对分栏方式。
104、根据所述分栏参数、所述目标分栏方式和待分栏文字所在文本框的宽度,获取每一栏的目标栏宽和目标栏间距。
105、根据每一栏的所述目标栏宽以及所述目标栏间距对所述待分栏文字进行分栏处理。
具体地,排版软件根据分栏参数中分栏数和栏间距,可以得到栏间距的个数,然后得到将所有栏间距相加,得到所有栏间距之和。排版软件获取待分栏文字所在文本框的宽度与栏间距之和的差值,将所述差值与所述分栏数作除法,得到所述差值与所述分栏数之间第一比值,将第一比值中的整数部分作为每一栏的初始栏宽,将第一比值中的小数部分与所述分栏数做乘法,得到第一数值。
排版软件判断第一数值是否零,如果第一数值不为零且目标分栏方式为自由分栏方式时,将第一数值与所述分栏数作比值,得到第二比值,将所述第二比值与初始栏宽相加,得到每一栏的目标栏宽。
所述根据每一栏的所述目标栏宽和目标栏间距对所述待分栏文字进行分栏包括:在自由分栏方式下,排版软件按照每一栏的目标栏宽和栏间距,在每一栏中对待分栏文字进行分栏。
此处需要说明,当目标分栏方式为自由分栏方式时,排版软件只是调整了每一栏的初始栏宽,得到了每一栏的目标栏宽,而且每一栏的目标栏宽是相等的。本实施例中排版软件并未改变栏与栏之间的间距,在自由分栏方式下,目标栏间距为步骤101中在对话框中输入的栏间距。
本实施例中,如果判断出第一数值不为零且目标分栏方式为绝对分栏方式时,将第一数值与所述栏间距的个数作比值得到第三比值,将第三比值与所述栏间距相加得到目标栏间距。
进一步地,在绝对分栏方式下,排版软件按照每一栏的目标栏宽以及目标栏间距对所述待分栏文字进行分栏。其中,每一栏的目标栏宽为初始栏宽。
此处需要说明,当目标分栏方式为绝对分栏方式时,排版软件只是调整了栏间距得到目标栏间距。排版软件将初始栏宽作为每一栏的目标栏宽,并未调整每一栏的栏宽。
如果判断出第一数值不为零且目标分栏方式为相对分栏方式时,本实施例中,排版软件需要进一步判断第一数值是否小于1,如果判断结果为第一数值小于1,将第一数值与最后一栏的初始栏宽相加,得到最后一栏的目标栏宽。进一步地,排版软件将初始栏宽作为除最后一栏之外的每一栏的目标栏宽。栏间距作为目标栏间距。
所述根据每一栏的所述目标栏宽和目标栏间距对所述待分栏文字进行分栏处理包括:
按照初始栏宽以及所述栏间距,在除最后一栏之外的每一栏中对待分栏文字中对应部分进行分栏,按照最后一栏的目标栏宽和所述栏间距,在最后一栏中对待分栏文字中对应部分进行分栏。
在第一数值不为零且目标分栏方式为相对分栏方式的情况下,排版软件如果判断出所述第一数值小于分栏数且大于或者等于1,取第一数值的整数,然后从最后一栏开始取与第一数值的整数等同数目的栏数作为第一组。例如,第一数值为2.4时,那么第一数值的整数为2,则从最后一栏开始取2栏作为第一组,即最后一栏和倒数第二栏作为第一组。排版软件将第一组中每一栏的初始栏宽加1,得到该第一组中每一栏的第一栏宽,然后将第一数值中的小数与最后一栏的第一栏宽相加,得到最后一栏的目标栏宽。例如,第一数值为2.4时,那么第一数值的小数为0.4,则将0.4与最后一栏的第一栏宽相加,得到最后一栏的目标栏宽。进一步地,排版软件将初始栏宽作为除第一组之外的每一栏的目标栏宽,而且排版软件将栏间距作为目标栏间距。
所述根据每一栏的所述目标栏宽和目标栏间距对所述待分栏文字进行分栏处理包括:
按照初始栏宽以及栏间距,在除第一组之外的每一栏中对待分栏文字中对应部分进行分栏,按照第一栏宽以及栏间距,在除最后一栏之外的第一组中每一栏对待分栏文字中对应部分进行分栏,按照最后一栏的目标栏宽和所述栏间距,在最后一栏对待分栏文字中对应部分进行分栏。
此处需要说明,当目标分栏方式为相对分栏方式时,排版软件只是调整了每一栏的栏宽,可能每一栏的栏宽不一定相同。排版软件并未调整栏间距,栏间距为步骤101中在对话框中输入的栏间距。
举例说明,设文本框的宽度为34.5个版心字,分栏数为4,栏间距为1个版心字。
根据分栏数为4可知栏间距的个数为3,从而可以得到栏间距之和为3*1=3个版心字。文本框与栏间距之和的差值为34.5-3=31.5,将该差值31.5与分栏数4做除法,得到第一比值为7.875。将第一比值7.875中整数部分即7作为每一栏的初始栏宽。将第一比值中的小数部分0.875与分栏数4作乘法,得到第一数值3.5。
排版软件判断第一数值是否为0,如果第一数值不为零且目标分栏方式为自由分栏方式时:将第一数值3.5与分栏数4作比值得到第二比值0.875,将0.875与初始栏宽7相加,得到每一栏的目标栏宽7.875,然后排版软件按照每一栏目标栏宽为7.875以及栏间距为1,对文本框中的待分栏文字进行分栏。本实施例中,在自由分栏方式排版软件只是调整了每一栏的栏宽,并且每一栏的栏宽相等,均为7.875。
如果第一数值不为零且目标分栏方式为绝对分栏方式时:将第一数值3.5与栏间距的个数3作比值得到第三比值约为1.166667,将1.166667与栏间距1相加,得到目标栏间距2.166667,然后排版软件按照每一栏的初始栏宽为7以及栏间距为2.166667,对文本框中的待分栏文字进行分栏。本实施例中,排版软件调整栏间距,并且栏间距均为2.166667,并未调整每一栏的栏宽,每一栏的目标栏宽为初始栏宽。
如果第一数值不为零且目标分栏方式为相对分栏方式时:排版软件需要判断第一数值是否小于1,如果第一数值小于1,直接将该第一数值与最后一栏的初始栏宽相加,得到最后一栏的目标栏宽。
在该例子中,第一数值为3.5,该第一数值小于分栏数4且大或者等于1。排版软件获取第一数值中的整数3,然后从最后一栏开始与三栏作为第一组,即第4栏、第3栏以及第2栏作为第一组。然后排版软件将第一组中每一栏的初始栏宽7加1,得到第一组中每一栏的第一栏宽为8。进一步地,排版软件将第一数值中的小数即0.5与最后一栏的第一栏宽相加,最后一栏即第4栏的目标栏宽为8.5。本实施例中,在相对分栏方式排版软件只是调整了每一栏的栏宽,但是每一栏的栏宽不一定相等,例如该例子中第1栏的栏宽为7,第2栏的栏宽为8,第3栏的栏宽为8,而最后一栏即第4栏的栏宽为8.5。而且排版软件并不对栏间距进行调整,栏间距为1个版心字。
此处需要说明,在整数除法中,可以将商作为每一栏的初始栏宽,将余数作为第一数值,但是在不是整数的除法中,需要按照该例子中提供的方法来进行计算。
本实施例提供的一种文字分栏处理方法,设置分栏参数;所述分栏参数包括分栏数和栏间距,判断所述分栏参数是否合法,如果所述分栏参数合法,选择目标分栏方式,所述目标分栏方式为自由分栏方式、绝对分栏方式或相对分栏方式,根据所述分栏参数、所述目标分栏方式和待分栏文字所在文本框的宽度,对所述待分栏文字进行分栏处理。本实施例中根据分栏参数、目标分栏方式和待分栏文字所在文本框的宽度,能够灵活地调整每一栏的栏宽和栏间距,然后根据调整后的分栏参数对待分栏文字进行分栏,从而克服了现有技术中只能按照设定好的栏宽以及栏间距对文字进行分栏的问题,提高了文字分栏的灵活性。
图2为本发明实施例提供的一种文字分栏处理装置的结果示意图。该文字分栏处理装置可以由软件和/或硬件来实现,集成于各种需要进行文字分栏的应用软件中实现。例如,应用软件可以为排版软件,如图2所示,该文字分栏处理装置包括设置模块21、判断模块22、选取模块23、获取模块24和分栏处理模块25。
其中,设置模块21用于设置分栏参数,所述分栏参数包括分栏数和栏间距。判断模块22用于判断所述分栏参数是否合法。选取模块23用于如果所述分栏参数合法,选择目标分栏方式,所述目标分栏方式为自由分栏方式、绝对分栏方式或相对分栏方式。获取模块24用于根据所述分栏参数、所述目标分栏方式和待分栏文字所在文本框的宽度,获取每一栏的目标栏宽以及目标栏间距。分栏处理模块25根据每一栏的所述目标栏宽和目标栏间距对所述待分栏文字进行分栏处理。
在进行分栏时,开启文字分栏处理装置通过设置模块21设置分栏参数。具体地,用户可以通过点击鼠标设置模块21中的分栏对话框,在该分栏对话框中输入分栏参数,其中,分栏参数可以为分栏数和栏间距。分栏数用于表示分栏的个数,栏间距为栏与栏之间的间隔。
可选地,设置模块21还可以设置文本框的宽度和文本框的格式。具体地,设置文本框的宽度以及文本框的格式的过程,可参见上述实施例中相关内容的记载,此处不再赘述。
在对话框中输入分栏参数的过程中,判断模块22可以对输入的分栏参数进行判断,以判断输入的分栏参数是否合法或者正确。具体地,判断模块22在输入栏间距时,可以判断输出的栏间距的数值是否大于至少一个预设的分栏线宽的宽度,并且还可以判断输入的分栏数是否小于或者等于预设的最大分栏数。一般,在文字分栏处理装置中会设置默认的最大分栏数。其中,预设的分栏线宽可以为文字分栏处理装置默认的线宽,也可以为用户通过鼠标选择的分栏线宽。
本实施例中,文字分栏处理装置还包括界面显示模块26。在判断模块22判断出分栏参数不合法时,可以通过显示界面模块26向用户显示错误信息,提示用户重新设置分栏参数。可选地,判断模块22可以在用户将分栏数和栏间距后,在判断出其中至少一个参数不合法时,就可以通过显示界面模块26向用户显示错误信息,提示用户重新设置分栏参数,或者在用户输入一个参数后,判断模块22就立即判断该参数是否合法,在不合法时通过显示界面模块26向用户显示错误信息,提示用户重新设置分栏参数。进一步地,显示界面模块26还可以向用户展示出现错误的参数对应的合法范围,以引导用户输入正确的分栏参数。
在判断模块22判断出分栏参数合法后,选取模块可以接收用户根据分栏需求,通过鼠标点击选取的分栏方式,将选取的分栏方式作为目标分栏方式。其中,本实施例中目标分栏方式可以为自由分栏方式、绝对分栏方式和相对分栏方式。
选取模块23与获取模块24连接,获取模块24根据分栏参数、目标分栏方式和待分栏文字所在文本框的宽度,获取每一栏的目标栏宽和目标栏间距。
本实施例中,获取模块24的一种可选的实现结构方式包括:第一计算单元241、判断单元242、第二计算单元243、第三计算单元244和第四计算单元245。
其中,第一计算单元241根据分栏参数中分栏数和栏间距,可以得到栏间距的个数,然后得到将所有栏间距相加,得到所有栏间距之和,获取待分栏文字所在文本框的宽度与栏间距之和的差值,将所述差值与分栏数作除法,得到所述差值与分栏数之间第一比值,将第一比值中的整数部分作为每一栏的初始栏宽,以及将第一比值中的小数部分与分栏数做乘法,得到第一数值。
第一计算单元241与判断单元242连接,判断单元242判断第一数值是否零,第二计算单元243在判断单元242判断出第一数值不为零,而且目标分栏方式为自由分栏方式时,将第一数值与所述分栏数作比值,得到第二比值,将所述第二比值与初始栏宽相加,得到每一栏的目标栏宽。第二计算单元243还将栏间距作为目标栏间距。在自由分栏方式下,分栏处理模块25,按照每一栏的目标栏宽和栏间距对待分栏文字进行分栏。
此处需要说明,当目标分栏方式为自由分栏方式时,文字分栏处理装置只是调整了每一栏的初始栏宽,得到了每一栏的目标栏宽,而且每一栏的目标栏宽是相等的。本实施例中文字分栏处理装置并未改变栏与栏之间的间距,在自由分栏方式下,目标栏间距为设置模块21在对话框中输入的栏间距。
本实施例中,第三计算单元与判断单元242连接,在判断单元242判断出第一数值不为零,而且目标分栏方式为绝对分栏方式时,第三计算单元244将第一数值与所述栏间距的个数作比值得到第三比值,将第三比值与所述栏间距相加得到目标栏间距。
在绝对分栏方式下,分栏处理模块25按照每一栏的目标栏宽以及目标栏间距对所述待分栏文字进行分栏。其中,每一栏的目标栏宽为初始栏宽。
此处需要说明,当目标分栏方式为绝对分栏方式时,文字分栏处理装置只是调整了栏间距得到目标栏间距,并未调整每一栏的栏宽。
在判断单元242判断出第一数值不为零,而且目标分栏方式为相对分栏方式时,判断单元242还需要进一步判断第一数值是否小于1。第四计算单元245与判断单元242连接,在判断出第一数值小于1后,第四计算单元245将第一数值与最后一栏的初始栏宽相加,得到最后一栏的目标栏宽。进一步地,第四计算单元245将初始栏宽作为除最后一栏之外的每一栏的目标栏宽,以及将栏间距作为目标栏间距。
进一步地,分栏处理模块25按照初始栏宽以及所述栏间距,在除最后一栏之外的每一栏中对待分栏文字中对应部分进行分栏,按照最后一栏的目标栏宽和所述栏间距,在最后一栏中对待分栏文字中对应部分进行分栏。
在第一数值不为零且而目标分栏方式为相对分栏方式的情况下,如果判断单元242判断出第一数值小于分栏数且大于或者等于1,第四计算单元245取第一数值的整数,然后从最后一栏开始取与第一数值的整数等同数目的栏数作为第一组。例如,第一数值为2.4时,那么第一数值的整数为2,则从最后一栏开始取2栏作为第一组,即最后一栏和倒数第二栏作为第一组。排版软件将第一组中每一栏的初始栏宽加1,得到该第一组中每一栏的第一栏宽,然后将第一数值中的小数与最后一栏的第一栏宽相加,得到最后一栏的目标栏宽。例如,第一数值为2.4时,那么第一数值的小数为0.4,则将0.4与最后一栏的第一栏宽相加,得到最后一栏的目标栏宽。进一步地,第四计算单元245将初始栏宽作为除第一组之外的每一栏的目标栏宽,以及将栏间距作为目标栏间距。
进一步地,分栏处理模块25按照初始栏宽以及栏间距,在除第一组之外的每一栏中对待分栏文字中对应部分进行分栏,按照第一栏宽以及栏间距,在除最后一栏之外的第一组中每一栏对待分栏文字中对应部分进行分栏,按照最后一栏的目标栏宽和所述栏间距,在最后一栏对待分栏文字中对应部分进行分栏。
此处需要说明,当目标分栏方式为相对分栏方式时,文字分栏处理装置只是调整了每一栏的栏宽,可能每一栏的栏宽不一定相同。文字分栏处理装置并未调整栏间距,栏间距为设置模块21在对话框中输入的栏间距。
举例说明可参见上述实施例中相关内容的记载,此处不再赘述。
本实施例提供的一种文字分栏处理装置,设置分栏参数,分栏参数包括分栏数和栏间距,判断分栏参数是否合法,如果分栏参数合法,选择目标分栏方式,目标分栏方式为自由分栏方式、绝对分栏方式或相对分栏方式,根据分栏参数、目标分栏方式和待分栏文字所在文本框的宽度,对待分栏文字进行分栏处理。本实施例根据分栏参数、目标分栏方式和待分栏文字所在文本框的宽度,能够灵活地调整每一栏的栏宽和栏间距,然后根据调整后的分栏参数对待分栏文字进行分栏,从而克服了现有技术中只能按照设定好的栏宽以及栏间距对文字进行分栏的问题,提高了文字分栏的灵活性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。