字库生成方法、字库生成系统和服务器的制造方法
【技术领域】
[0001]本发明涉及嵌入字体技术领域,具体而言,涉及一种字库生成方法、一种字库生成系统和一种服务器。
【背景技术】
[0002]早期的互联网网页仅能使用本地默认的字库作为显示字库,比如本地的宋体、微软雅黑等字体的字库。而随着W3C(万维网联盟)网络规范的发展,出现了 Ofont-face,即Web嵌入字体技术,它是一种连接服务器上的字体的方式,是W3C网络规范中的CSS3 (Cascading Style Sheet,层叠样式表)中的一个模块,主要用于把自定义的Web字体嵌入到网页中。例如,浏览器会根据@font-face指令把对应的字体文件下载到本地缓存,以使用下载的字体文件去修饰文本,因此,本地终端无需安装该种字体就能使用它读取网页。
[0003]Web嵌入字体技术适合于较小的字体,比如西方字体中的英文字体,全库英文字库文件的大小不过100K左右,其小容量并不会影响网速,因此非常适合嵌入网页中传播。
[0004]但是,随着CSS3中的Web嵌入字体技术的广泛应用,中文字库的弊端就凸显出来了,虽然全库中文字库也可以完全嵌入网页,但是由于每个中文字库的字数庞大,其容量一般都在几兆字节大小,在网页中加载中文字库就会使得网页的加载速度大大降低,从而使进行网页浏览的用户的体验明显降低。
[0005]因此需要一种新的技术方案,可以根据用户的需要生成小容量的字库,去除大量用不到的冗余文字,从而优化网页加载速度。
【发明内容】
[0006]本发明正是基于上述问题,提出了一种新的技术方案,可以根据用户的需要生成小容量的字库,去除大量用不到的冗余文字,从而优化网页加载速度。
[0007]有鉴于此,本发明提出了一种字库生成方法,包括:根据接收到的设置命令或预设的字体信息文件,设置字库生成请求数据;根据所述字库生成请求数据,确定原始字库,并在所述原始字库中提取出目标字库。
[0008]在该技术方案中,用户可以根据个人需求进行在线字体设置,设置项包括字体名和网页域名,并根据设置的字体名和网页域名生成该用户专属的字体信息文件,这些预设的字体信息文件一般为JSCJavaScirpt,直译式脚本语言)文件。另外,当用户设置的字体名和网页域名发生更新时,字体信息文件也随之更新。在用户需要获取精简的字库时,可以直接设置字体名和网页域名等字库生成请求数据,也可以在系统中读取预设的字体信息文件,直接获取设置过的字体名和网页域名等内容,并根据设置的字库生成请求数据,对对应的原始字库进行剪裁或抽取等操作,从而得到目标数据,得到的目标数据即适应用户需要的精简后的字库。通过该技术方案,可以根据用户的需要生成小容量的字库,去除大量用不到的冗余文字,从而优化网页加载速度,提升用户的使用体验。
[0009]在上述技术方案中,优选地,所述根据接收到的设置命令或预设的字体信息文件,设置字库生成请求数据,具体包括:根据接收到的所述设置命令,为发出所述设置命令的ID设置网页域名、字体名和文本数据,并对所述文本数据进行去重,或根据预设的所述字体信息文件,在访问网页时获取所述网页的所述网页域名、所述字体名和所述文本数据,并对所述文本数据进行去重;以及根据所述网页域名、所述字体名和去重后的所述文本数据,按照预定加密规则生成加密字符串,并根据所述网页的浏览器的类型,确定所需的所述目标字库的类型。
[0010]在该技术方案中,在用户需要获取精简的字库时,可以直接设置字体名、网页域名和文本数据,也可以在系统中读取预设的字体信息文件,直接获取设置过的字体名、网页域名和文本数据。在得到字体名、网页域名和文本数据后,进一步对文本数据进行去重操作,以删除其中的重复数据。
[0011]在该技术方案中,可以根据用户ID、字体名、网页域名和去重后的文本数据还可以生成加密字符串,比如,在用户foundertest所需的字体名为方正静蕾简体时,根据该字体的英文名FZJLJW和网页中的该字体去重后的文本内容“中国北京大学”,可以生成加密字符串 6ab591e473ce55fd05b0732b5aab6821。
[0012]另外,在该技术方案中,还可以根据网页的浏览器的类型确定所需的目标字库的类型,其中,目标字库的类型包括TTF(True Type Font)、E0T、W0FF(Web Open Font Format,网页开放字体格式)、SVG(Scalable Vector Graphics,可缩放矢量图形)等,比如,当开启的网页为IE浏览器的网页时,可以确定目标字库的类型为EOT。
[0013]在上述技术方案中,优选地,所述字库生成请求数据包括所述ID、所述域名、所述字体名、所述加密字符串和所需的所述目标字库的类型。
[0014]在上述技术方案中,优选地在所述原始字库中提取出所述目标字库之前,还包括:根据预设的所述字体信息文件,确定所述字库生成请求数据是否满足预定校验规则;当确定所述字库生成请求数据满足所述预定校验规则时,允许在所述原始字库中提取所述目标字库。
[0015]在该技术方案中,在提取目标字库前,需要对提取目标字库的权限进行验证,比如,判断用户的ID在系统内是否存在,如果该ID不存在,则中止数据处理,不为该用户生成精简的字库。再比如,判断系统是否存储有当前的域名,如果系统中未存储当前的域名,则中止数据处理,不为该用户生成精简的字库。通过本技术方案,使得系统可以只为特定用户或只能根据特定数据进行字库的精简,可以避免非法请求,便于投入市场,也可以避免恶意请求,保护了数据的安全性。
[0016]在上述技术方案中,优选地,所述在所述原始字库中提取出目标字库,具体包括:在所述原始字库中确定所述文本数据的GLYPH(标志符号)字形;抽取出所述文本数据的所述GLYPH字形或删除所述文本数据以外的所述GLYPH字形,以生成所述目标字库。
[0017]在该技术方案中,可以对原始字库中的GLYPH字形进行剪裁或抽取,以生成容量更小更精简的目标字库,从而去除大量用不到的冗余文字,从而优化网页加载速度,提升用户的使用体验。
[0018]在上述技术方案中,优选地,还包括:按照所述类型对生成的所述目标字库进行压缩,以获取所需的所述类型的所述目标字库。
[0019]在该技术方案中,可以将目标字库压缩成TTF(True Type Font)、E0T、W0FF、SVG等类型,以EOT类型为例,在将目标字库压缩生成所需的EOT类型的字库后,压缩后的字库的文件存储结构和命名与原目标字库相同,只是文件格式不同。通过对目标字库进行压缩,可以获取多种格式的目标字库,从而拓宽了精简后的字库的适用范围。
[0020]在上述技术方案中,优选地,还包括:存储所述字体信息文件、所述加密字符串和所述目标字库,以供当再次生成的所述加密字符串与存储的所述加密字符串相同时,调用与存储的所述加密字符串对应的所述目标字库,并将所述目标字库的内容以CSS代码的形式写入所述网页。
[0021]在该技术方案中,将字体信息文件、加密字符串和目标字库等存储起来,当再次进行字库精简时,如果生成的加密字符串与存储的加密字符串相同,则直接调用存储的对应类型的目标字库即可,而不需要再次进行目标字库的生成工作,优化了网页加载的速度,大大提升了用户体验。
[0022]本发明的另一方面提出了一种字库生成系统,包括:设置单元,根据接收到的设置命令或预设的字体信息文件,设置字库生成请求数据;处理单元,根据所述字库生成请求数据,确定原始字库,并在所述原始字库中提取出目标字库。
[0023]在该技术方案中,用户可以根据个人需求进行在线字体设置,设置项包括字体名和网页域名,并根据设置的字体名和网页域名生成该用户专属的字体信息文件,这些预设的字体信息文件一般为JSCJavaScirpt,直译式脚本语言)文件。另外,当用户设置的字体名和网页域名发生更新时,字体信息文件也随之更新。在用户需要获取精简的字库时,可以直接设置字体名和网页域名等字库生成请求数据,也可以在系统中读取预设的字体信息文件,直接获取设置过的字体名和网页域名等内容,并根据设置的字库生成请求数据,对对应的原始字库进行剪裁或抽取等操作,从而得到目标数据,得到的目标数据即适应用户需要的精简后的字库。通过该技术方案,可以根据用户的需要生成小容量的字库,去除大量用不到的冗余文字,从而优化网页加载速度,提升用户的使用体验。
[0024]在上述技术方案中,优选地,所述设置单元用于:根据接收到的所述设置命令,为发出所述设置命令的ID设置网页域名、字体名和文本数据,并对所述文本数据进行去重,或根据预设的所述字体信息文件,在访问网页时获取所述网页的所述网页域名、所述字体名和所述文本数据,并对所述文本数据进行去重;以及所述设置单元还包括:字符串确定单元,根据所述网页域名、所述字体名和去重后的所述文本数据,按照预定加密规则生成加密字符串;类型确定单元,根据所述网页的浏览器的类型,确定所需的所述目标字库的类型。
[0025]在该技术方案中,在用户需要获取精简的字库时,可以直接设置字体名、网页域名和文本数据,也可以在系统中读取预设的字体信息文件,直接获取设置过的字体名、网页域名和文本数据。在得到字体名、网页域名和文本数据后,进一步对文本数据进行去重操作,以删除其中的重复数据。
[0026]在该技术方案中,可以根据用户ID、字体名、网页域名和去重后的文本数据还可以生成加密字符串,比如,在用户foundertest所需的字体名为方正静蕾简体时,根据该字体的英文名FZJLJW和网页中的该字体去重后的文本内容“中国北京大学”,可以生成加密字符串 6ab591e473ce55fd05b0732b5aab6821。
[0027]另外,在该技术方案中,还可以根据网页的浏览器的类型确定所需的目标字库的类型,其中,目标字库的类型包括TTF (True Type Font)、E0T、W0FF、SVG等,比如,当开启的网页为IE浏览器的网页时,可以确定目标字库的类型为EOT。
[0028]在上述技术方案中,优选地,所述字库生成请求数据包括所述ID、所述域名、所述字体名、所述加密字符串和所需的所述目标字库的类型;以及所述字库生成系统还包括:确定单元,在所述在原始字库中提取出目标字库之前,根据预设的所述字体信息文件,确定所述字库生成请求数据是否满足预定校验规则,以及当确定所述字库生成请求数据满足所述预定校验规则时,允许在所述原始字库中提取所述目标字库。
[0029]在该技术方案中,在提取目标字库前,需要对提取目标字库的权限进行验证,比如,判断用户的ID在系统内是否存在,如果该ID不存在,则中止数据处理,不为该用户生成精简的字库。再比如,判断系统是否存储有当前的域名,如果系统中未存储当前的域名,则中止数据处理,不为该用户生成精简的字库。通过本技术方案,使得系统可以只为特定用户或只能根据特定数据进行字库的精简,可以避免非法请求,便于投入市场,也可以避免恶意请求,保护了数据的安全性。
[0030]在上述技术方案中,优选地,所述处理单元用于:在所述原始字库中确定所述文本数据的GLYPH字形,并抽取出所述文本数