[发明专利]文本排版方法及排版引擎有效
| 申请号: | 201110096146.7 | 申请日: | 2011-04-15 |
| 公开(公告)号: | CN102147790A | 公开(公告)日: | 2011-08-10 |
| 发明(设计)人: | 戎亚新;孙诗;李晓慧;尧俊利;王超;王志;周爱芳;张小兵 | 申请(专利权)人: | 华为软件技术有限公司 |
| 主分类号: | G06F17/21 | 分类号: | G06F17/21 |
| 代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
| 地址: | 210012 江苏省*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 文本 排版 方法 引擎 | ||
技术领域
本发明实施例涉及计算机技术,尤其涉及一种文本排版方法及排版引擎。
背景技术
EPub是一种开放式的电子书格式标准,能支持多种装置应用,可以“自动重新编排”的内容。Epub电子书的关键技术之一是排版技术,其排版的速度直接关系到使用者的体验,特别是对于章节很长的Epub电子书,如果排版时间很长会造成用户承受不了长时间的等待,从而决定放弃阅读。因此,实现一种高性能的排版系统对于提升Epub电子书的阅读体验是至关重要的。由于目前Epub电子书中的内容95%以上是文本,提高文本排版算法的性能就成为提高整个Epub电子书展现性能的关键技术。
绝大多数软件的文字排版引擎对一段文本T进行排版时,先将文本T输出给操作系统提供的文本宽度计算函数,根据操作系统提供的文本宽度计算函数计算出的文本宽度,对文本T进行断行。例如Windows平台提供了用于文本宽度计算的API函数:GetTextExtentPoint,Android平台提供了函数Paint.measureText,在其它带有GUI库的操作系统,都有对应的文本宽度计算函数。各操作系统提供的文本宽度计算函数功能强大,可适应各种字体,目前大多数Epub书阅读软件在排版时都会频繁调用操作系统提供的文本宽度计算函数。
然而,采用操作系统提供的文本宽度计算函数需依赖于构建在驱动一级的GUI库,而Epub电子书阅读软件是构建在用户层的,每调用一次GUI库提供的文本尺寸计算函数相当于一次系统调用。而调用文本尺寸计算函数在整个Epub电子书的文字排版过程是非常频繁的,这些频繁的系统调用严重影响了排版性能。
发明内容
本发明实施例提供一种文本排版方法及排版引擎,用以解决文本排版过程中需频繁调用系统提供的文本宽度计算函数的缺陷,有效提高了电子书阅读过程中的排版性能。
本发明实施例提供一种文本排版方法,包括:
获取解析后的文本后,排版引擎从所述文本中逐个读取字符;
在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;
所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;
调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。
本发明实施例提供一种排版引擎,包括:
读取模块,用于获取解析后的文本后,排版引擎从所述文本中逐个读取字符;
宽度确定模块,用于在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;
断行模块,用于所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;
输出调用模块,用于调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。
本发明实施例的文本排版方法及排版引擎,排版引擎逐个从文本中读取字符,并通过查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度。同一语种的所有方块字符在同一字号的字符宽度均相同,因此,对于方块字符,排版引擎根据语种和字号在方块字符表中查找方块字符的字符宽度。对于非方块字符,排版引擎根据非方块字符的字体在非方块字符宽度表中,查找非方块字符的字符宽度。由于本发明实施例排版引擎查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度,因此排版引擎在用户层完成了字符宽度的计算,不需要调用系统提供的文本宽度计算函数,节省了系统开销,提高了排版性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的文本排版方法实施例一流程图;
图2A为本发明提供的文本排版方法中一种获取方块字符的字符宽度方法流程图;
图2B为本发明提供的文本排版方法中一种获取非方块字符的字符宽度方法流程图;
图3为本发明提供的文本排版方法实施例三流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为软件技术有限公司,未经华为软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110096146.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具有限位功能且带滚珠的变压器安装装置
- 下一篇:一种低质量密度钕铁硼磁体





