CN101158940A - 在目标区域内缩小字符填充的方法及装置 - Google Patents
在目标区域内缩小字符填充的方法及装置 Download PDFInfo
- Publication number
- CN101158940A CN101158940A CNA2007101876817A CN200710187681A CN101158940A CN 101158940 A CN101158940 A CN 101158940A CN A2007101876817 A CNA2007101876817 A CN A2007101876817A CN 200710187681 A CN200710187681 A CN 200710187681A CN 101158940 A CN101158940 A CN 101158940A
- Authority
- CN
- China
- Prior art keywords
- width
- character string
- target area
- height
- reference type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明公开了一种在目标区域内缩小字符填充的方法,所述目标区域具有高度和宽度信息,所述的方法包括:步骤S11,获取字符串的基准字号,计算所述字符串的高度;步骤S12,判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤S13;如果否,则执行步骤S14;步骤S13,按照第一预置规则缩小所述基准字号;步骤S14,根据所述基准字号计算所述字符串的宽度;步骤S15,判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤S16;如果否,则执行步骤S17;步骤S16,按照第二预置规则缩小所述基准字号;步骤S17,在目标区域内采用所述基准字号绘制所述字符串。本发明使字符串在目标区域内可以完整展示,并保证字符串的绘制效率。
Description
技术领域
本发明涉及文字布局处理领域,特别涉及在目标区域内缩小字符填充的方法及装置。
背景技术
在现有的网页或应用程序中,由于界面绘制、文字编辑、打印输出等需要,要求系统具有在目标区域内,例如,单元格内,输出不确定长度的字符串的功能。当所述字符串的宽度超过该目标区域的宽度时,除了通过用户手动调整字体大小以缩小字符串的宽度外,现有技术中提供了“缩小字体填充”的解决方案。
“缩小字体填充”是指当目标区域内显示的内容的宽度超过该区域的宽度时,自动缩小字体,在不改变该区域宽度的情况下将内容全部显示在该区域内,并且,该区域内的字符大小会依该区域的宽度自动调整。
可以得出,现有技术只能将字符串缩小到适合目标区域的宽度,而并没有考虑到目标区域的高度,当目标区域的高度较小时,则可能显示不完整的情形(可以参考现有EXCEL软件的相应功能)。在这种情况下,若要在目标区域内完整显示字符串,特别是为了打印输出的需要,则需要用户手动调整字号,操作过于复杂。并且,在某些应用环境下,目标字符串的内容不能预先确定,这种人为设置的方式甚至无法实现。
所以,本领域技术人员迫切需要发展出一种在保证字符串绘制效率的前提下,使字符串在目标区域内可以完整展示的方法。
发明内容
本发明所要解决的技术问题是提供在目标区域内缩小字符填充的两种方法,用以使字符串在目标区域内可以完整展示,并保证字符串的绘制效率,使用户获得较好的使用体验。
本发明还提供了两种在目标区域内缩小字符填充的装置,用以保证在实际中的实现及应用。
为解决上述技术问题,本发明实施例公开了一种在目标区域内缩小字符填充的方法,所述目标区域具有高度和宽度信息,所述的方法包括:
步骤S11、获取字符串的基准字号,计算所述字符串的高度;
步骤S12、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤S13;如果否,则执行步骤S14;
步骤S13、按照第一预置规则缩小所述基准字号;
步骤S14、根据所述基准字号计算所述字符串的宽度;
步骤S15、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤S16;如果否,则执行步骤S17;
步骤S16、按照第二预置规则缩小所述基准字号;
步骤S17、在目标区域内采用所述基准字号绘制所述字符串。
优选的是,在步骤S16后,还包括:
步骤S18、根据所述缩小的基准字号计算所述字符串的宽度;
步骤S19、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤S20;如果否,则执行步骤S17;
步骤S20、将所述基准字号缩小一个字号。
优选的是,所述步骤S16包括:
子步骤S161、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤S162、根据所述宽度缩小系数缩小所述基准字号。
优选的是,所述步骤S13包括:
子步骤S131、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤S132、根据所述高度缩小系数缩小所述基准字号。
本发明实施例还公开了一种在目标区域内缩小字符填充的方法,所述目标区域具有高度和宽度信息,所述的方法包括:
步骤S21、获取字符串的基准字号,计算所述字符串的宽度;
步骤S22、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤S23;如果否,则执行步骤S24;
步骤S23、按照第二预置规则缩小所述基准字号;
步骤S24、根据所述基准字号计算所述字符串的高度;
步骤S25、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤S26;如果否,则执行步骤S27;
步骤S26、按照第一预置规则缩小所述基准字号;
步骤S27、在目标区域内采用所述基准字号绘制所述字符串。
优选的是,在步骤S26后,还包括:
步骤S28、根据所述缩小的基准字号计算所述字符串的宽度;
步骤S29、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤S30;如果否,则执行步骤S27;
步骤S30、将所述基准字号缩小一个字号。
优选的是,所述步骤S23包括:
子步骤S231、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤S232、根据所述宽度缩小系数缩小所述基准字号。
优选的是,所述步骤S26包括:
子步骤S261、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤S262、根据所述高度缩小系数缩小所述基准字号。
本发明实施例还公开了一种在目标区域内缩小字符填充的装置,所述目标区域具有高度和宽度信息,所述的装置包括:
获取单元,用于获取字符串的基准字号;
高度计算单元,用于计算所述字符串的高度;
高度判断单元,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元;如果否,则触发宽度计算单元;
第一缩小单元,用于按照第一预置规则缩小所述基准字号;
宽度计算单元,用于根据所述基准字号计算所述字符串的宽度;
宽度判断单元,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元;如果否,则触发绘制单元;
第二缩小单元,用于按照第二预置规则缩小所述基准字号;
绘制单元,用于在目标区域内采用所述基准字号绘制所述字符串。
优选的是,所述的装置,还包括:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
优选的是,所述第二缩小单元包括:
宽度缩小系数计算子单元,用于将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
宽度缩小系数调整子单元,用于根据所述宽度缩小系数缩小所述基准字号。
优选的是,所述第一缩小单元包括:
高度缩小系数计算子单元,用于将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
高度缩小系数调整子单元,用于根据所述高度缩小系数缩小所述基准字号。
本发明实施例还公开了一种在目标区域内缩小字符填充的装置,所述目标区域具有高度和宽度信息,所述的装置包括:
获取单元,用于获取字符串的基准字号;
宽度计算单元,用于计算所述字符串的宽度;
宽度判断单元,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元;如果否,则触发高度计算单元;
第二缩小单元,用于按照第二预置规则缩小所述基准字号;
高度计算单元,用于根据所述基准字号计算所述字符串的高度;
高度判断单元,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元;如果否,则触发绘制单元;
第一缩小单元,用于按照第一预置规则缩小所述基准字号;
绘制单元,用于在目标区域内采用所述基准字号绘制所述字符串。
优选的是,所述的装置,还包括:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
与现有技术相比,本发明实施例具有以下优点:
首先,本发明通过在绘制时充分考虑字符串的高度,当字符串的高度超出目标区域的高度时,则缩小基准字号,使字符串在目标区域内可以完整展示;
其次,本发明根据字号的变化实时更新的高度和宽度信息,一旦字符串的高度和宽度在目标区域的大小范围之内,则按照当前基准字号绘制字符串,有效保证了字符串绘制效率;
再者,本发明的缩小规则十分简单,不会占用过多的系统资源,也不会浪费过多的时间,进一步提高了字符的绘制效率;
最后,本发明技术实现简单,无技术障碍,无特殊保密算法,成本和风险较低。
附图说明
图1是本发明的一种在目标区域内缩小字符填充的方法实施例1的流程图;
图2是本发明的一种在目标区域内缩小字符填充的方法实施例2的流程图;
图3是本发明的一种在目标区域内缩小字符填充的方法实施例3的流程图;
图4是本发明的一种在目标区域内缩小字符填充的方法实施例4的流程图;
图5是本发明的一种在目标区域内缩小字符填充的装置实施例1的结构框图;
图6是应用图5所示的装置实施例在目标区域内进行缩小字符填充的流程图;
图7是本发明的一种在目标区域内缩小字符填充的装置实施例2的结构框图;
图8是应用图7所示的装置实施例在目标区域内进行缩小字符填充的流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明可用于众多通用或专用的计算系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、包括以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
参考图1,示出了本发明的一种在目标区域内缩小字符填充的方法实施例1的流程图,所述目标区域具有高度和宽度信息,本实施例可以包括以下步骤:
步骤101、获取字符串的基准字号,计算所述字符串的高度;
步骤102、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤103;如果否,则执行步骤104;
步骤103、按照第一预置规则缩小所述基准字号;
步骤104、根据所述基准字号计算所述字符串的宽度;
步骤105、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤106;如果否,则执行步骤107;
步骤106、按照第二预置规则缩小所述基准字号;
步骤107、在目标区域内采用所述基准字号绘制所述字符串。
在本实施例中,经过步骤106对基准字号进行缩小处理后,返回至步骤104根据该缩小的基准字号计算所述字符串的宽度,再通过步骤105判断所述字符串的宽度是否仍大于目标区域的宽度,如果是,则再次执行步骤106,即在步骤104-106之间循环执行;如果否,则结束循环进入步骤107。在实际中,所述循环执行的次数可能为一次,也可能为多次,本发明对此不作限制。
本发明中所述字号为各种计算机系统中的一项字体描述信息的属性,也可以称为字体大小,字体通常包括字体名称(通常简称字体,如宋体、楷体等)、字号、样式(粗体、斜体)等信息。字号的单位为pt(磅),1pt等于1/72英寸,实际中,中文通常以诸如一号字、二号字等进行定义,这种“*号字”可以转换成以pt为单位的数值,例如,五号字为10.5pt。在本实施例中,所述基准字号最初可以为用户预置的字号、系统默认的字号或其它初始设置的字号等,在对基准字号进行调整后,所述基准字号还可以为调整后的字号,例如,在按照第一预置规则缩小基准字号后,计算字符串的宽度的依据为该缩小后的基准字号。此外,在实际中,所述字符串通常由多个字符组成,但在某种特殊情况下,所述字符串也可以只包括单个字符,对于本发明而言,其核心构思适用于多个字符或单个字符的情形,并不受字符串长度的限制。
在本实施例中,所述目标区域可以为在缓存中创建的图形对象,这个图形对象的高度和宽度可以是默认的,也可以是预先设定的,还可以是用户指定的,本发明对此不作限制,只要其具有相应的高度和宽度信息即可。
在所述目标区域内中绘制字符串,即可理解为在所述图形对象的相应坐标位置绘制字符,例如,一种在目标区域内绘制字符的过程为:
创建一个指定高度和宽度的缓存图形对象,设置X坐标为0,Y坐标为ascent,绘制时,依次取字符串中的第i个字符,X位移字符宽度;如果Y+descent超过了该图形对象的高度,则表示所绘制的字符串的高度超过了该图形对象的高度。其中,ascent和descent是每个字符都具有的属性,ascent是字符超出基线(baseline)之上的距离;descent是字符超出基线以下的距离。基线是指,当程序将字符放置在某个坐标(x,y)处时,该字符的放置会使得其引用点(标准设置的特定位置点)也放置在该位置。引用点指定一条水平线即称为字符的基线,字符通过基线保持水平对齐。对于确定的字号而言,通过ascent和descent即可确定字符串的高度。
为保证字符串绘制的效率,尽量减少系统资源占用,避免时间浪费,在本实施例中,所述按照第一预置规则缩小所述基准字号的步骤103可以包括以下子步骤:
子步骤A1、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤A2、根据所述高度缩小系数缩小所述基准字号。
对于上述子步骤,可以采用计算公式表示为:
Hrate=H2/H1;
其中,Hrate为高度缩小系数,H2为目标区域的高度,H1为在原始基准字号下的字符串的高度。
相应地,缩小的基准字号的计算公式可以表示为:
S2=S1*Hrate
其中,S2为缩小后的基准字号,S1为原始基准字号,Hrate为高度缩小系数。
例如,假设基准字号为35,字符串的高度为41,目标区域的高度为40,在这种情况下,计算缩小的基准字号为:35*(40/41)≈34。
相应地,所述按照第二预置规则缩小所述基准字号的步骤106可以包括以下子步骤:
子步骤B1、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤B2、根据所述宽度缩小系数缩小所述基准字号。
对于上述子步骤,可以采用计算公式表示为:
Wrate=W2/W1;
其中,Wrate为宽度缩小系数,W2为目标区域的宽度,W1为在原始基准字号下的字符串的宽度。
相应地,缩小的基准字号的计算公式可以表示为:
S2=S1*Wrate
其中,S2为缩小后的基准字号,S1为原始基准字号,Wrate为宽度缩小系数。
例如,假设基准字号为34,字符串的宽度为204,目标区域的高度为200,在这种情况下,计算缩小的基准字号为:34*(200/204)≈33。
当然,上述缩小字号的方法仅仅用于举例,本领域技术人员采用其它方法,例如,设置固定参数等,本发明对此不需要进行限定。
优选的是,为有效节约资源,所述字符串的高度和宽度可以通过JDK(Java Development Kit,Java开发工具)的API(应用程序接口,ApplicationProgramming Interface)获得。
为使本领域技术人员更好地理解本实施例,下面以一个具体例子对本发明进行更进一步的描述。
例如,目标区域的高度为30,宽度为100;字符串的内容为:一二三四五六ABCD;
1)获取字符串的初始基准字号为:48pt;
2)通过JDK API计算所述字符串的高度为:56;
3)对比所述字符串的高度和目标区域的高度为:56>30;
4)在这种情况下,缩小所述基准字号为:48*(30/56)≈25;
5)根据所述基准字号25,通过JDK API计算所述字符串的宽度为202;
6)对比所述字符串的宽度和目标区域的宽度为:202>100;
7)在这种情况下,缩小所述基准字号为:25*(100/202)≈12;
8)根据所述基准字号12,通过JDK API计算所述字符串宽度为96;
9)对比所述字符串的宽度和目标区域的宽度为:96<100;
10)不需要再缩小字号,按当前基准字号12绘制所述字符串。
参考图2,示出了本发明的一种在目标区域内缩小字符填充的方法实施例2的流程图,所述目标区域具有高度和宽度信息,本实施例可以包括以下步骤:
步骤201、获取字符串的基准字号,计算所述字符串的高度;
步骤202、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤203;如果否,则执行步骤204;
步骤203、按照第一预置规则缩小所述基准字号;
步骤204、根据所述基准字号计算所述字符串的宽度;
步骤205、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤206;如果否,则执行步骤210;
步骤206、按照第二预置规则缩小所述基准字号;
步骤207、根据所述缩小的基准字号计算所述字符串的宽度;
步骤208、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤209;如果否,则执行步骤210;
步骤209、将所述基准字号缩小一个字号;
步骤210、在目标区域内采用所述基准字号绘制所述字符串。
上述步骤207-209是对第二预置规则具体算法的补充,即考虑到字符的字号与字符串的宽度只是近似成正比,因而实施例1中对基准字号进行缩小处理的预置规则获得的结果可能不完全准确的情况而设置。可以理解的是,上述步骤207-209在实际中可能需要执行一次,或循环执行多次,本发明对此不需要进行限定。
为使本领域技术人员更好地理解本实施例,下面以一个具体例子对本发明进行更进一步的描述。
例如,目标区域的高度为40,宽度为200;字符串的内容为:一二三ABC123;
1)获取所述字符串的初始基准字号为:35pt;
2)通过JDK API计算所述字符串的高度为:41;
3)对比所述字符串的高度与所述目标区域的高度为41>40;
4)在这种情况下,缩小所述基准字号为:35*(40/41)≈34;
5)根据缩小的基准字号34,通过JDK API计算所述字符串宽度为:204;
6)对比所述字符串的宽度与所述目标区域的宽度为204>200;
7)在这种情况下,缩小所述基准字号为:34*(200/204)≈33;
8)根据所述缩小的基准字号33,通过JDK API计算字符串的宽度为:201;
9)对比所述字符串的宽度与所述目标区域的宽度为201>200;
10)在这种情况下,将所述基准字号缩小一个字号33-1=32;
11)根据所述缩小的基准字号32,通过JDK API计算字符串的宽度为:192;
12)对比所述字符串的宽度与所述目标区域的宽度为192<200;
13)在目标区域内采用所述基准字号32绘制所述字符串。
可以看出,上述实施例的核心构思之一在于,首先根据字符串的高度缩小基准字号,然后根据字符串的宽度缩小基准字号,缩小算法简单,从而在保证目标区域内字符串完整展示的基础上,减少了资源占用,有效提高了字符串缩小填充的效率。
实际上,无论首先考虑字符串的高度因素,还是首先考虑字符串的宽度因素,本发明都是可以实现的。
参考图3,示出了本发明的一种在目标区域内缩小字符填充的方法实施例3的流程图,所述目标区域具有高度和宽度信息,本实施例可以包括以下步骤:
步骤301、获取字符串的基准字号;
步骤302、根据所述基准字号计算所述字符串的宽度;
步骤303、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤304;如果否,则执行步骤305;
步骤304、按照第二预置规则缩小所述基准字号;
步骤305、根据所述基准字号计算所述字符串的高度;
步骤306、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤307;如果否,则执行步骤308;
步骤307、按照第一预置规则缩小所述基准字号;
步骤308、在目标区域内采用所述基准字号绘制所述字符串。
在本实施例中,经过步骤304对基准字号进行缩小处理后,返回至步骤302根据该缩小的基准字号计算所述字符串的宽度,再通过步骤303判断所述字符串的宽度是否仍大于目标区域的宽度,如果是,则再次执行步骤304,即在步骤302-304之间循环执行;如果否,则结束循环进入步骤305。在实际中,所述循环次数可能为一次,也可能为多次,本发明对此不作限制。
优选的,所述按照第一预置规则缩小所述基准字号的步骤307可以包括以下子步骤:
子步骤C1、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤C2、根据所述高度缩小系数缩小所述基准字号。
优选的,所述按照第二预置规则缩小所述基准字号的步骤304可以包括以下子步骤:
子步骤D1、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤D2、根据所述宽度缩小系数缩小所述基准字号。
参考图4,示出了本发明的一种在目标区域内缩小字符填充的方法实施例4的流程图,所述目标区域具有高度和宽度信息,本实施例可以包括以下步骤:
步骤401、获取字符串的基准字号;
步骤402、计算所述字符串的宽度;
步骤403、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤404;如果否,则执行步骤405;
步骤404、按照第二预置规则缩小所述基准字号;
步骤405、根据所述基准字号计算所述字符串的高度;
步骤406、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤407;如果否,则执行步骤411;
步骤407、按照第一预置规则缩小所述基准字号;
步骤408、根据所述缩小的基准字号计算所述字符串的宽度;
步骤409、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤410;如果否,则执行步骤411;
步骤410、将所述基准字号缩小一个字号。
步骤411、在目标区域内采用所述基准字号绘制所述字符串。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
参考图5,示出了本发明的一种在目标区域内缩小字符填充的装置实施例1的结构框图,所述目标区域具有高度和宽度信息,本实施例可以包括以下单元:
获取单元501,用于获取字符串的基准字号;
高度计算单元502,用于计算所述字符串的高度;
高度判断单元503,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元504;如果否,则触发宽度计算单元505;
第一缩小单元504,用于按照第一预置规则缩小所述基准字号;
宽度计算单元505,用于根据所述基准字号计算所述字符串的宽度;
宽度判断单元506,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元507;如果否,则触发绘制单元或高度计算单元;
第二缩小单元507,用于按照第二预置规则缩小所述基准字号;
绘制单元508,用于在目标区域内采用所述基准字号绘制所述字符串。
优选的,本实施例所述装置还可以包括以下单元:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
优选的,所述第二缩小单元可以包括以下子单元:
宽度缩小系数计算子单元,用于将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
宽度缩小系数调整子单元,用于根据所述宽度缩小系数缩小所述基准字号。
优选的,所述第一缩小单元可以包括以下子单元:
高度缩小系数计算子单元,用于将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
高度缩小系数调整子单元,用于根据所述高度缩小系数缩小所述基准字号。
参考图6,示出了应用图5所示的装置实施例在目标区域内进行缩小字符填充的流程图,具体可以包括以下步骤:
步骤601、获取单获取字符串的基准字号;
步骤602、高度计算单元计算所述字符串的高度;
步骤603、高度判断单元判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元执行步骤604;如果否,则触发宽度计算单元执行步骤605;
步骤604、第一缩小单元按照第一预置规则缩小所述基准字号;
步骤605、宽度计算单元根据所述基准字号计算所述字符串的宽度;
步骤606、宽度判断单元判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元执行步骤607;如果否,则触发绘制单元步骤608;
步骤607、第二缩小单元按照第二预置规则缩小所述基准字号;
步骤608、绘制单元在目标区域内采用所述基准字号绘制所述字符串。
参考图7,示出了一种在目标区域内缩小字符填充的装置实施例2的结构框图,所述目标区域具有高度和宽度信息,本实施例可以包括以下单元:
获取单元701,用于获取字符串的基准字号;
宽度计算单元702,用于计算所述字符串的宽度;
宽度判断单元703,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元704;如果否,则触发高度计算单元705;
第二缩小单元704,用于按照第二预置规则缩小所述基准字号;
高度计算单元705,用于根据所述基准字号计算所述字符串的高度;
高度判断单元706,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元707;如果否,则触发绘制单元708;
第一缩小单元707,用于按照第一预置规则缩小所述基准字号;
绘制单元708,用于在目标区域内采用所述基准字号绘制所述字符串。
优选的,本实施例所述装置还可以包括以下单元:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
优选的,所述第二缩小单元可以包括以下子单元:
宽度缩小系数计算子单元,用于将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
宽度缩小系数调整子单元,用于根据所述宽度缩小系数缩小所述基准字号。
优选的,所述第一缩小单元可以包括以下子单元:
高度缩小系数计算子单元,用于将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
高度缩小系数调整子单元,用于根据所述高度缩小系数缩小所述基准字号。
参考图8,示出了应用图7所示的装置实施例在目标区域内进行缩小字符填充的流程图,可以包括以下步骤:
步骤801、获取单元获取字符串的基准字号;
步骤802、宽度计算单元计算所述字符串的宽度;
步骤803、宽度判断单元判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元执行步骤804;如果否,则触发高度计算单元执行步骤805;
步骤804、第二缩小单元按照第二预置规则缩小所述基准字号;
步骤805、高度计算单元根据所述基准字号计算所述字符串的高度;
步骤806、高度判断单元判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元执行步骤807;如果否,则触发绘制单元执行步骤808;
步骤807、第一缩小单元按照第一预置规则缩小所述基准字号;
步骤808、绘制单元在目标区域内采用所述基准字号绘制所述字符串。
对于装置实施例而言,由于其基本相应于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明通过在绘制时充分考虑字符串的高度,当字符串的高度超出目标区域的高度时,则缩小基准字号,使字符串在目标区域内可以完整展示;并且,本发明根据字号的变化实时更新的高度和宽度信息,一旦字符串的高度和宽度在目标区域的大小范围之内,则按照当前基准字号绘制字符串,有效保证了字符串绘制效率;此外,本发明的缩小规则十分简单,不会占用过多的系统资源,也不会浪费过多的时间,进一步提高了字符的绘制效率。
以上对本发明所提供的两种在目标区域内缩小字符填充的方法,以及两种在目标区域内缩小字符填充的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种在目标区域内缩小字符填充的方法,其特征在于,所述目标区域具有高度和宽度信息,所述的方法包括:
步骤S11、获取字符串的基准字号,计算所述字符串的高度;
步骤S12、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤S13;如果否,则执行步骤S14;
步骤S13、按照第一预置规则缩小所述基准字号;
步骤S14、根据所述基准字号计算所述字符串的宽度;
步骤S15、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤S16;如果否,则执行步骤S17;
步骤S16、按照第二预置规则缩小所述基准字号;
步骤S17、在目标区域内采用所述基准字号绘制所述字符串。
2.如权利要求1所述的方法,其特征在于,在步骤S16后,还包括:
步骤S18、根据所述缩小的基准字号计算所述字符串的宽度;
步骤S19、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤S20;如果否,则执行步骤S17;
步骤S20、将所述基准字号缩小一个字号。
3.如权利要求2所述的方法,其特征在于,所述步骤S16包括:
子步骤S161、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤S162、根据所述宽度缩小系数缩小所述基准字号。
4.如权利要求1、2或3所述的方法,其特征在于,所述步骤S13包括:
子步骤S131、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤S132、根据所述高度缩小系数缩小所述基准字号。
5.一种在目标区域内缩小字符填充的方法,其特征在于,所述目标区域具有高度和宽度信息,所述的方法包括:
步骤S21、获取字符串的基准字号,计算所述字符串的宽度;
步骤S22、判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则执行步骤S23;如果否,则执行步骤S24;
步骤S23、按照第二预置规则缩小所述基准字号;
步骤S24、根据所述基准字号计算所述字符串的高度;
步骤S25、判断所述字符串的高度是否大于所述目标区域的高度,如果是,则执行步骤S26;如果否,则执行步骤S27;
步骤S26、按照第一预置规则缩小所述基准字号;
步骤S27、在目标区域内采用所述基准字号绘制所述字符串。
6.如权利要求5所述的方法,其特征在于,在步骤S26后,还包括:
步骤S28、根据所述缩小的基准字号计算所述字符串的宽度;
步骤S29、判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则执行步骤S30;如果否,则执行步骤S27;
步骤S30、将所述基准字号缩小一个字号。
7.如权利要求6所述的方法,其特征在于,所述步骤S23包括:
子步骤S231、将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
子步骤S232、根据所述宽度缩小系数缩小所述基准字号。
8.如权利要求5、6或7所述的方法,其特征在于,所述步骤S26包括:
子步骤S261、将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
子步骤S262、根据所述高度缩小系数缩小所述基准字号。
9.一种在目标区域内缩小字符填充的装置,其特征在于,所述目标区域具有高度和宽度信息,所述的装置包括:
获取单元,用于获取字符串的基准字号;
高度计算单元,用于计算所述字符串的高度;
高度判断单元,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元;如果否,则触发宽度计算单元;
第一缩小单元,用于按照第一预置规则缩小所述基准字号;
宽度计算单元,用于根据所述基准字号计算所述字符串的宽度;
宽度判断单元,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元;如果否,则触发绘制单元;
第二缩小单元,用于按照第二预置规则缩小所述基准字号;
绘制单元,用于在目标区域内采用所述基准字号绘制所述字符串。
10.如权利要求9所述的装置,其特征在于,还包括:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
11.如权利要求10所述的装置,其特征在于,所述第二缩小单元包括:
宽度缩小系数计算子单元,用于将所述目标区域的宽度与字符串的宽度进行对比,获得宽度缩小系数;
宽度缩小系数调整子单元,用于根据所述宽度缩小系数缩小所述基准字号。
12.如权利要求9、10或11所述的装置,其特征在于,所述第一缩小单元包括:
高度缩小系数计算子单元,用于将所述目标区域的高度与字符串的高度进行对比,获得高度缩小系数;
高度缩小系数调整子单元,用于根据所述高度缩小系数缩小所述基准字号。
13.一种在目标区域内缩小字符填充的装置,其特征在于,所述目标区域具有高度和宽度信息,所述的装置包括:
获取单元,用于获取字符串的基准字号;
宽度计算单元,用于计算所述字符串的宽度;
宽度判断单元,用于判断所述字符串的宽度是否大于所述目标区域的宽度,如果是,则触发第二缩小单元;如果否,则触发高度计算单元;
第二缩小单元,用于按照第二预置规则缩小所述基准字号;
高度计算单元,用于根据所述基准字号计算所述字符串的高度;
高度判断单元,用于判断所述字符串的高度是否大于所述目标区域的高度,如果是,则触发第一缩小单元;如果否,则触发绘制单元;
第一缩小单元,用于按照第一预置规则缩小所述基准字号;
绘制单元,用于在目标区域内采用所述基准字号绘制所述字符串。
14.如权利要求13所述的装置,其特征在于,还包括:
更新单元,用于根据所述缩小的基准字号计算所述字符串的宽度;
第三判断单元,用于判断所述字符串的宽度是否仍大于所述目标区域的宽度,如果是,则触发第三缩小单元;如果否,则触发绘制单元;
第三缩小单元,用于将所述基准字号缩小一个字号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101876817A CN101158940B (zh) | 2007-11-21 | 2007-11-21 | 在目标区域内缩小字符填充的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101876817A CN101158940B (zh) | 2007-11-21 | 2007-11-21 | 在目标区域内缩小字符填充的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101158940A true CN101158940A (zh) | 2008-04-09 |
CN101158940B CN101158940B (zh) | 2010-06-23 |
Family
ID=39307043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101876817A Active CN101158940B (zh) | 2007-11-21 | 2007-11-21 | 在目标区域内缩小字符填充的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101158940B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778169B (zh) * | 2010-02-04 | 2012-09-05 | 华为终端有限公司 | 应用程序界面的动态显示方法及装置 |
CN102799398A (zh) * | 2012-06-27 | 2012-11-28 | 用友软件股份有限公司 | 表体缩放装置和表体缩放方法 |
CN104461054A (zh) * | 2014-12-16 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种限制字符串长度的输入装置及方法 |
CN104516859A (zh) * | 2013-09-27 | 2015-04-15 | 北大方正集团有限公司 | 一种文字修正方法及系统 |
CN107933108A (zh) * | 2017-08-21 | 2018-04-20 | 拓卡奔马机电科技有限公司 | 一种标签打印自适应系统及标签自适应打印方法 |
CN110674618A (zh) * | 2019-09-03 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 一种内容展示方法、装置、设备及介质 |
CN110800040A (zh) * | 2017-07-05 | 2020-02-14 | 三菱电机株式会社 | 描绘装置以及描绘方法 |
CN113542903A (zh) * | 2021-07-16 | 2021-10-22 | 思享智汇(海南)科技有限责任公司 | 一种支持字号自适应的字幕生成方法及装置 |
CN113553865A (zh) * | 2021-07-08 | 2021-10-26 | 维沃软件技术有限公司 | 信息显示方法、装置、电子设备及存储介质 |
EP3879390A4 (en) * | 2018-12-07 | 2022-01-05 | Mitsubishi Electric Corporation | INPUT DISPLAY CONTROL DEVICE, INPUT DISPLAY CONTROL PROCESS AND INPUT DISPLAY SYSTEM |
CN114115779A (zh) * | 2021-11-22 | 2022-03-01 | 珠海格力电器股份有限公司 | 参数显示控制方法、装置、显示面板及家电设备 |
-
2007
- 2007-11-21 CN CN2007101876817A patent/CN101158940B/zh active Active
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101778169B (zh) * | 2010-02-04 | 2012-09-05 | 华为终端有限公司 | 应用程序界面的动态显示方法及装置 |
CN102799398A (zh) * | 2012-06-27 | 2012-11-28 | 用友软件股份有限公司 | 表体缩放装置和表体缩放方法 |
CN104516859A (zh) * | 2013-09-27 | 2015-04-15 | 北大方正集团有限公司 | 一种文字修正方法及系统 |
CN104516859B (zh) * | 2013-09-27 | 2018-02-13 | 北大方正集团有限公司 | 一种文字修正方法及系统 |
CN104461054A (zh) * | 2014-12-16 | 2015-03-25 | 飞天诚信科技股份有限公司 | 一种限制字符串长度的输入装置及方法 |
CN104461054B (zh) * | 2014-12-16 | 2017-11-24 | 飞天诚信科技股份有限公司 | 一种限制字符串长度的输入装置及方法 |
CN110800040A (zh) * | 2017-07-05 | 2020-02-14 | 三菱电机株式会社 | 描绘装置以及描绘方法 |
CN107933108A (zh) * | 2017-08-21 | 2018-04-20 | 拓卡奔马机电科技有限公司 | 一种标签打印自适应系统及标签自适应打印方法 |
EP3879390A4 (en) * | 2018-12-07 | 2022-01-05 | Mitsubishi Electric Corporation | INPUT DISPLAY CONTROL DEVICE, INPUT DISPLAY CONTROL PROCESS AND INPUT DISPLAY SYSTEM |
CN110674618A (zh) * | 2019-09-03 | 2020-01-10 | 北京达佳互联信息技术有限公司 | 一种内容展示方法、装置、设备及介质 |
US11288439B2 (en) | 2019-09-03 | 2022-03-29 | Beijing Dajia Internet Information Technology Co., Ltd. | Method, equipment, and medium for displaying content |
US11699022B2 (en) | 2019-09-03 | 2023-07-11 | Beijing Dajia Internet Information Technology Co., Ltd. | Method, equipment, and medium for displaying content |
CN113553865A (zh) * | 2021-07-08 | 2021-10-26 | 维沃软件技术有限公司 | 信息显示方法、装置、电子设备及存储介质 |
CN113553865B (zh) * | 2021-07-08 | 2023-08-01 | 维沃软件技术有限公司 | 信息显示方法、装置、电子设备及存储介质 |
CN113542903A (zh) * | 2021-07-16 | 2021-10-22 | 思享智汇(海南)科技有限责任公司 | 一种支持字号自适应的字幕生成方法及装置 |
CN114115779A (zh) * | 2021-11-22 | 2022-03-01 | 珠海格力电器股份有限公司 | 参数显示控制方法、装置、显示面板及家电设备 |
CN114115779B (zh) * | 2021-11-22 | 2024-03-15 | 珠海格力电器股份有限公司 | 参数显示控制方法、装置、显示面板及家电设备 |
Also Published As
Publication number | Publication date |
---|---|
CN101158940B (zh) | 2010-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101158940B (zh) | 在目标区域内缩小字符填充的方法及装置 | |
CN102915375B (zh) | 一种基于布局分区的网页加载方法 | |
CN108874760A (zh) | 报表文件生成方法、装置、计算机设备及存储介质 | |
CN108228119A (zh) | 基于hxml的打印方法、终端设备及存储介质 | |
CN110708235B (zh) | 消息生成方法、装置、存储介质和计算机设备 | |
CN111061464B (zh) | 解析代码生成方法、装置、设备及存储介质 | |
CN113095995A (zh) | 网页水印添加方法、装置、电子设备及存储介质 | |
CN103955367A (zh) | 一种生成页面的方法及装置 | |
CN110941614A (zh) | 表单生成方法、装置、电子设备及计算机可读存储介质 | |
CN102023869A (zh) | 一种控件输入值校验方法及系统 | |
CN111881662A (zh) | 表单生成方法、装置、处理设备及存储介质 | |
CN106951254B (zh) | 支付系统中相似业务功能模块复用的方法及装置 | |
CN109375914A (zh) | 信息远程交互方法和系统 | |
CN114996619A (zh) | 一种页面显示的方法、装置、计算机设备及存储介质 | |
CN114707474A (zh) | 报表生成方法、装置、电子设备及计算机可读存储介质 | |
CN108874808A (zh) | 一种页面元素联动方法、装置及服务器 | |
CN104834715A (zh) | 一种基于部件和容器的网站生成方法及系统 | |
CN110347984A (zh) | 保单页面变更方法、装置、计算机设备及存储介质 | |
CN109582401B (zh) | 推广图片生成方法、装置、存储介质和计算机设备 | |
CN106528115A (zh) | 界面的可视化开发方法及装置 | |
CN106201461A (zh) | 一种界面的生成方法、系统及后台服务器 | |
CN112634410A (zh) | 动画曲线插值器生成方法、装置、电子设备及可读存储介质 | |
CN109240664A (zh) | 一种采集用户行为信息的方法及终端 | |
CN115935909A (zh) | 一种文件生成方法、装置及电子设备 | |
CN111124482B (zh) | 文案信息的配置方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |