CN1416077A - 一种手持设备文字排版对齐的方法 - Google Patents
一种手持设备文字排版对齐的方法 Download PDFInfo
- Publication number
- CN1416077A CN1416077A CN02153500A CN02153500A CN1416077A CN 1416077 A CN1416077 A CN 1416077A CN 02153500 A CN02153500 A CN 02153500A CN 02153500 A CN02153500 A CN 02153500A CN 1416077 A CN1416077 A CN 1416077A
- Authority
- CN
- China
- Prior art keywords
- blank
- character
- literal
- delegation
- word
- 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
Links
Landscapes
- Machine Translation (AREA)
Abstract
本发明属于文字排版处理领域,具体涉及一种手持设备文字排版对齐的方法。目前,手持设备上的文字排版行尾不能对齐,经常会有违反文字禁排规则的情形,不符合文字的排版规则及人们的阅读习惯。本发明所述的方法采用了一个基础字符单元分析器以及两个核心模块(断行模块和空白分配模块)。断行模块利用字符单元分析器,决定在文字流的什么部位可以断行,而空白分配模块则在字符单元分析器的基础上,采用优先分级的方式,高效率地在一行文字之间分配空白,保证文字行的两端与左右边界对齐、空白在文字之间合理分配。本发明有效地解决了手持设备现有技术中所存在的行尾不能对齐及违反禁排规则的问题。
Description
技术领域
本发明属于文字排版处理领域,具体涉及一种手持设备文字排版对齐的方法。
背景技术
目前,市场上出现了各种各样的手持设备如个人数字助理(PDA)、移动手机、专用电子书阅读器等,这些手持设备给人们的生活、工作和学习带来了极大的方便。但是,由于手持设备硬件性能的限制,资源有限,在手持设备上进行文字排版显示时,一般采用如下做法:(1)从文字流中读取一个字符,计算该字符的当前宽度;(2)若当前行中的空白宽度大于该字符的当前宽度,则将该字符排在当前行(紧挨前一个字符),否则,该字符放在下一行的开头;(3)有的手持设备文字排版方法可以实现最简单的标点符号禁排:即,若发现标点符号“,、。”等排在一行的最后,则将该标点符号和它前面的一个字符都放在下一行。
显然,采用以上的方法存在以下的不足:(1)行尾不能对齐,不符合人们的阅读习惯和审美观点,当文中存在数字和西文字符时,这个问题显得尤其严重;(2)不符合中文排版的规范,违反文字的许多禁排规则,比如:某些标点不能放在行尾,某些标点不能放在行首,数字和英文单词与中文之间应保持一定的空白,数字组合不可拆等。手持设备上文字排版的上述不足影响了手持设备的发展,制约了基于手持设备的电子书(eBook)产业的发展。
发明内容
针对现有技术中存在的问题,本发明的目的是解决手持设备上的文字排版对齐及禁排问题,即在较低的硬件性能环境下,通过该方法,使得文字排版和版面显示效果符合专业纸介质书籍的版面规范。
为达到以上目的,本发明采用的技术方案是:
一种手持设备文字排版对齐的方法,包括以下步骤:首先,由手持设备的读入装置读入文字流,然后再由字符分析器对文字流进行分析处理,最后通过显示模块将文字显示在手持设备的显示装置上供人们阅读;
本发明所述方法中的对文字流进行分析处理的字符分析器包括一个用于分析文字流中的字符单元的基础字符单元分析器,以及两个核心模块——断行模块和空白分配模块,断行模块利用基础字符单元分析器,决定在文字流的什么部位可以断行,从而保证文字排版能够遵守中文排版规则(如标点禁排规则、不可拆单元规则),而空白分配模块则在基础字符单元分析器的基础上,采用优先分级的方式高效率地在一行文字之间分配空白,保证文字行的两端与左右边界对齐、空白在文字之间合理分配。
本发明所述的空白分配模块在基础字符单元分析器的基础上,按以下的步骤采用优先分级的方式高效率地在一行文字之间分配空白:
1).假设一行的空白宽度为x,四分之一空白宽度为sp4;
2).计算一行文字中,中文字符单元与西文字符单元、中文字符单元与数字字符单元的相邻点数量n1;
3).若n1*sp4<x,则在每个相邻点分配空白p1=sp4,剩余空白x1=x-p1*n1;否则将空白x在各相邻点平均分配,即:p1=x/n1,剩余空白为0,分配完成,退出空白分配流程;
4).计算一行文字中标点符号“、,。?!”的数量n2;
5).若n2*sp4<x1,则在上述每个标点后分配空白p2=sp4,剩余空白x2=x1-p2*n2;否则将剩余空白x1在上述各标点后平均分配,即:p2=x1/n2,剩余空白为0,分配完成,退出空白分配流程;
6).计算一行文字中,所有的空格的数量n3;
7).若n3*sp4<x2,则在上述每个空格后分配空白p3=sp4,剩余空白x3=x2-p3*n3;否则将剩余空白x2在上述各空格后平均分配,即:p3=x2/n3,剩余空白为0,分配完成,退出空白分配流程;
8).计算一行文字中,所有的字符单元的数量n4;
9).将剩余空白x3在上述各字符单元后平均分配,即:p4=x3/n4,分配完成。
本发明可用于手持设备的中英文排版软件,也可用于桌面系统的相关软件中,适用于文字的横向排版,也适用于文字的纵向排版。
本发明的效果在于手持设备采用本发明所述的方法对文字进行排版处理后,可以极大地改善文字排版效果,可以有效地解决目前手持设备上所出现的文字行尾不能对齐及违反禁排规则的问题。而且,本发明可用于手持设备的文档编辑和阅读软件,也可用于桌面系统的同类软件中,本发明既适用于文字的横向排版,也适用于文字的纵向排版。
附图说明
图1是本发明的原理示意图;
图2是本发明的空白分配流程图。
具体实施方式
下面结合附图对本发明作进一步地描述。
如图1所示,一种手持设备文字排版对齐的方法,包括以下步骤:
首先,由手持设备的读入装置读入任意一段文字流;
如读入这样一段文字流:“【日经BP社报道】微软应该高兴了。据Aberdeen Group所发表的报告称,安全性最差的OS不是Windows,而是......。”
然后再由字符分析器对文字流进行分析处理。本发明所述方法中的对文字流进行分析处理的字符分析器包括一个用于分析文字流中的字符单元的基础字符单元分析器,以及两个核心模块——断行模块和空白分配模块,断行模块利用基础字符单元分析器,决定在文字流的什么部位可以断行,从而保证文字排版能够遵守中文排版规则(如标点禁排规则、不可拆单元规则),而空白分配模块则在基础字符单元分析器的基础上,采用优先分级的方式高效率地在一行文字之间分配空白,保证文字行的两端与左右边界对齐、空白在文字之间合理分配。
基础字符单元分析器将一段文字流分为多个字符单元,并将这些字符单元分类。一个字符单元包含一到多个字符。字符单元也被称为不可拆分单元,因为它只能在一行中显示。常见的字符单元类型有:中文字符单元(包含一个中文字符)、西文字符单元(即西文单词)、数字字符单元[即数字(包括带小数点的数字)、百分数(##.##%)、温度表示法(如##℃或##°F)、货币表示法(如$##、¥##等)]、标点字符单元(如、,。?!等)、破折号字符单元、省略号字符单元等。
断行模块利用基础字符单元分析器分析文字流,将文字流分为一个个字符单元(一个字符单元内可能有一到多个字符),只有在字符单元之间才能断行,而且某些字符单元不能放在行首或行尾。据此,断行模块将文字流分为若干小组(由一个或多个字符单元组成),每个小组的文字属于一行。
对于本例,假设排版的行宽为338单位,(汉字)字号宽度为14单位。
断行模块利用基础字符单元分析器,开始分析文字流。第一行从文字流的第一个字符开始排起,一个个字符顺序放在这一行,该行的剩余的空白也越来越少。当分析到“Group”时,发现第一行的剩余空白小于下一个字符“G”的宽度,并且在这儿断行符合拆行规则的要求,能保证不可拆分单元(英文单词)的完整,就决定在“Group”之前断行。所以,第一行的排版结果是“【日经BP社报道】微软应该高兴了。据Aberdeen”。
第二行从“Group所发表的”排起,断行模块继续分析,排到“Windows”后,行宽达到332个单位,后面的逗号的宽度为14个单位,332+14大于338,所以逗号只能排到下一行。但是,按照禁排规则,逗号不能放在行首,所以必须从上一行尾拆下一个字。英文单词只能按音节拆开或者整个单词均放在下一行。这儿,由于“Windows”是一个比较短的单词,就不按音节拆了,整个单词都放在下一行。因此第二行最后的排版结果是“Group所发表的报告称,安全性最差的OS不是”。这一行的排版字符为23个,占用的宽度为278个单位,本行剩余的空白为338-278=60个单位。
空白分配模块分析后得到的每个文字行,计算出每行文字的字符单元数,根据每行文字剩余的空白和每行文字的具体特征,决定字符单元之间的空白。这样得到的字符位置,算法快捷,效果显著。
为了减少空白分配的计算时间,如果一行的最后一个字符的边缘,与右边的对齐点相差很少的象素时,实际上不进行空白分配的运算,而保持这一行的字符位置。这时候,虽然最后一个字符没有与其他行对齐,但是因为相差的象素很少,在视觉上察觉不到,因此在视觉上的对齐的。实施过程中,对于“很少的象素”可以根据手持设备的显示屏分辩率确定,当分辨率很高时,象素值可以稍大,当分辩率很低时,只能有一个象素的误差。
如图2所示,空白分配的流程采用优先级方式:
1).首先,我们知道本例排版的行宽为338单位,(汉字)字号宽度为14单位,四分之一空为14/4=3.5单位,并且认为,当空白小于等于1个单位时,可以不再分配;
2).我们还知道,第二行最后的排版结果是“Group所发表的报告称,安全性最差的OS不是”。这一行的字符为23个,占用的宽度为278个单位,本行剩余的空白为338-278=60个单位。让我们重点分析第二行的空白分配机制;
3).这一行的空白宽度为x=60,四分之一空白宽度为sp4=3.5,忽略半个单位,那么,sp4=3;为保证计算精度,让所有数值乘以100,那么x=6000,sp4=300;
4).首先计算这一行文字中,中文字符单元与西文字符单元、中文字符单元与数字字符单元的相邻点数量n1,共有三个(“Group”与“所”相邻,“OS”分别与“的”和“不”相邻),所以n1=3;
5).由于3*300<6000,则在每个相邻点分配空白p1=300,即在“Group”和“所”之间分配空白300,在“OS”的前后各分配空白300;剩余空白x1=6000-300*3=5100;
6).计算这一行文字中标点符号“、,。?!”的数量n2,对于该行来说,只有一个逗号,所以n2=1;
7).由于1*300<5100,则在逗号后分配空白p2=300,剩余空白x2=5100-300*1=4800;
8).计算这一行文字中,所有的空格的数量n3,本行没有空格,所以n3=0;
9).不需分配空白,剩余空白x3=x2=4800;
10).计算这一行文字中,所有的字符单元的数量n4,本行有两个英文单词,算两个字符单元,另有16个汉字或标点,所以本行的字符单元数量n4=18;
11).将剩余空白x3在上述各字符单元后平均分配,即:p4=4800/(18-1)=282,分配完成。
为了保证分配的空白是整数个单位,可采用小数部分累计的方式:如第一个字后分配的空白应该为282,实际上只取整数个单位200,余下82放入累计值,第二个字后分配的空白应该为282,加上累计的82,应为364,取整数个单位,为300,累计值为64,依次类推。
最后,通过显示模块按照文字的位置在手持设备的显示装置上显示可供人们阅读的文字。
结果证明,手持设备上采用本发明所述的方法对文字排版进行处理具有很好的效果,行尾已经对齐,符合人们的阅读习惯,也没有违反禁排规则的情形出现。
Claims (2)
1.一种手持设备文字排版对齐的方法,包括以下步骤:首先,由手持设备的读入装置读入文字流,然后再由字符分析器对文字流进行分析处理,最后通过显示模块将文字显示在手持设备的显示装置上供人们阅读;
其特征在于:对文字流进行分析处理的字符分析器包括一个用于分析文字流中的字符单元的基础字符单元分析器,以及两个核心模块——断行模块和空白分配模块,断行模块利用基础字符单元分析器,决定在文字流的什么部位可以断行,从而保证文字排版能够遵守中文排版规则(如标点禁排规则、不可拆单元规则),而空白分配模块则在基础字符单元分析器的基础上,采用优先分级的方式高效率地在一行文字之间分配空白,保证文字行的两端与左右边界对齐、空白在文字之间合理分配。
2.如权利要求1所述的一种手持设备文字排版对齐的方法,其特征在于:
空白分配模块在基础字符单元分析器的基础上,按以下的步骤采用优先分级的方式高效率地在一行文字之间分配空白:
1).假设一行的空白宽度为x,四分之一空白宽度为sp4;
2).计算一行文字中,中文字符单元与西文字符单元、中文字符单元与数字字符单元的相邻点数量n1;
3).若n1*sp4<x,则在每个相邻点分配空白p1=sp4,剩余空白x1=x-p1*n1;否则将空白x在各相邻点平均分配,即:p1=x/n1,剩余空白为0,分配完成,退出空白分配流程;
4).计算一行文字中标点符号“、,。?!”的数量n2;
5).若n2*sp4<x1,则在上述每个标点后分配空白p2=sp4,剩余空白x2=x1-p2*n2;否则将剩余空白x1在上述各标点后平均分配,即:p2=x1/n2,剩余空白为0,分配完成,退出空白分配流程;
6).计算一行文字中,所有的空格的数量n3;
7).若n3*sp4<x2,则在上述每个空格后分配空白p3=sp4,剩余空白x3=x2-p3*n3;否则将剩余空白x2在上述各空格后平均分配,即:p3=x2/n3,剩余空白为0,分配完成,退出空白分配流程;
8).计算一行文字中,所有的字符单元的数量n4;
9).将剩余空白x3在上述各字符单元后平均分配,即:p4=x3/n4,分配完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021535000A CN1160646C (zh) | 2002-12-05 | 2002-12-05 | 一种手持设备文字排版对齐的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021535000A CN1160646C (zh) | 2002-12-05 | 2002-12-05 | 一种手持设备文字排版对齐的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1416077A true CN1416077A (zh) | 2003-05-07 |
CN1160646C CN1160646C (zh) | 2004-08-04 |
Family
ID=4752290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021535000A Expired - Lifetime CN1160646C (zh) | 2002-12-05 | 2002-12-05 | 一种手持设备文字排版对齐的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1160646C (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100435139C (zh) * | 2006-10-13 | 2008-11-19 | 北京北大方正电子有限公司 | 一种单元格特殊符号对齐的方法 |
CN1920811B (zh) * | 2006-08-31 | 2010-05-26 | 北京北大方正电子有限公司 | 一种文字排版的方法 |
CN101021841B (zh) * | 2007-03-23 | 2010-06-23 | 北京北大方正电子有限公司 | 一种维文排版中自动添加连音符控制行格式撑满的方法 |
CN102147790A (zh) * | 2011-04-15 | 2011-08-10 | 华为软件技术有限公司 | 文本排版方法及排版引擎 |
CN102243621A (zh) * | 2010-05-11 | 2011-11-16 | 项洁 | 影像文本文件的活字排版方法 |
CN102779118A (zh) * | 2012-07-17 | 2012-11-14 | 周广超 | 一种论文的排版方法及系统 |
CN103136186A (zh) * | 2011-12-05 | 2013-06-05 | 北大方正集团有限公司 | 拼音排版方法和装置 |
CN104133811A (zh) * | 2013-05-02 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 文本处理方法及移动终端 |
CN104572750A (zh) * | 2013-10-24 | 2015-04-29 | 北大方正集团有限公司 | 专用词不拆行处理方法和装置 |
CN105893342A (zh) * | 2015-12-29 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种文本信息处理方法及装置 |
CN109740141A (zh) * | 2019-01-10 | 2019-05-10 | 成都品果科技有限公司 | 一种基于canvas对文本进行排版美化的方法 |
CN110209965A (zh) * | 2018-02-14 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 用于显示信息的方法和装置 |
-
2002
- 2002-12-05 CN CNB021535000A patent/CN1160646C/zh not_active Expired - Lifetime
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1920811B (zh) * | 2006-08-31 | 2010-05-26 | 北京北大方正电子有限公司 | 一种文字排版的方法 |
CN100435139C (zh) * | 2006-10-13 | 2008-11-19 | 北京北大方正电子有限公司 | 一种单元格特殊符号对齐的方法 |
CN101021841B (zh) * | 2007-03-23 | 2010-06-23 | 北京北大方正电子有限公司 | 一种维文排版中自动添加连音符控制行格式撑满的方法 |
CN102243621A (zh) * | 2010-05-11 | 2011-11-16 | 项洁 | 影像文本文件的活字排版方法 |
CN102147790A (zh) * | 2011-04-15 | 2011-08-10 | 华为软件技术有限公司 | 文本排版方法及排版引擎 |
CN102147790B (zh) * | 2011-04-15 | 2012-12-19 | 华为软件技术有限公司 | 文本排版方法及排版引擎 |
CN103136186A (zh) * | 2011-12-05 | 2013-06-05 | 北大方正集团有限公司 | 拼音排版方法和装置 |
CN103136186B (zh) * | 2011-12-05 | 2016-06-22 | 北大方正集团有限公司 | 拼音排版方法和装置 |
CN102779118B (zh) * | 2012-07-17 | 2015-07-15 | 周广超 | 一种论文的排版方法及系统 |
CN102779118A (zh) * | 2012-07-17 | 2012-11-14 | 周广超 | 一种论文的排版方法及系统 |
CN104133811A (zh) * | 2013-05-02 | 2014-11-05 | 腾讯科技(深圳)有限公司 | 文本处理方法及移动终端 |
CN104572750A (zh) * | 2013-10-24 | 2015-04-29 | 北大方正集团有限公司 | 专用词不拆行处理方法和装置 |
CN104572750B (zh) * | 2013-10-24 | 2017-10-13 | 北大方正集团有限公司 | 专用词不拆行处理方法和装置 |
CN105893342A (zh) * | 2015-12-29 | 2016-08-24 | 乐视移动智能信息技术(北京)有限公司 | 一种文本信息处理方法及装置 |
CN110209965A (zh) * | 2018-02-14 | 2019-09-06 | 北京京东尚科信息技术有限公司 | 用于显示信息的方法和装置 |
CN109740141A (zh) * | 2019-01-10 | 2019-05-10 | 成都品果科技有限公司 | 一种基于canvas对文本进行排版美化的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1160646C (zh) | 2004-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1160646C (zh) | 一种手持设备文字排版对齐的方法 | |
EP1739574B1 (en) | Method of identifying words in an electronic document | |
CN102147790B (zh) | 文本排版方法及排版引擎 | |
US20030184804A1 (en) | Method and apparatus for improving page description language (PDL) efficiency by recognition and removal of redundant constructs | |
CA1162318A (en) | Character set expansion | |
CN1503160A (zh) | 计算机可执行的电子书阅读界面的自动排版方法 | |
CN117371446B (zh) | 一种病历文本排版方法、系统、存储介质及电子设备 | |
US9229914B2 (en) | Optimizing the layout of electronic documents by reducing presentation size of content within document sections so that when combined a plurality of document sections fit within a page | |
CN111695414B (zh) | 文档处理方法及装置、电子设备、计算机可读存储介质 | |
Shirali-Shahreza et al. | An improved version of Persian/Arabic text steganography using" La" Word | |
CN102591849A (zh) | 文档格式转换的方法及装置 | |
Rudman | The non-traditional case for the authorship of the twelve disputed Federalist Papers: A monument built on sand | |
CN105718450A (zh) | 英语二级盲文转换方法及转换装置 | |
CN117852521B (zh) | 一种数据计算结果文件对比方法、系统及对比配置系统 | |
McGillivray | Statistical analysis of digital paleographic data: what can it tell us? | |
CN113342941B (zh) | 文本搜索方法、装置、电子设备及计算机可读存储介质 | |
CN113147209A (zh) | 一种书本印刷页码的方法 | |
CN1133985A (zh) | 一种读写结合的汉字计算机输入方法 | |
JPH03130865A (ja) | 文書処理装置 | |
CN1667552A (zh) | 实现字符快速输入的方法 | |
JP3019287B2 (ja) | 画像領域分割方法 | |
CN1023352C (zh) | 用于阴极射线管显示荧光屏的设备和方法 | |
CN117540006A (zh) | 一种语料提取及清洗方法、装置、设备及存储介质 | |
CN1373411A (zh) | 一种大、小键盘录入的编码方案 | |
Parhami | to Represent Farsi and Arabic Scripts |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20040804 |