CN102194004A - 一种Android浏览器处理复杂文本的方法 - Google Patents
一种Android浏览器处理复杂文本的方法 Download PDFInfo
- Publication number
- CN102194004A CN102194004A CN2011101394399A CN201110139439A CN102194004A CN 102194004 A CN102194004 A CN 102194004A CN 2011101394399 A CN2011101394399 A CN 2011101394399A CN 201110139439 A CN201110139439 A CN 201110139439A CN 102194004 A CN102194004 A CN 102194004A
- Authority
- CN
- China
- Prior art keywords
- complex text
- text
- character
- fragment
- processing module
- 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.)
- Pending
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Abstract
一种Android浏览器处理复杂文本的方法,包括:分片处理模块依据Unicode标准化组织定义的双向算法将字符串分成多个条目,要求每个条目中的字符具有同样的语言和方向属性,再将每个条目标记成片段;整形处理模块根据输入片段的分析,调用不同的文字处理器;方向处理模块负责将整形后的字型序列按文字的双向属性、字距进行调整及排序将处理后的复杂文本序列交由Skia图形引擎的文本函数接口执行输出,从而完成复杂文本的正确渲染。本发明经过复杂文本的整形处理及字符重排序,使得浏览器能够正确渲染包含混合方向的网页内容,满足了用户从左到右或从右到左的阅读习惯。
Description
【技术领域】
本发明属于计算机软件领域,是Android平台上Web浏览器的一个扩展,以支持诸如阿拉伯文、希伯来等复杂文本的整形和显示处理,从而实现Web浏览器的多国语言支持功能。
【背景技术】
目前世界上的语言主要有LTR-TTB(从左向右,从上向下)、RTL-TTB(从右到左,从上向下)和TTB-RTL(从上向下,从右向左)三种书写体系。LTR-TTB方式的文本逻辑和可视顺序基本上是一致的,但RTL-TTB方式则不然,如图1所示。相对一般语言字符(如拉丁文,从左到右按线性方式布局)来说,这种允许双向渲染、具有上下文相关显形(即根据相邻字符而显现不同字型)、具有组合字符、具有特殊的断字和对齐规则等特征的文字被称为复杂文字,又把由复杂文字书写的文章段落称为复杂文本。
Android平台自带的Web浏览器仅仅支持LTR-TTB方式的书写体系,因此无法正确地处理属于RTL-TTB方式的书写体系文字,如阿拉伯文字(用于阿拉伯语、波斯语、普什图语和乌尔都语)和希伯来文字(用于希伯来语和意第绪语),更是无法完成双向文本(即RTL和LTR字符同时存在的情况)在浏览器中的正确布局和显示。
Android系统自带的Web浏览器并不支持复杂文本的整形与显示,即不能够进行双向性、字符重排序、上下文相关显形、文本对齐和断字断行等相关特征的语言处理,在浏览此类语言的网页时,如阿拉伯语、希伯来语、叙利亚语、泰文、越南语、印度语系,由于不正确的文本渲染,势必会影响用户阅读,给用户造成不便。
【发明内容】
本发明所要要解决的技术问题在于提供一种Android浏览器处理复杂文本的方法,对复杂文本进行处理以满足不同语言阅读习惯的需求。
本发明采用以下技术方案解决上述技术问题:
一种Android浏览器处理复杂文本的方法,包括如下步骤:
步骤一:分片处理模块依据Unicode标准化组织定义的双向算法将字符串分成多个条目,要求每个条目中的字符具有同样的语言和方向属性,再将每个条目标记成片段(run),每个片段中的字符具有同样的风格、字体、尺寸,以便整形引擎处理;
步骤二:整形处理模块根据输入片段(run)的分析,调用不同的文字处理器,如阿拉伯文处理器、希伯来文处理器、印度文处理器,这些文字处理器封装了各个语言文字特征的处理规则;
步骤三:方向处理模块负责将整形后的字型序列按文字的双向属性、字距进行调整及排序;
步骤四:将处理后的复杂文本序列交由Skia图形引擎的文本函数接口执行输出,从而完成复杂文本的正确渲染。
本发明的优点在于:经过复杂文本的整形处理及字符重排序,使得浏览器能够正确渲染包含混合方向的网页内容,满足了用户从左到右或从右到左的阅读习惯。
【附图说明】
下面参照附图结合实施例对本发明作进一步的描述。
图1是英语和阿拉伯文混合的双向文本示意图。
图2是Android系统中Web浏览器的基本工作流程图。
图3是本发明复杂文本处理流程图。
【具体实施方式】
Android系统中Web浏览器的基本工作流程如图2所示,为使浏览器支持复杂文本的布局和渲染,必须修改浏览器的布局/渲染处理模块。
对于复杂文本语言,输入的Unicode字符串必须经过布局整形引擎处理,才能得到正确的显现字型序列及字型之间正确的位置数据。图3为本发明复杂文本处理流程图。按照先后顺序可分为3大处理模块:分片处理模块、整形处理模块、方向处理模块。具体步骤如下:
步骤一:分片处理模块依据Unicode标准化组织定义的双向算法将字符串分成多个条目,要求每个条目中的字符具有同样的语言和方向属性,再将每个条目标记成片段(run),每个片段中的字符具有同样的风格、字体、尺寸,以便整形引擎处理;
步骤二:整形处理模块根据输入片段(run)的分析,调用不同的文字处理器,如阿拉伯文处理器、希伯来文处理器、印度文处理器,这些文字处理器封装了各个语言文字特征的处理规则;
步骤三:方向处理模块负责将整形后的字型序列按文字的双向属性、字距进行调整及排序;
步骤四:将处理后的复杂文本序列交由Skia图形引擎的文本函数接口执行输出,从而完成复杂文本的正确渲染。
本发明采用了支持OpenType字体的复杂排版特性的轻量级的HarfBuzz整形布局引擎来完成复杂文本的整形处理,使用分片及方向处理模块来完成双向性的支持,即使在绘制大量双向文本的情况下,也不会影响效率,且能够精确的显示和布局网页内容。
Claims (2)
1.一种Android浏览器处理复杂文本的方法,其特征在于:包括如下步骤:
步骤一:分片处理模块依据Unicode标准化组织定义的双向算法将字符串分成多个条目,要求每个条目中的字符具有同样的语言和方向属性,再将每个条目标记成片段,每个片段中的字符具有同样的风格、字体、尺寸,以便整形引擎处理;
步骤二:整形处理模块根据输入片段的分析,调用不同的文字处理器,这些文字处理器封装了各个语言文字特征的处理规则;
步骤三:方向处理模块负责将整形后的字型序列按文字的双向属性、字距进行调整及排序;
步骤四:将处理后的复杂文本序列交由Skia图形引擎的文本函数接口执行输出,从而完成复杂文本的正确渲染。
2.如权利要求1所述的一种Android浏览器处理复杂文本的方法,其特征在于:所述文字处理器包括阿拉伯文处理器、希伯来文处理器、印度文处理器、泰文处理器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101394399A CN102194004A (zh) | 2011-05-25 | 2011-05-25 | 一种Android浏览器处理复杂文本的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101394399A CN102194004A (zh) | 2011-05-25 | 2011-05-25 | 一种Android浏览器处理复杂文本的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102194004A true CN102194004A (zh) | 2011-09-21 |
Family
ID=44602073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101394399A Pending CN102194004A (zh) | 2011-05-25 | 2011-05-25 | 一种Android浏览器处理复杂文本的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102194004A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567013A (zh) * | 2012-02-07 | 2012-07-11 | 江苏鸿信系统集成有限公司 | Android手机标准组件装置 |
CN103577169A (zh) * | 2012-07-27 | 2014-02-12 | 腾讯科技(深圳)有限公司 | Input标签的range类型绘制方法及智能终端 |
CN104537004A (zh) * | 2014-12-15 | 2015-04-22 | 小米科技有限责任公司 | 网页文字显示方法及装置 |
CN106210724A (zh) * | 2016-07-21 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 图片解码方法及装置 |
CN106997338A (zh) * | 2017-03-26 | 2017-08-01 | 北京图文天地科技发展有限公司 | 一种兼容多国文字排版系统及其方法 |
CN110110078A (zh) * | 2018-01-11 | 2019-08-09 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303064A (zh) * | 2000-01-05 | 2001-07-11 | 沈阳格微软件有限责任公司 | 智能多文种处理系统 |
-
2011
- 2011-05-25 CN CN2011101394399A patent/CN102194004A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1303064A (zh) * | 2000-01-05 | 2001-07-11 | 沈阳格微软件有限责任公司 | 智能多文种处理系统 |
Non-Patent Citations (1)
Title |
---|
《中国博士论文全文数据库(信息科技辑)》 20050815 芮建武 操作系统国际化基础的研究与实践 第4.1-4.2节 1-2 , * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567013A (zh) * | 2012-02-07 | 2012-07-11 | 江苏鸿信系统集成有限公司 | Android手机标准组件装置 |
CN103577169A (zh) * | 2012-07-27 | 2014-02-12 | 腾讯科技(深圳)有限公司 | Input标签的range类型绘制方法及智能终端 |
CN104537004A (zh) * | 2014-12-15 | 2015-04-22 | 小米科技有限责任公司 | 网页文字显示方法及装置 |
CN106210724A (zh) * | 2016-07-21 | 2016-12-07 | 腾讯科技(深圳)有限公司 | 图片解码方法及装置 |
CN106210724B (zh) * | 2016-07-21 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 图片解码方法及装置 |
CN106997338A (zh) * | 2017-03-26 | 2017-08-01 | 北京图文天地科技发展有限公司 | 一种兼容多国文字排版系统及其方法 |
CN110110078A (zh) * | 2018-01-11 | 2019-08-09 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
CN110110078B (zh) * | 2018-01-11 | 2024-04-30 | 北京搜狗科技发展有限公司 | 数据处理方法和装置、用于数据处理的装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mittelbach et al. | The LATEX companion | |
CN102194004A (zh) | 一种Android浏览器处理复杂文本的方法 | |
WO2012071630A1 (en) | Text conversion and representation system | |
CN100498927C (zh) | 二维图形引擎中的点阵字符的缩进方法与中文处理方法 | |
JP2024075704A (ja) | 特許文書作成装置、方法、コンピュータプログラム、コンピュータで読み取り可能な記録媒体、サーバー、およびシステム | |
Sinha | A journey from Indian scripts processing to Indian language processing | |
CN107562480A (zh) | 一种pos机多国语言的实现方法及其系统 | |
CN103678288A (zh) | 一种专名自动翻译的方法 | |
McGrath | HTML, CSS & JavaScript in easy steps | |
CN104331400B (zh) | 一种蒙古文编码转换方法和装置 | |
CN104794140B (zh) | 一种文本高亮显示的方法和装置 | |
Powers | Beginning Css3 | |
EP3317780A1 (en) | Transformation of marked-up content to a reversible file format for automated browser based pagination | |
Hussain et al. | Survey of language computing in Asia | |
Hossain | Text Standards for the ‘Rest of World’: The Making of the Unicode Standard and the OpenType Format | |
CN103793368B (zh) | 一种在自动化翻译处理中自动保护标记语言中标记的方法 | |
CN104516866B (zh) | 文字沿线排版的方法 | |
Hampton-Smith | Pro CSS3 Layout Techniques | |
Chandra | Indian typefaces in digital platforms: issues and challenges | |
Hall | Muak Sa-aak: Challenges of an extensive phoneme inventory for a contained Latin-based orthography | |
CN109284012A (zh) | 一种古彝文语言输入控制系统及方法、信息数据处理终端 | |
US11416671B2 (en) | Device dependent rendering of PDF content | |
Saleh et al. | Web development considerations for unicode-based text processing in Uyghur language | |
JPS62245366A (ja) | 文書処理装置 | |
Abramovich et al. | Features of typography in translated japanese comics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110921 |