首页> 中国专利> 用于网页显示中的排版的方法和装置

用于网页显示中的排版的方法和装置

摘要

本发明公开了一种用于网页显示中的排版的方法和装置,属于移动终端领域。该方法包括:根据字符串的字体信息,获取特征值;根据该特征值检索字体信息数据库;当该预存字体信息数据库中包含该特征值,从该字体信息数据库中获取与该特征值相对应的第一尺寸;根据该第一尺寸计算该字符串占用的宽度和高度;根据计算得到的宽度和高度进行排版。该装置包括:特征值获取模块、检索模块、尺寸获取模块、字符串计算模块和排版模块。本发明实施例避免了排版中出现大量的查询字符串宽高的操作,能够有效的减少排版所需的时间,从而加快整个网页从加载到显示的过程。

著录项

  • 公开/公告号CN103309878A

    专利类型发明专利

  • 公开/公告日2013-09-18

    原文格式PDF

  • 申请/专利权人 腾讯科技(深圳)有限公司;

    申请/专利号CN201210063668.1

  • 发明设计人 林洁;

    申请日2012-03-12

  • 分类号G06F17/30;G06F17/25;

  • 代理机构北京三高永信知识产权代理有限责任公司;

  • 代理人罗振安

  • 地址 518000 广东省深圳市福田区赛格科技园2栋东403室

  • 入库时间 2024-02-19 20:48:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-01

    授权

    授权

  • 2013-10-23

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20120312

    实质审查的生效

  • 2013-09-18

    公开

    公开

说明书

技术领域

本发明涉及移动终端领域,特别涉及一种用于网页显示中的排版的方法和 装置。

背景技术

随着移动终端的发展,用户越来越多的使用移动终端上网浏览网页,而在 移动终端的上网过程中,当下载到网页数据时,需要根据应用浏览器的样式进 行排版,最终显示在移动终端的浏览器窗口中。移动终端排版的顺序是从上至 下,也就是说,先决定第一行排什么,再决定第二行排什么,一直到最后一个 网页元素被排下。每一行都包括一个或多个网页元素,有些元素还会横跨多行, 比如text(文本)元素。每一个网页元素的位置都依赖于前一个元素的位置和大 小。在排版过程中,需要经常查询某个字符串占用的高度和宽度(像素值),来 决定一行的开始和结束位置,也就是说当前行从哪个网页元素开始,以哪个网 页元素结束,以及下一行的开始坐标。在移动终端上,查询字符串宽高的操作 是比较耗时的,由于在排版过程中存在大量查询字符串宽高的操作,查询所需 的时间长,会导致网页数据的排序缓慢,移动终端的显示不流畅,影响了用户 浏览网页的体验。

发明内容

本发明实施例提供了一种用于网页显示中的排版的方法和装置。所述技术 方案如下:

一种用于网页显示中的排版的方法,包括:

根据字符串的字体信息,获取特征值;

根据所述特征值检索字体信息数据库;

当所述预存字体信息数据库中包含所述特征值,从所述字体信息数据库中 获取与所述特征值相对应的第一尺寸;

根据所述第一尺寸计算所述字符串占用的宽度和高度;

根据计算得到的宽度和高度进行排版。

根据所述特征值检索字体信息数据库,之后还包括:

当所述字体信息数据库中不包含所述特征值,根据所述字符串的字体信息, 计算所述字符串中字符的第二尺寸;

根据所述第二尺寸计算所述字符串占用的宽度和高度,并根据计算得到的 宽度和高度进行排版;

将所述特征值与所述第二尺寸保存在所述字体信息数据库中。

根据所述第一尺寸计算所述字符串占用的宽度和高度,具体包括:

将所述第一尺寸中的宽度和高度分别与所述字符串所包括的字符数相乘, 得到所述字符串占用的宽度和高度。

所述第一尺寸中的宽度和高度分别为符合所述字体信息的关键字符的高度 和宽度。

所述字体信息包括字号、字体名称、样式。

一种用于网页显示中的排版的装置,包括:

特征值获取模块,用于根据字符串的字体信息,获取特征值;

检索模块,用于根据所述特征值检索字体信息数据库;

尺寸获取模块,用于当所述预存字体信息数据库中包含所述特征值,从所 述字体信息数据库中获取与所述特征值相对应的第一尺寸;

字符串计算模块,用于根据所述第一尺寸计算所述字符串占用的宽度和高 度;

排版模块,用于根据计算得到的宽度和高度进行排版。

所述装置还包括:

尺寸计算模块,用于当所述字体信息数据库中不包含所述特征值,根据所 述字符串的字体信息,计算所述字符串中字符的第二尺寸;

所述字符串模块,还用于根据所述第二尺寸计算所述字符串占用的宽度和 高度;

所述排版模块,还用于根据计算得到的宽度和高度进行排版;

保存模块,用于将所述特征值与所述第二尺寸保存在所述字体信息数据库 中。

所述字符串计算模块具体用于将所述第一尺寸中的宽度和高度分别与所述 字符串所包括的字符数相乘,得到所述字符串占用的宽度和高度。

所述第一尺寸中的宽度和高度分别为符合所述字体信息的关键字符的高度 和宽度。

所述字体信息包括字号、字体名称、样式。

本发明实施例提供的用于网页显示中的排版的方法和装置,通过根据字符 串的字体信息,获取特征值;根据所述特征值检索字体信息数据库;当所述预 存字体信息数据库中包含所述特征值,从所述字体信息数据库中获取与所述特 征值相对应的第一尺寸;根据所述第一尺寸计算所述字符串占用的宽度和高度; 根据计算得到的宽度和高度进行排版。采用本发明的技术方案,避免了排版中 出现大量的查询字符串宽高的操作,能够有效的减少排版所需的时间,从而加 快整个网页从加载到显示的过程。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种用于网页显示中的排版的方法的流程图;

图2是本发明实施例提供的一种用于网页显示中的排版的方法的流程图;

图3是本发明实施例提供的一种用于网页显示中的排版的装置的结构示意 图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明 实施方式作进一步地详细描述。

图1是本发明实施例提供的一种用于网页显示中的排版的方法的流程图。 该实施例的执行主体为移动终端,参见图1,该实施例包括:

101、根据字符串的字体信息,获取特征值;

102、根据该特征值检索字体信息数据库;

103、当该预存字体信息数据库中包含该特征值,从该字体信息数据库中获 取与该特征值相对应的第一尺寸;

104、根据该第一尺寸计算该字符串占用的宽度和高度;

105、根据计算得到的宽度和高度进行排版。

可选地,根据所述特征值检索字体信息数据库,之后还包括:

当所述字体信息数据库中不包含所述特征值,根据所述字符串的字体信息, 计算符合所述字体信息的关键字符的第二尺寸;

根据所述第二尺寸计算所述字符串占用的宽度和高度,并根据计算得到的 宽度和高度进行排版;

将所述特征值与所述第二尺寸保存在所述字体信息数据库中。

可选地,根据所述第一尺寸计算所述字符串占用的宽度和高度,具体包括:

将所述第一尺寸中的宽度和高度分别与所述字符串所包括的字符数相乘, 得到所述字符串占用的宽度和高度。

可选地,所述第一尺寸中的宽度和高度分别为符合所述字体信息的关键字 符的高度和宽度。

可选地,所述字体信息包括字号、字体名称、样式。

图2是本发明实施例提供的一种用于网页显示中的排版的方法的流程图。 该实施例的执行主体为移动终端,参见图2,该实施例包括:

201、根据字符串的字体信息,获取特征值;

其中,字体信息包括字号、字体名称(如宋体、楷体、黑体等)、样式(如 粗细、带下划线,斜体等)。

在本实施例中,该特征值能唯一代表一种字体,如果两个字符串所用字体 的特征值相同,则表示这两个字符串处于同一种字体下,根据字符串的字号、 字体名称和样式,应用预设算法,获取唯一的特征值,其中,预设算法可以为 哈希HASH算法或其他映射算法,本实施例不做具体限定。

在该实施例提供的排版方法之前,当移动终端获取到网页文本后,进行以 下两个步骤:(1)对网页数据进行解析,即将网页文本转化成一种方便后续处 理的树形结构,树形结构上每个节点与网页元素一一对应,例如,“body”节点 对应网页文本中的body元素(“<body>....</body>”)。(2)应用样式:把字体 大小、背景颜色、边距等等应用到(1)生成的树形结构的每一个节点上,例如, 把字体颜色“黑色”应用到附图一的“body”节点上。然后在根据本发明提供 的方法确定每个网页元素在移动终端提供的浏览器窗口里的位置,也就是距离 浏览器左上角的(x,y)坐标。这里所述的网页元素即是本发明中的字符串。

202、根据所述特征值检索字体信息数据库;

其中,字体信息数据库包括特征值及其对应的尺寸信息。该字体信息数据 库可以由技术人员预先设置,不断在移动终端的使用进行更新。

当通过检索获知字体信息数据库中包含该特征值,则说明字体信息数据库 中包含该特征值对应的尺寸信息,当通过检索获知字体信息数据库中不包含该 特征值,则说明字体信息数据库中不包含该特征值对应的尺寸信息。

在实际场景中,字体信息数据库在浏览器退出时被保存到移动终端,在浏 览器启动时读取到内存。

203、当所述字体信息数据库中包含所述特征值,从所述字体信息数据库中 获取与所述特征值相对应的第一尺寸;

根据该特征值,从字体信息数据库中获取与该特征值相对应的第一尺寸, 其中,第一尺寸中的宽度和高度分别为符合该字体信息的关键字符的高度和宽 度。该关键字符由技术人员设置,该关键字符的高度和宽度可以作为在各种字 体信息情况下单个字符的高度和宽度的基准值。

例如,对于中文,可以将“国”字设置为关键字符,在字体信息数据库中 保存“国”字的宽度和高度,相当于把所有中文字符都看成是等宽、等高的。 根据不同的内存限制和精度要求,关键字符的选取范围会有差别,对应中文浏 览器,可以选取所有可见的ASCII字符再加上“国”字作为关键字符。

又例如,对于英文,可以在字体信息数据库中保存“a”到“z”这26个字 符中任一字母的宽度和高度,即可以取“a”到“z”这26个字符中任一字母作 为关键字符。

204、根据所述第一尺寸计算所述字符串占用的宽度和高度;

将所述第一尺寸中的宽度和高度分别与所述字符串所包括的字符数相乘, 得到所述字符串占用的宽度和高度。

在步骤203中的例子的基础上,比如计算“举个例子”这个字符串的宽度 和高度,只是简单的把“国”字的宽度乘以4,得到字符串的宽度,而字符串的 高度为“国”字的高度。

某个字符串所占用的物理区域,即宽度和高度的像素值,是由该字符串本 身,以及该字符串使用的字体信息,包括大小、粗细、名字,是否斜体、是否 下划线共同决定。字体信息决定了该字体下每个字符的高度和宽度,一般情况 下,字符串的高度与单个字符的高度一致,整个字符串的宽度由组成该字符串 的每个字符宽度叠加而成。因此,对于字符来说,只要它的字体信息是相同的, 即字体大小、粗细、名字、是否斜体、是否下划线完全一致,那么该字符可以 为定值,而对于一个字符串来说,该字符串的高度等于字符的高度,该字符串 的宽度等于组成该字符串的所有字符宽度的和。

205、根据计算得到的宽度和高度进行排版;

本领域技术人员可以获知,该排版是指确定每个字符串在浏览器窗口里的 位置,也就是距离浏览器左上角的(x,y)坐标。在后续的显示过程中,则按照 排版时确定的大小和位置,以及移动终端所应用的样式,显示字符串。

206、当所述字体信息数据库中不包含所述特征值,根据所述字符串的字体 信息,计算符合所述字体信息的关键字符的第二尺寸;

优选地,当所述字体信息数据库中不包含所述特征值,暂停当前的排版, 计算符合该字体信息的关键字符的宽度和高度,得到第二尺寸,继续排版过程。

207、根据所述第二尺寸计算所述字符串占用的宽度和高度;

该计算得到字符串占用的宽度和高度的过程与步骤204同理,在此不再赘 述。

208、根据计算得到的宽度和高度进行排版;

本领域技术人员可以获知,该排版是指确定每个字符串在浏览器窗口里的 位置,也就是距离浏览器左上角的(x,y)坐标。在后续的显示过程中,则按照 排版时确定的大小和位置,以及移动终端所应用的样式,显示字符串。

在另一实施例中,在获知字体信息数据库中不包含该特征值时,该步骤 206-208还可以为根据现有技术中查询字符串占用高宽的操作获取字符串占用 的高度和宽度,并根据查询到的高度和宽度进行排版,具体包括:获取当前的 绘制环境。将该字符串所用的字体信息,包括字体的大小、名称(比如:宋体)、 粗细、样式(比如:带下划线,斜体),应用到当前环境中。调用获取字符串 所占宽高的函数,传入要查询的字符串,得到字符串占用的宽度和高度,并根 据查询到的高度和宽度进行排版。

209、将所述特征值与所述第二尺寸保存在所述字体信息数据库中。

为了提高排版效率,将该特征值和第二尺寸保存在字体信息数据库,以便 后续排版过程中出现该字体信息时使用。

调用系统函数查询字符串宽高值的操作相对比较耗时,各个平台略有差异, 大概需要1至3毫秒,而简单的比较操作只需要不到1纳秒,两者相差千倍。 采用本实施例提供的方法,通过利用预设的字体信息数据库所保存的字体信息 与尺寸,进行简单的检索和计算,避免了排版中出现大量的查询字符串宽高的 操作,能够有效的减少排版所需的时间,从而加快整个网页从加载到显示的过 程。

图3是本发明实施例提供的一种用于网页显示中的排版的装置的结构示意 图。参见图3,该装置包括:

特征值获取模块301,用于根据字符串的字体信息,获取特征值;

检索模块302,用于根据所述特征值检索字体信息数据库;

尺寸获取模块303,用于当所述预存字体信息数据库中包含所述特征值,从 所述字体信息数据库中获取与所述特征值相对应的第一尺寸;

字符串计算模块304,用于根据所述第一尺寸计算所述字符串占用的宽度和 高度;

排版模块305,用于根据计算得到的宽度和高度进行排版。

可选地,所述装置还包括:

尺寸计算模块306,用于当所述字体信息数据库中不包含所述特征值,根据 所述字符串的字体信息,计算符合所述字体信息的关键字符的第二尺寸;

所述字符串计算模块304,还用于根据所述第二尺寸计算所述字符串占用的 宽度和高度;

所述排版模块305,还用于根据计算得到的宽度和高度进行排版;

保存模块307,用于将所述特征值与所述第二尺寸保存在所述字体信息数据 库中。

所述字符串计算模块304具体用于将所述第一尺寸中的宽度和高度分别与 所述字符串所包括的字符数相乘,得到所述字符串占用的宽度和高度。

所述第一尺寸中的宽度和高度分别为关键字符的高度和宽度,所述关键字 符为符合所述字体信息的字符。

所述字体信息包括字号、字体名称、样式。

本实施例提供的装置,与方法实施例属于同一构思,其具体实现过程详见 方法实施例,这里不再赘述。

本实施例提供的装置,具体可以用于移动终端,如该移动终端可以为智能 手机、平板电脑、MP3(Moving Picture Experts Group Audio Layer III,动态影像 专家压缩标准音频层面3)、PDA(Personal Digital Assistant,个人数字助理)等。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过 硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于 一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或 光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的 精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的 保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号