发明名称 文本排版方法及排版引擎
摘要 本发明提供一种文本排版方法及排版引擎。该方法包括:获取解析后的文本后,排版引擎从所述文本中逐个读取字符;在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。本发明不需要调用系统提供的文本宽度计算函数计算待文本中字符的字符宽度。
申请公布号 CN102147790B 申请公布日期 2012.12.19
申请号 CN201110096146.7 申请日期 2011.04.15
申请人 华为软件技术有限公司 发明人 戎亚新;孙诗;李晓慧;尧俊利;王超;王志;周爱方;张晓斌
分类号 G06F17/21(2006.01)I 主分类号 G06F17/21(2006.01)I
代理机构 北京同立钧成知识产权代理有限公司 11205 代理人 刘芳
主权项 一种文本排版方法,其特征在于,包括:获取解析后的文本后,排版引擎从所述文本中逐个读取字符;在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本;所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行,包括:排版引擎将所述字符的字符宽度逐个累加至宽度统计值;所述宽度统计值的初始值为零;所述宽度统计值小于所述文本显示区的宽度时,继续从文本中读取下一个字符,确定所述下一个字符的字符宽度并累计至所述宽度统计值中,直至所述宽度统计值大于或等于所述文本显示区的宽度;所述宽度统计值等于所述文本显示区的宽度时,在所述字符之后将文本断行;所述宽度统计值大于所述文本显示区的宽度时,在所述字符之前将文本断行;在文本断行后,将所述宽度统计值清零,继续从剩余文本中逐个读取字符,将所述字符的字符宽度逐个累加至宽度统计值,并根据所述宽度统计值和所述文本显示区的宽度对剩余文本进行断行,直至读取到的字符为空。
地址 210012 江苏省南京市宁南大道11号花神国际大酒店