CN102147790A - 文本排版方法及排版引擎 - Google Patents

文本排版方法及排版引擎 Download PDF

Info

Publication number
CN102147790A
CN102147790A CN 201110096146 CN201110096146A CN102147790A CN 102147790 A CN102147790 A CN 102147790A CN 201110096146 CN201110096146 CN 201110096146 CN 201110096146 A CN201110096146 A CN 201110096146A CN 102147790 A CN102147790 A CN 102147790A
Authority
CN
China
Prior art keywords
character
square
text
duration
width
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
Application number
CN 201110096146
Other languages
English (en)
Other versions
CN102147790B (zh
Inventor
戎亚新
孙诗
李晓慧
尧俊利
王超
王志
周爱芳
张小兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Device Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN 201110096146 priority Critical patent/CN102147790B/zh
Publication of CN102147790A publication Critical patent/CN102147790A/zh
Application granted granted Critical
Publication of CN102147790B publication Critical patent/CN102147790B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Controls And Circuits For Display Device (AREA)

Abstract

本发明提供一种文本排版方法及排版引擎。该方法包括:获取解析后的文本后,排版引擎从所述文本中逐个读取字符;在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。本发明不需要调用系统提供的文本宽度计算函数计算待文本中字符的字符宽度。

Description

文本排版方法及排版引擎
技术领域
本发明实施例涉及计算机技术,尤其涉及一种文本排版方法及排版引擎。
背景技术
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为本发明提供的文本排版方法实施例三流程图;
图4为本发明提供的文本排版方法实施例四流程图;
图5为本发明提供的电子书排版引擎实施例一结构示意图;
图6为图5中宽度确定模块结构示意图;
图7为图6中方块字符宽度查找单元的结构示意图;
图8为图6中方块字符宽度查找单元的结构示意图;
图9为图5或图6中断行模块的结构示意图;
图10为本发明提供的文本排版引擎实施例二结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明提供的文本排版方法实施例一流程图。如图1所示,本实施例包括:
步骤11:获取解析后的电子书文件中文本后,排版引擎从文本中逐个读取字符。
电子书阅读软件中的排版引擎进行排版前,电子书文件需依次经过解压、格式解析和描述语种解析。例如,Epuh电子书文件的压缩包依次经解压、Epuh格式解析和HTML解析。电子书阅读软件中的排版引擎开始对HTML解析后的文本进行排版时,先对HTML解析后的文本进行字体、字号和字形设置。
步骤12:在字符为方块字符时,排版引擎根据字符所属的语种和字号在方块字符宽度表中查找当前读取字符的字符宽度;在字符为非方块字符时,排版引擎根据字符的字体,在非方块字符宽度表中查找当前读取字符的字符宽度。
对于中文字符、日文字符和韩文字符等方块字符,属于同一语种的所有方块字符的字符宽度,在同一字号的所有字体下是等宽的。同一语种下,不同字号的方块字符的字符宽度成等比例关系。同一字号下,不同语种的方块字符的字符宽度不相同。即方块字符的字符宽度与所属的语种和字号有关,与字符和字体无关。对于各种字体的所有中文字符,在同一字号下的字符宽度均相同。例如宋体、楷体、隶书、方正姚体等中文字符的字符宽度均相同。而同一字号下,中文字符与日文字符或韩文字符的字符宽度不相同。因此,针对方块字符,可建立包括“方块字符、所属语种、字形,与字号为基准字号的非方块字符的字符宽度的对应关系”的方块字符宽度表。在确定一个方块字会的字符宽度时,根据所属的语种和字号,在方块字符宽度表中查找该方块字符的字符宽度。
对于各种标点符号、拉丁字母、数学运算符号等除方块字符以外的非方块字符,在同一字体下,同一种语种的不同非方块字符,它们的字符宽度不相同。例如,字符i和字符w,在同一种字体下,字符w的字符宽度大于字符i的字符宽度。对于同一个非方块字符,在字号不相同或字体不相同的情况下,字符宽度也不相同。但在同一字体下,对于不同字号的同一非方块字符,字符宽度成等比例关系。例如,不同字体或不同字号的字符i,其字符宽度互不相同。但对于同一字体,字号为10号的字符i的字符宽度,与其它字号的字符i的字符宽度成等比例关系。因此,对于非方块字符的字符宽度,不仅与所属的语种和字号有关,而且与字体和字符相关。因此,针对非方块字符可建立包括“非方块字符、非方块字符的字体,与字号为基准字号的非方块字符的字符宽度的对应关系”的非方块字符宽度表。在确定一个非方块字符的字符宽度时,根据字符的字体,在非方块字符宽度表中查找字符的字符宽度。
步骤13:排版引擎根据文本显示区的宽度、文本中非方块字符的字符宽度和文本中方块字符的字符宽度,对文本进行断行。
具体的:排版引擎将当前读取字符的字符宽度逐个累加至宽度统计值;宽度统计值的初始值为零。当宽度统计值小于文本显示区的宽度时,排版引擎继续读取从文本中读取下一个字符,确定下一个字符的字符宽度并累计至宽度统计值中,直至宽度统计值小于文本显示区的宽度大于或等于文本显示区的宽度。宽度统计值小于文本显示区的宽度时,表明在文本显示区的当前行还有多余的空间容纳字符,因此排版引擎确定读取从文本中下一个字符,重复读取过程,直至宽度统计值大于或等于文本显示区的宽度。
当宽度统计值等于文本显示区的宽度时,排版引擎在字符之后将文本断7行;宽度统计值大于文本显示区的宽度时,排版引擎在字符之前将文本断行。
宽度统计值等于文本显示区的宽度时,表明若在文本显示区的一行增加中“从读取第一个字符(或从上一次断行)开始到当前读取的字符为止”排版引擎所读取的所有字符后,恰好到达文本显示区的页边界,因此,排版引擎在当前读取字符之后(即当前读取字符的下一字符之前)将文本断行。
宽度统计值大于文本显示区的宽度时,表明若在文本显示区的一行增加中“从读取第一个字符(或从上一次断行)开始到当前读取的字符为止”排版引擎所读取的所有字符后,会超出文本显示区的页边界。因此,排版引擎在当前读取字符之前(即当前读取字符的上一字符之后)将文本断行。
在进行文本断行后,排版引擎将宽度统计值清零,继续从剩余文本中逐个读取字符,将字符的字符宽度累加至宽度统计值,并根据宽度统计值和文本显示区的宽度对剩余文本进行断行,直至读取到的字符为空。
步骤14:排版引擎调用操作系统提供的文本输出函数在文本显示区输出断行后的文本。
将整个文本断行后,调用操作系统提供的文本输出函数在文本显示区输出断行后的文本。
电子阅读软件在第一次打开文本时,调用排版引擎利用上述方法对解析后的文本进行排版,可将排版后的文本存储以便在下一次打开文本时,直接显示排版后的文本;也可以不存储排版后的文本,每次打开时调用排版引擎通过上述方法重新对文本进行排版。进一步,在电子设备上显示排版后的文本时,如果用户在使用过程中变化设备显示屏的使用方向(例如将设备显示屏由横向显示变化为竖向显示)会导致显示区的宽度发生变化,可在第一次变化设备显示屏的显示方向时,调用排版引擎利用上述方法对解析后的文本进行重新排版并将排版后的文本存储,以便在下一次显示屏显示方向发生同样变化时,直接显示排版后的文本。
本发明实施例,排版引擎逐个从文本中读取字符,并通过查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度。同一语种的所有方块字符在同一字号的字符宽度均相同,因此,对于方块字符,排版引擎根据语种和字号在方块字符表中查找方块字符的字符宽度。对于非方块字符,排版引擎根据非方块字符的字体在非方块字符宽度表中,查找非方块字符的字符宽度。由于本发明实施例排版引擎查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度,因此排版引擎在用户层完成了字符宽度的计算,不需要调用系统提供的文本宽度计算函数,节省了系统开销,提高了排版性能。
通常情况下,字形包括常规字形、加粗字形、倾斜字形和加粗倾斜字形。其中,加粗字形、倾斜字形和加粗倾斜字形,称为变形字体。一个方块字符在字体和字号相同的情况下,字形不相同时字符宽度不相同。即方块字符的各种字形的字符宽度互不相同。一个非方块字符在字体和字号相同的情况下,字形不相同时字符宽度也不相同。
图2A为本发明提供的文本排版方法中一种获取方块字符的字符宽度方法流程图。针对方块字符本发明实施例建立了方块字符宽度表,考虑到变形字体时,方块字符宽度表中包括方块字符、所属语种、字形,与字号为基准字号的非方块字符的字符宽度的对应关系。如表1所示,例如,中文字符在基准字号下的正常字形的字符宽度对应一表项,其它三种变形体也各对应一表项。日文字符在在基准字号下的正常字形的字符宽度对应一表项,其它三种变形体各对应一表项。
表1为一种方块字符宽度表
  语种   字形   字符宽度
  中文   常规   A1
  中文   加粗   A2
  中文   倾斜   A3
  中文   加粗倾斜   A4
  日文   常规   B1
  日文   加粗   B2
  日文   倾斜   B3
  日文   加粗倾斜   B4
  韩文   常规   C1
  韩文   加粗   C2
  韩文   倾斜   C3
  韩文   加粗倾斜   C4
另外,还可针对方块字符的每个字号,为方块字符建立方块字符宽度表,其中包括方块字符、所属语种、字形,字号,与字符宽度的对应关系。
本实施例主要说明考虑到变形字体时,以表1所示的表结构为基础,获取方块字符的字符宽度的方法。如图2A所示,本实施例包括:
步骤21A:根据方块字符所属的语种和字形,在方块字符宽度表中查找文本中方块字符的字号为基准字号时的字符宽度。
根据字符编码方式和字符码值可确定一个是字符是方块字符还是非方块字符。例如,采用Unicode编码值,Unicode码表中ox4E00~ox9FFFF,为中文方块字符、日文方块字符和韩文方块字符的编码区域。ox4E00~ox9FA0为中文方块字符的编码区域,ox0020~ox007F为基本拉丁字符的编码区域。根据字符码值确定当前待计算字符宽度的字符为方块字符和该方块字符所属的语种时,根据该方块字符所属的语种和字形,在方块字符宽度表中查找字号为基准字号的该方块字符所对应的字符宽度。
步骤22A:判断方块字符的字号与方块字符宽度表的基准字号是否相同。如果相同,执行步骤23A,否则执行步骤24A。
步骤23A:在方块字符的字号与方块字符宽度表的基准字号相同时,将查找到的字符宽度确定为文本中方块字符的字符宽度。
步骤24A:在方块字符的字号与基准字号不相同时,根据基准字号和文本中方块字符的字号,将查找到的字符宽度进行等比例缩放,得到文本中方块字符对应的字符宽度。
本实施例针对方块字符,建立了包括“方块字符、所属语种、字形,与字号为基准字号的非方块字符的字符宽度的对应关系”的方块字符宽度表,减少了方块字符宽度表占用的空间,提高了查找方块字符宽度的效率。
图2B为本发明提供的文本排版方法中一种获取非方块字符的字符宽度方法流程图。
本发明实施例针对字符宽度互不相同的非方块字符创建了非方块字符宽度表。对于非方块字符宽度表有多种构建方法。一种建表方法是,可为所有字体建立一个非方块字符宽度表。在该非方块字符宽度表中,保存所有非方块字符为所有字体时的字符宽度。针对一种字体的非方块字符,在该表中可只保存非方块字符的字号为基准字号时的字符宽度,对于同一字体下的同一非方块字符,其它字号的字符宽度可以通过等比例缩放基准字号的字符宽度得到。例如,一个非方块字符在10号字的宽度为w,则在相同字体15号字的字符宽度为1.5w,20号字的字符宽度为2w。另外,在该表中一个非方块字符对应多个表项,例如支持10种字体,一个字符在字符宽度表中对应10个表项。
基于上述建表方法,在计算文本中非方块字符的字符宽度时,根据文本中非方块字符的字体在非方块字符宽度表中查找该非方块字符在基淮字号情况下的字符宽度。文本中该非方块字符的字号是基准字号时,直接将查找到的字符宽度确定为文本中该非方块字符的字符宽度。文本中该非方块字符的字号不是基准字号时,根据基准字号和文本中该非方块字符的字号,对查找到的字符宽度进行等比例缩放,获得文本中该非方块字符的字符宽度。在设计排版引擎代码时,可将查找非方块字符宽度表的代码直接填入排版引擎的代码中,从而排版引擎在用户层即可完成文本宽度的计算。
另一种建表方法是,可针对一种字体提供一个非方块字符宽度表。如果安装电子书阅读软件的设备支持多种字体,则针对一种字体提供一个非方块字符宽度表,根据支持的字体数提供相应个数的非方块字符宽度表,例如支持10种字体,则提供10个字符宽度查找表。另外,也可为所有字体建立一个非方块字符宽度表,在该表中一个非方块字符对应多个表项,例如支持10种字体,一个字符在字符宽度表中对应10个表项。无论哪种建表方式,在非方块字符宽度表中只保存非方块字符的字号为基准字号时的字符宽度时,对于一个非方块字符的每个表项都包括以下对应关系:非方块字符、该非方块字符的字体、与字号为基准字号的该非方块字符对应字符宽度的对应关系。
本实施例主要说明安装电子书阅读软件的设备支持各种变形字体时,非方块字符的字符宽度获取方法。如图2B所示,本实施例包括:
步骤21B:根据文本中非方块字符的字体和字形,在非方块字符宽度表中查找非方块字符在基准字号下的字符宽度。
对于一种字体提供一个非方块字符宽度表的建表方法,考虑到变形字体时,可针对同一字体建立个数与字形个数相同的非方块字符宽度表。例如,对于Time New Roman字体,可分别建立常规字形的非方块字符宽度表、加粗字形的非方块字符宽度表和倾斜字形的非方块字符宽度表以及加粗倾斜字形的非方块字符宽度表。例如,安装阅读软件的设备支持10种字体,并支持上述四种字形,则建立4×10个非方块字符宽度表。针对10号(基准字号)Time New Roman字体的常规字形建立的非方块字符宽度表,如表2所示。排版引擎在计算文本中字符的字符宽度时,根据字符码值确定当前待计算字符宽度的字符为非方块字符后,根据该非方块字符的字体和字形查找对应的非方块字符宽度表,再在对应的非方块字符宽度表中,根据字符码值查找该非方块字符在基准字号下的字符宽度。
表2为Time New Roman字体Unicode码在ox0000~ox007F区域的非方块字符宽度表
Figure BDA0000055640370000121
另外,对于所有字体建立一个非方块字符宽度表的建表方法,考虑到变形字体时,可在非方块字符宽度表中增加“字形”属性,“字形”属性可包括常规字形、加粗字形、倾斜字形和加粗倾斜字形。例如支持10种字体,并支持上述四种字形,则一个非方块字符在非方块字符宽度表中对应4×10个表项。如表3所示,在一个非方块字符宽度表中保存字号为基准字号时非方块字符在所有字体和字形下的字符宽度时,该非方块字符宽度表的属性包括:字符Unicode码值、字体、字形和字符宽度。排版引擎在计算文本中字符的字符宽度时,根据字符码值确定当前待计算字符宽度的字符为非方块字符后,根据该非方块字符的字符码值、字体和字形在如表3所示的非方块字符宽度表中,查找该非方块字符在基准字号下的字符宽度。
表3为另一种包括所有非方块字符的非方块字符宽度表
  Unicode码值   字体   字形   字符宽度
  XX   Time New Roman   常规字形   A1
  XX   Time New Roman   加粗字形   A2
  XX   Time New Roman   倾斜字形   A3
  XX   Time New Roman   加粗倾斜字形   A4
  YY   PMingLiu   常规字形   B1
  YY   PMingLiu   加粗字形   B2
  YY   PMingLiu   倾斜字形   B3
  YY   PMingLiu   加粗倾斜字形   B4
   ...   ...   ...
步骤22B:判断非方块字符的字号与非方块字符宽度表的基准字号是否相同。如果相同,执行步骤23B,否则执行步骤24B。
步骤23B:在文本中非方块字符的字号与非方块字符宽度表的基准字号相同时,排版引擎将查找到的字符宽度确定为文本中非方块字符的字符宽度。
步骤24B:在文本中非方块字符的字号与非方块字符宽度表的基准字号不相同时,排版引擎根据基准字号和文本中非方块字符的字号,将查找到的字符宽度进行等比例缩放,得到文本中非方块字符对应的字符宽度。
本实施例针对非方块字符,建立了包括“非方块字符、该非方块字符的字形和该非方块字符的字体,与该非方块字符的字号为基准字号时的字符宽度的对应关系”的方块字符宽度表,减少了非方块字符宽度表占用的空间,提高了查找非方块字符宽度的效率。
图3为本发明提供的文本排版方法实施例三流程图。在排版引擎获取解析后的电子书文件中文本之前,如图3所示还包括以下建立非方块字符宽度表的步骤:
步骤31:从操作系统提供的字体库中,获取不同字体、不同字形且字号为基准字号的非方块字符。
对于一个非方块字符,从操作系统提供的字体库中分别获取字号为基准字号时,每种字体下所有字形的该非方块字符。
步骤32:调用操作系统提供的文本宽度计算函数计算非方块字符在基准字号下所对应的字符宽度。
通过操作系统提供的文本宽度计算函数计算字号为基准字号的该非方块字符所对应的字符宽度。例如Windows平台提供了用于文本宽度计算的API函数:GetTextExtentPoint,Android平台提供了函数Paint.measureText。
步骤33:将非方块字符、非方块字符的字体和非方块字符的基准字号所对应的字符宽度的对应关系存入非方块字符宽度表中。
将该非方块字符、该非方块字符的字体和该非方块字符的基准字号所对应字符宽度的对应关系存入非方块字符宽度表中。
需要说明的是:非方块字符宽度表可在电子书阅读软件启动之前预先建立,也可在电子书阅读软件运行过程中建立,例如可以在电子书阅读软件初始化或电子书阅读软件的排版引擎设定某种字体时建立,在电子书阅读软件初始化或电子书阅读软件的排版引擎设定某种字体时建立非方块字符宽度表,虽然建表的过程需要一点时间,但方式可以动态修改查询表中的内容,灵活性大,并且占用的程序空间也小。
图4为本发明提供的文本排版方法实施例四流程图。本实施例说明在仅支持中文字符和英文字符的情况下,基于本发明实施例创建的字符宽度表的文本排版方法。英文字符的Unicode编码范围在ox0020~ox007F区域,在仅支持中文字符和英文字符的情况下。为提高查找非方块字符宽度表的效率,可对一种字体建立一个非方块字符宽度表。此时,一个非方块字符宽度表可是一个数组,数组下标对应非方块字符的Unicode码值,而数组元素的值就是该非方块字符的字符宽度。
表4为另一种在Time New Roman字体下Unicode码在ox0000~ox007F区域的非方块字符宽度表
Figure BDA0000055640370000141
Figure BDA0000055640370000151
如图4所示,本实施例包括:
步骤40:排版引擎获取解析后的电子书文件中文本。
步骤41:排版引擎从文本中逐个读取字符。
步骤42:排版引擎判断该字符的字符内容是否为NULL。如果该字符的字符内容为NULL,表明当前已到达文本末尾,执行步骤418。如果不为NULL,执行步骤43。
步骤43:排版引擎根据Unicode码值判断该字符是否为方块字符。如果是,执行步骤44,否则执行步骤48。
步骤44:若该字符为方块字符,根据该字符所属的语种和字形,在方块字符宽度表中查找字号为基准字号的该字符所对应的字符宽度。
步骤45:判断该字符的字号与方块字符宽度表的基准字号是否相同。如果相同,执行步骤46,否则执行步骤47。
步骤46:在该字符的字号与方块字符宽度表的基准字号相同时,将查找到的字符宽度确定为该字符的字符宽度。之后,执行步骤412。
步骤47:在该字符的字号与基准字号不相同时,根据基准字号和该字符的字号,将查找到的字符宽度进行等比例缩放,得到文本中该字符的字号对应的字符宽度。之后,执行步骤412。
步骤48:若该字符为非方块字符,排版引擎根据该字符的字体和字形,在非方块字符宽度表中查找该字符在基准字号下的字符宽度。
步骤48中,根据该字符的字体和字形,确定与当前字体和当前字形对应的非方块字符宽度表后,根据非方块字符的Unicode码值,从该非方块字符宽度表中提取序号为该字符Unicode码值的表项所存储的字符宽度。
步骤49:判断该字符的字号与非方块字符宽度表的基准字号是否相同。如果相同,执行步骤410,否则执行步骤411。
步骤410:在该字符的字号与非方块字符宽度表的基准字号相同时,排版引擎将查找到的字符宽度确定为该字符的字符宽度。之后,执行步骤412。
步骤411:在该字符的字号与非方块字符宽度表的基准字号不相同时,排版引擎根据基准字号和该字符的字号,将查找到的字符宽度进行等比例缩放,得到该字符对应的字符宽度。之后,执行步骤412。
步骤412:排版引擎将该字符的字符宽度累加至宽度统计值W中,将字符个数统计值C加一。其中,宽度统计值W和字符个数统计值C的初始值均为零。
步骤413:排版引擎判断宽度统计值W是否小于文本显示区的宽度。如果是,返回步骤41执行,否则执行步骤414。
步骤414:排版引擎判断宽度统计值是否等于文本显示区的宽度。如果是,执行步骤415,否则执行步骤416。
步骤415:若宽度统计值W等于文本显示区的宽度,排版引擎在该字符之后将文本断行,确定在第N行显示C个字符。之后,执行步骤417。
N初始值为1,排版引擎每断一行,将N加一。
步骤416:若宽度统计值大于文本显示区的宽度,排版引擎将字符个数统计值C减一后,在该字符之前将文本断行,确定在第N行显示C-1个字符。
步骤417:排版引擎将宽度统计值和字符个数统计值分别清零。将N加一后,返回步骤41执行。
步骤418:排版引擎调用操作系统提供的文本输出函数在文本显示区输出断行后的文本。
本发明实施例,针对一种字体和字形建立一个非方块字符宽度表,在该非方块字符宽度表中采用非方块字符的Unicode码值,作为该非方块字符在非方块字符宽度表中的序号。在排版引擎计算文本中非方块字符的字符宽度时,根据字体和字形确定相应的非方块字符宽度表后,根据非方块字符的Unicode码值,从该非方块字符宽度表中提取序号为该字符Unicode码值的表项所存储的字符宽度,从而获取该非方块字符的基准字号所对应字宽度。本发明实施例缩短了查找非方块字符的基准字号所对应字宽度的时间,降低了计算非方块字符的字符度宽的开销。
图5为本发明提供的文本排版引擎实施例一结构示意图。如图5所示,本实施例包括:读取模块51、宽度确定模块52、断行模块53和输出调用模块54。
读取模块51,用于获取解析后的文本后,排版引擎从所述文本中逐个读取字符。
宽度确定模块52,用于读取模块51读到文本中字符后,在该字符为方块字符时,根据该字符所属的语种和字号在方块字符宽度表中查找该字符的字符宽度;在该字符为非方块字符时,根据该字符的字体,在非方块字符宽度表中查找该字符的字符宽度。
断行模块53,用于宽度确定模块52确定字符的宽度后,所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行。
输出调用模块54,用于断行模块53对所述文本进行断行后,调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。
其中,如图6所示,宽度确定模块52包括:类型判断单元521、方块字符宽度查找单元522和非方块字符宽度查找单元523。
类型判断单元521,用于判断读取模块51读取的字符是否方块字符。
方块字符宽度查找单元522,用于类型判断单元521确定字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度。
非方块字符宽度查找单元523,用于类型判断单元521确定字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度。
本发明实施例,排版引擎逐个从文本中读取字符,并通过查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度。同一语种的所有方块字符在同一字号的字符宽度均相同,因此,对于方块字符,排版引擎根据语种和字号在方块字符表中查找方块字符的字符宽度。对于非方块字符,排版引擎根据非方块字符的字体在非方块字符宽度表中,查找非方块字符的字符宽度。由于本发明实施例排版引擎查找方块字符宽度表或非方块字符宽度表获取当前读取字符的字符宽度,因此排版引擎在用户层完成了字符宽度的计算,不需要调用系统提供的文本宽度计算函数,节省了系统开销,提高了排版性能。
图7为图6中方块字符宽度查找单元的结构示意图。如图7所示,方块字符宽度查找单元522包括:第一查找子单元5221、第一确定子单元5222和第二确定子单元5223。
第一查找子单元5221,用于根据所述字符所属的语种和字形,在方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述方块字符宽度表中包括方块字符、所述方块字符所属语种和所述方块字符字形,与所述方块字符的字号为基准字号时的字符宽度的对应关系。
第一确定子单元5222,用于第一查找子单元5221在方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度后,所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度。
第二确定子单元5223,用于第一查找子单元5221在方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度后,所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述文本中方块字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
本实施例针对方块字符,建立了包括“方块字符、所属语种、字形,与字号为基准字号的非方块字符的字符宽度的对应关系”的方块字符宽度表,减少了方块字符宽度表占用的空间,提高了查找方块字符宽度的效率。
图8为图6中方块字符宽度查找单元的结构示意图。如图8所示,非方块字符宽度查找单元523包括:第二查找子单元5231、第三确定子单元5232和第四确定子单元5233。
第二查找子单元5231,用于根据所述字符的字体,在非方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系。
进一步,第二查找子单元还用于根据所述字符的字体和字形,在所述非方块字符宽度表中查找所述字符的基准字号所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符、所述非方块字符的字形和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系;所述字形包括常规字形、粗体和变形体。
第三确定子单元5232,用于第二查找子单元5231在非方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度后,所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度。
第四确定子单元5233,用于第二查找子单元5231在非方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度后,所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
本实施例针对非方块字符,建立了包括“非方块字符、该非方块字符的字形和该非方块字符的字体,与该非方块字符的字号为基准字号时的字符宽度的对应关系”的方块字符宽度表,减少了非方块字符宽度表占用的空间,提高了查找非方块字符宽度的效率。
图9为图5或图6中断行模块的结构示意图。如图9所示,断行模块53包括:累加单元531、判断单元532和断行单元533。
累加单元531,用于宽度确定模块52确定字符的宽度后,将所述字符的字符宽度累加至宽度统计值;所述宽度统计值的初始值为零。
判断单元532,用于累加单元531累加宽度统计值后,所述宽度统计值小于文本所述显示区的宽度时,确定继续从文本中读取下一个字符,确定所述下一个字符的字符宽度并累计至所述宽度统计值中,直至所述宽度统计值大于或等于所述文本显示区的宽度。
断行单元533,用于累加单元531累加宽度统计值后,所述宽度统计值等于所述文本显示区的宽度时,在所述字符之后将文本断行;所述宽度统计值大于所述文本显示区的宽度时,在所述字符之前将文本断行;将所述宽度统计值清零,继续从剩余文本中逐个读取一字符,将所述字符的字符宽度累加至宽度统计值,并根据所述宽度统计值和所述文本显示区的宽度对剩余文本进行断行,直至读取到的字符为空。
本发明实施例缩短了查找非方块字符的基准字号所对应字宽度的时间,降低了计算非方块字符的字符度宽的开销。
图10为本发明提供的文本排版引擎实施例二结构示意图。如图10所示,在图5基础上还包括:字符获取模块55、调用模块56和非方块字符宽度表建立模块57。
字符获取模块55,用于从操作系统提供的字体库中获取不同字体且字号为基准字号的非方块字符。
调用模块56,用于调用系统提供的文本宽度计算函数计算所述非方块字符的基准字号所对应的字符宽度。
非方块字符宽度表建立模块57,用于将所述非方块字符、所述非方块字符的字体与字号为所述基准字号的非方块字符对应字符宽度的对应关系存入所述非方块字符宽度表中。
需要说明的是:非方块字符宽度表可在电子书阅读软件启动之前预先建立,也可在电子书阅读软件运行过程中建立,例如可以在电子书阅读软件初始化或电子书阅读软件的排版引擎设定某种字体时建立,在电子书阅读软件初始化或电子书阅读软件的排版引擎设定某种字体时建立非方块字符宽度表,虽然建表的过程需要一点时间,但方式可以动态修改查询表中的内容,灵活性大,并且占用的程序空间也小。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种文本排版方法,其特征在于,包括:
获取解析后的文本后,排版引擎从所述文本中逐个读取字符;
在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;
所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;
调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。
2.根据权利要求1所述文本排版方法,其特征在于,所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行,包括:
排版引擎将所述字符的字符宽度逐个累加至宽度统计值;所述宽度统计值的初始值为零;
所述宽度统计值小于文本所述显示区的宽度时,继续从文本中读取下一个字符,确定所述下一个字符的字符宽度并累计至所述宽度统计值中,直至所述宽度统计值大于或等于所述文本显示区的宽度;
所述宽度统计值等于所述文本显示区的宽度时,在所述字符之后将文本断行;所述宽度统计值大于所述文本显示区的宽度时,在所述字符之前将文本断行;
在文本断行后,将所述宽度统计值清零,继续从剩余文本中逐个读取字符,将所述字符的字符宽度逐个累加至宽度统计值,并根据所述宽度统计值和所述文本显示区的宽度对剩余文本进行断行,直至读取到的字符为空。
3.根据权利要求1或2所述文本排版方法,其特征在于,在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度,包括:
根据所述字符所属的语种和字形,在方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述方块字符宽度表中包括方块字符、所述方块字符所属语种和所述方块字符字形,与所述方块字符的字号为基准字号时的字符宽度的对应关系;
在所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度;
在所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述文本中方块字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
4.根据权利要求1或2所述文本排版方法,其特征在于,在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度,包括:
根据所述字符的字体,在非方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系;
在所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度;
在所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
5.根据权利要求1或2所述文本排版方法,其特征在于,在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度,包括:
根据所述字符的字体和字形,在所述非方块字符宽度表中查找所述字符的基准字号所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符、所述非方块字符的字形和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系;所述字形包括常规字形、粗体和变形体;
在所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度;
在所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
6.根据权利要求4所述文本排版方法,其特征在于,在所述获取解析后的文本之前,还包括:
从操作系统提供的字体库中获取不同字体且字号为基准字号的非方块字符;
调用系统提供的文本宽度计算函数计算所述非方块字符的基准字号所对应的字符宽度;
将所述非方块字符、所述非方块字符的字体与字号为所述基准字号的非方块字符对应字符宽度的对应关系存入所述非方块字符宽度表中。
7.一种排版引擎,其特征在于,包括:
读取模块,用于获取解析后的文本后,排版引擎从所述文本中逐个读取字符;
宽度确定模块,用于在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度;
断行模块,用于所述排版引擎根据文本显示区的宽度、所述文本中非方块字符的字符宽度和所述文本中方块字符的字符宽度,对所述文本进行断行;
输出调用模块,用于调用操作系统提供的文本输出函数在所述文本显示区输出断行后的所述文本。
8.根据权利要求7所述排版引擎,其特征在于,所述断行模块包括:
累加单元,用于将所述字符的字符宽度累加至宽度统计值;所述宽度统计值的初始值为零;
判断单元,用于所述宽度统计值小于文本所述显示区的宽度时,继续从文本中读取下一个字符,确定所述下一个字符的字符宽度并累计至所述宽度统计值中,直至所述宽度统计值大于或等于所述文本显示区的宽度;
断行单元,用于所述宽度统计值等于所述文本显示区的宽度时,在所述字符之后将文本断行;所述宽度统计值大于所述文本显示区的宽度时,在所述字符之前将文本断行;将所述宽度统计值清零,继续从剩余文本中逐个读取一字符,将所述字符的字符宽度累加至宽度统计值,并根据所述宽度统计值和所述文本显示区的宽度对剩余文本进行断行,直至读取到的字符为空。
9.根据权利要求7或8所述排版引擎,其特征在于,所述宽度确定模块包括:
类型判断单元,用于判断所述字符是否方块字符;
方块字符宽度查找单元,用于在所述字符为方块字符时,根据所述字符所属的语种和字号在方块字符宽度表中查找所述字符的字符宽度;
非方块字符宽度查找单元,用于在所述字符为非方块字符时,根据所述字符的字体,在非方块字符宽度表中查找所述字符的字符宽度。
10.根据权利要求9所述排版引擎,其特征在于,所述方块字符宽度查找单元包括:
第一查找子单元,用于根据所述字符所属的语种和字形,在方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述方块字符宽度表中包括方块字符、所述方块字符所属语种和所述方块字符字形,与所述方块字符的字号为基准字号时的字符宽度的对应关系;
第一确定子单元,用于在所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度;
第二确定子单元,用于在所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述文本中方块字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
11.根据权利要求9所述排版引擎,其特征在于,所述非方块字符宽度查找单元包括:
第二查找子单元,用于根据所述字符的字体,在非方块字符宽度表中查找字号为基准字号的所述字符所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系;
第三确定子单元,用于在所述字符的字号与所述基准字号相同时,将查找到的字符宽度确定为所述字符的字符宽度;
第四确定子单元,用于在所述字符的字号与所述基准字号不相同时,根据所述基准字号和所述字符的字号,将查找到的字符宽度进行等比例缩放,得到所述字符对应的字符宽度。
12.根据权利要求11所述排版引擎,其特征在于,所述第二查找子单元还用于根据所述字符的字体和字形,在所述非方块字符宽度表中查找所述字符的基准字号所对应的字符宽度;所述非方块字符宽度表中包括所述非方块字符、所述非方块字符的字形和所述非方块字符的字体,与所述非方块字符的字号为基准字号时的字符宽度的对应关系;所述字形包括常规字形、粗体和变形体。
13.根据权利要求12所述排版引擎,其特征在于,还包括:
字符获取模块,用于从操作系统提供的字体库中获取不同字体且字号为基准字号的非方块字符;
调用模块,用于调用系统提供的文本宽度计算函数计算所述非方块字符的基准字号所对应的字符宽度;
非方块字符宽度表建立模块,用于将所述非方块字符、所述非方块字符的字体与字号为所述基准字号的非方块字符对应字符宽度的对应关系存入所述非方块字符宽度表中。
CN 201110096146 2011-04-15 2011-04-15 文本排版方法及排版引擎 Active CN102147790B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110096146 CN102147790B (zh) 2011-04-15 2011-04-15 文本排版方法及排版引擎

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110096146 CN102147790B (zh) 2011-04-15 2011-04-15 文本排版方法及排版引擎

Publications (2)

Publication Number Publication Date
CN102147790A true CN102147790A (zh) 2011-08-10
CN102147790B CN102147790B (zh) 2012-12-19

Family

ID=44422056

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110096146 Active CN102147790B (zh) 2011-04-15 2011-04-15 文本排版方法及排版引擎

Country Status (1)

Country Link
CN (1) CN102147790B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663137A (zh) * 2012-05-03 2012-09-12 奇智软件(北京)有限公司 一种应用于移动终端中显示网页的方法及系统
CN103455475A (zh) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 排版方法、设备及系统
CN103699632A (zh) * 2013-12-23 2014-04-02 深圳市开立科技有限公司 一种ui文本检测方法及装置
CN108710601A (zh) * 2018-05-14 2018-10-26 广州腾讯科技有限公司 一种文本显示方法及其设备、存储介质、电子设备
US10147212B2 (en) 2014-08-29 2018-12-04 Carrier Corporation Method to create display screens for a controller used in a building automation system
CN111460782A (zh) * 2020-04-01 2020-07-28 支付宝(杭州)信息技术有限公司 一种信息处理方法、装置及设备
CN111611037A (zh) * 2020-05-09 2020-09-01 掌阅科技股份有限公司 用于电子书的视图对象处理方法、电子设备及存储介质
CN112596692A (zh) * 2020-12-16 2021-04-02 湖南新云网科技有限公司 一种字符显示方法、装置、设备及计算机可读存储介质
CN113298741A (zh) * 2020-11-13 2021-08-24 阿里巴巴集团控股有限公司 图片合成方法、装置及电子设备
CN117371446A (zh) * 2023-12-07 2024-01-09 江西曼荼罗软件有限公司 一种病历文本排版方法、系统、存储介质及电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689723A (en) * 1993-02-03 1997-11-18 International Business Machines Corp Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
CN1416077A (zh) * 2002-12-05 2003-05-07 北京北大方正电子有限公司 一种手持设备文字排版对齐的方法
US7296227B2 (en) * 2001-02-12 2007-11-13 Adobe Systems Incorporated Determining line leading in accordance with traditional Japanese practices
CN101937429A (zh) * 2010-09-08 2011-01-05 优视科技有限公司 移动终端的页面排版方法及系统
CN101986289A (zh) * 2010-11-03 2011-03-16 中兴通讯股份有限公司 一种提高浏览器页面渲染速度的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689723A (en) * 1993-02-03 1997-11-18 International Business Machines Corp Method for allowing single-byte character set and double-byte character set fonts in a double-byte character set code page
US7296227B2 (en) * 2001-02-12 2007-11-13 Adobe Systems Incorporated Determining line leading in accordance with traditional Japanese practices
CN1416077A (zh) * 2002-12-05 2003-05-07 北京北大方正电子有限公司 一种手持设备文字排版对齐的方法
CN101937429A (zh) * 2010-09-08 2011-01-05 优视科技有限公司 移动终端的页面排版方法及系统
CN101986289A (zh) * 2010-11-03 2011-03-16 中兴通讯股份有限公司 一种提高浏览器页面渲染速度的方法和装置

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663137A (zh) * 2012-05-03 2012-09-12 奇智软件(北京)有限公司 一种应用于移动终端中显示网页的方法及系统
CN102663137B (zh) * 2012-05-03 2016-06-29 北京奇虎科技有限公司 一种应用于移动终端中显示网页的方法及系统
CN103455475A (zh) * 2012-06-01 2013-12-18 腾讯科技(深圳)有限公司 排版方法、设备及系统
CN103455475B (zh) * 2012-06-01 2016-12-14 腾讯科技(深圳)有限公司 排版方法、设备及系统
CN103699632A (zh) * 2013-12-23 2014-04-02 深圳市开立科技有限公司 一种ui文本检测方法及装置
CN103699632B (zh) * 2013-12-23 2017-09-08 深圳开立生物医疗科技股份有限公司 一种ui文本检测方法及装置
US10147212B2 (en) 2014-08-29 2018-12-04 Carrier Corporation Method to create display screens for a controller used in a building automation system
CN108710601A (zh) * 2018-05-14 2018-10-26 广州腾讯科技有限公司 一种文本显示方法及其设备、存储介质、电子设备
CN111460782A (zh) * 2020-04-01 2020-07-28 支付宝(杭州)信息技术有限公司 一种信息处理方法、装置及设备
CN111460782B (zh) * 2020-04-01 2023-08-22 支付宝(杭州)信息技术有限公司 一种信息处理方法、装置及设备
CN111611037A (zh) * 2020-05-09 2020-09-01 掌阅科技股份有限公司 用于电子书的视图对象处理方法、电子设备及存储介质
CN111611037B (zh) * 2020-05-09 2023-04-07 掌阅科技股份有限公司 用于电子书的视图对象处理方法、电子设备及存储介质
CN113298741A (zh) * 2020-11-13 2021-08-24 阿里巴巴集团控股有限公司 图片合成方法、装置及电子设备
CN113298741B (zh) * 2020-11-13 2024-01-12 阿里巴巴集团控股有限公司 图片合成方法、装置及电子设备
CN112596692A (zh) * 2020-12-16 2021-04-02 湖南新云网科技有限公司 一种字符显示方法、装置、设备及计算机可读存储介质
CN117371446A (zh) * 2023-12-07 2024-01-09 江西曼荼罗软件有限公司 一种病历文本排版方法、系统、存储介质及电子设备
CN117371446B (zh) * 2023-12-07 2024-04-16 江西曼荼罗软件有限公司 一种病历文本排版方法、系统、存储介质及电子设备

Also Published As

Publication number Publication date
CN102147790B (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN102147790B (zh) 文本排版方法及排版引擎
US8209600B1 (en) Method and apparatus for generating layout-preserved text
US7492366B2 (en) Method and system of character placement in opentype fonts
US20050172227A1 (en) Ensuring proper rendering order of bidirectionally rendered text
CN101984419B (zh) 用于对网页图片内容进行段落重排的方法及装置
JP6122800B2 (ja) 電子機器、文字列表示方法、および文字列表示プログラム
CN102081594B (zh) 从可移植电子文档中提取字符外接矩形的设备和方法
US20160048482A1 (en) Method for automatically partitioning an article into various chapters and sections
CN105224540A (zh) 页面排版方法及装置
KR20150099936A (ko) 전자문서의 레이아웃 유지를 위한 대체폰트 적용 방법 및 그 장치
CN103455475A (zh) 排版方法、设备及系统
WO2023016117A1 (zh) 一种内容排版方法、装置、计算机设备及存储介质
CN102193645A (zh) 文字输入方法和文字输入系统
CN101183372B (zh) 一种样式表处理系统及方法
CN103970913A (zh) Utf-8与ansi编码识别方法以及装置
CN117371446B (zh) 一种病历文本排版方法、系统、存储介质及电子设备
CN101655835B (zh) 电子文档中文字信息处理、输出和字符检索的方法及装置
US10192148B1 (en) Machine learning of written Latin-alphabet based languages via super-character
CN103489268B (zh) 一种用于pos平台的阿拉伯语显示方法
US20130227444A1 (en) Method and Device for Improving Page Rendering Speed of Browser
Shirali-Shahreza et al. An improved version of Persian/Arabic text steganography using" La" Word
CN104536947A (zh) 版式文档的处理方法及装置
US9342488B2 (en) Terminal, apparatus and method for optimizing the description of text contents in a fixed layout document
JP5715172B2 (ja) 文書表示装置、文書表示方法及び文書表示プログラム
US11132497B2 (en) Device and method for inputting characters

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Rong Yaxin

Inventor after: Sun Shi

Inventor after: Li Xiaohui

Inventor after: Yao Junli

Inventor after: Wang Chao

Inventor after: Wang Zhi

Inventor after: Zhou Aifang

Inventor after: Zhang Xiaobin

Inventor before: Rong Yaxin

Inventor before: Sun Shi

Inventor before: Li Xiaohui

Inventor before: Yao Junli

Inventor before: Wang Chao

Inventor before: Wang Zhi

Inventor before: Zhou Aifang

Inventor before: Zhang Xiaobing

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: RONG YAXIN SUN SHI LI XIAOHUI YAO JUNLI WANG CHAO WANG ZHI ZHOU AIFANG ZHANG XIAOBING TO: RONG YAXIN SUN SHI LI XIAOHUI YAO JUNLI WANG CHAO WANG ZHI ZHOU AIFANG ZHANG XIAOBIN

C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20171212

Address after: Metro Songshan Lake high tech Industrial Development Zone, Guangdong Province, Dongguan City Road 523808 No. 2 South Factory (1) project B2 -5 production workshop

Patentee after: HUAWEI terminal (Dongguan) Co., Ltd.

Address before: Kokusai Hotel No. 11 Nanjing Avenue in the flora of 210012 cities in Jiangsu Province

Patentee before: Huawei Technologies Co.,Ltd.

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee after: Huawei Device Co., Ltd.

Address before: 523808 Southern Factory Building (Phase I) Project B2 Production Plant-5, New Town Avenue, Songshan Lake High-tech Industrial Development Zone, Dongguan City, Guangdong Province

Patentee before: HUAWEI terminal (Dongguan) Co., Ltd.