用于呈现多语言文本的装置和方法

文档序号:6598561阅读:147来源:国知局

专利名称::用于呈现多语言文本的装置和方法
技术领域
:本发明一般涉及文本文件的数字处理。更加具体来说,本发明涉及多语言文本的最优表现(optimalpresentation)。
背景技术
:如这里所使用的那样,术语“字体”(font)指的是以字型(typeface)和样式(style)为特征的可视标记。字型是对于字符族(family)建立一致的视觉外观(appearance)的经协调的图形符号(glyphs)的集合,诸如字母、数字和标点符号的字母表。常用字型包括Arial、Courier、Helvetica和TimesNewRoman。样式指的是通过诸如plain,boldface(粗体)、italic(斜体)和underline(下划线)之类的一个或多个参数指定的字型的美学表现。字型类别是用于组织字型族的图式(schema)。该图式可以依赖于诸如serif(衬线)、sansserif(无衬线)^proportional禾口mono—space之类的准则。Serif是字母内的终止笔划。Sanserif字符省略字母内的终止笔划。例如,TimesNewRoman是serif字体,而Helvetica是sanserif字体。Proportional字型包括具有可变长度的图形符号。mono-spaced(non-proportional)字型对所有图形符号使用单一的标准长度。超文本标记语言(HTML)文件包括用标签定界的分段(segments)。用于分段的标签的特征在于该分段中文本的字体。例如,HTML文件可以具有下列分段<prestyle="font-familySans-Serif">English:MichaelJacksonwasthekingofpop....</pre>以标记的标签指定了Sans-krif的字型类别或字体族。结果,将依照该^{Φ^^ΜΙ;^"English=MichaelJacksonwasthekingofpop.”。(Sans-Serif)到实际的特定字体(例如,Arial、C0urier)的准确映射可以通过默认映射或其它映射来完成,这可能导致次优(sub-optimal)输出,特别是如果该输出与用于该多语言输入文件中的其它语言的其它所选择的字体相对比存在反差(contrasted)的话。已知技术被用于将HTML文件转换为可移植文件格式(PortableDocumentFormat,PDF)文件。类似地,已知技术可以用于将HTML文件中的文本转换为适用于计算机屏幕、打印驱动器或出版应用的格式。但是,在HTML文件内的多语言文本情况下,会引起复杂性。例如,如果具有多语言文本的HTML文件指定TimesNewRoman字型,那么所得到的PDF文件将准确地表现拉丁字符文本,而非中文字符。类似的问题也会在HTML文件不具有清楚的字体定义时出现。例如,字体定义可能只指定字型类别(category)。期望的是,在呈现多语言文本时选择具有相似外观的字体。也就是说,如果clashing字体被用于多语言文件中的不同语言,那么所得到的文件将在视觉上令人不舒服。考虑到上述问题,期望提供改进的技术来呈现多语言文本。
发明内容计算机可读存储介质包括可执行指令,该可执行指令由计算机执行时使得计算机指定字体属性文件。基于该字体属性文件创建字体位图(bitmap)文件。接收具有多语言文本的输入文件。访问该字体位图文件以确定用于输入文件内的字符的字体绑定(binding)。计算机实施的方法,包括步骤指定字体属性文件;基于所述字体属性文件创建字体位图文件;接收具有多语言文本的输入文件;以及访问所述字体位图文件,以确定用于所述输入文件内的字符的字体绑定。结合下面具体实施例以及说明书附图,将更加充分地理解本发明,附图中图1示出了根据本发明的实施例配置的计算机。图2示出了与本发明的实施例相关联的总体处理操作。图3示出了根据本发明的实施例采用的字体属性文件。图4示出了根据本发明的实施例执行的分段和字体位图文件处理操作。贯穿说明书附图的这些图,相似的参考标号指代相应的部分。具体实施例方式图1示出了根据本发明的实施例配置的计算机100。计算机100包括标准元件,诸如经由总线114连接的中央处理单元110和输入/输出设备112。输入/输出设备112可以包括键盘、鼠标、显示器、打印机等等。网络接口电路116也连接到总线114。网络接口电路116提供到网络的连接,从而计算机100可以在联网环境中运行。存储器120也连接到总线114。存储器120包括用于实现本发明操作的可执行指令。存储器120包括一组字体文件122,诸如与操作系统相关联的那些文件。每个字体文件提供用于呈现指定字体的指令。依照本发明的实施例,存储器120也存储字体属性文件124。字体属性文件124表达多种语言的字体绑定信息。也就是说,字体属性文件1指定将用于不同语言的字体,以便对多语言文本的外观进行最优化。例如,字体属性文件IM可以指定用于不同语言的适当字体。可以在考虑来自多语言文本的字体彼此将如何显示(appear)的场景(context)中进行这些字体选择。存储器也存储字体位图生成器126。字体位图生成器1包括用于针对系统中每个字体文件122形成字体位图文件的可执行指令。字体位图生成器1访问字体属性文件124,以生成一组字体位图文件128、130。每个字体位图文件表达是否应当用输入文件中表达的字体或字型类别来呈现输入文件中的字符。这样,通过字体位图文件来执行(enforce)在字体属性文件124中表达的偏好(preference)。位图访问模块132包括用于对一系列字体位图文件的访问进行优先级排列(prioritize)的可执行指令。如下所讨论的那样,根据一定字体位图文件对给定输入文件的相关性的可能性(likelihood)来判定字体位图文件的优先级。字体绑定模块134包括用于处理输入文件的各个分段以确定所述分段的适当字体的可执行指令。字体绑定模块134顺序访问按优先级排列的字体位图文件,以找出适当的绑定。如果分段对字体(segment-to-font)的映射是适当的,则保持该映射。否则,就处理额外的字体位图文件以确认适当的分段对字体的映射,如下所讨论的那样。该处理导致生成多语言字体映射文件136。图2示出了与本发明的实施例相关联的处理操作。开始,定义字体属性文件200。图3示出了示范性字体属性文件。属性文件列出了许多种语言。对于每种语言,列举了不同的字型类别。对于给定的字型类别,指定适当的字体。这样,用户执行针对给定语言中的分段或字符的字体选择。考虑下面的特定例子,其中,语言被表达为拉丁文,并且特定字体(字型和样式)被分配给不同的字型类别拉丁文serif,plain=TimesNewRomanserif,bold=TimesNewRomanBoldserif,italic=TimesNewRomanItalicserif,bolditalic=TimesNewRomanBoldItalicsanserif,plain=Arialsanserif,bold=ArialBoldsanserif,italic=ArialItalicsanserif,bolditalic=ArialBoldItalicmonospaced,plain=CourierNewmonospaced,bold=CourierNewBoldmonospaced,italic=CourierNewItalicmonospaced,bolditalic=CourierNewBoldItalicsequence,allfonts=LATIN,DINGBATS,SYMBOL现在考虑另一个例子,其中,语言被表达为中文。再有,特定字体被分配给不同的字型类别中文serif,plain=SimSunserif,bold=SimSunserif,italic=SimSunserif,bolditalic=SimSunsanserif,plain=SimHeisanserif,bold=SimHeisanserif,italic=SimHeisanserif,bolditalic=SimHeimonospaced,plain=SimSunmonospaced,bold=SimSunmonospaced,italic=SimSunmonospaced,bolditalic=SimSuncharsets=GB2312,GBK,GB18030,cp9366locales=CNsequence,serif=LATIN,SIMPLIFIED-CHINESE,DINGBATS,SYMBOLsequence,sanserif=LATIN,SIMPLIFIED-CHINESE,DINGBATS,SYMBOLsequence,monospaced=SIMPLIFIED-CHINESE,LATIN,DINGBATS,SYMBOL在本例中,字体属性文件指定可以与输入文件相关联的字符集(charsets)和区域(CN)。该信息使得人们能够识别在输入中使用的语言。然后,该语言信息可以用于映射适当的字体。现在返回图2,接下来的处理操作是创建字体位图文件202。如前所述,字体位图生成器1可以被用来创建字体位图文件。在一个实施例中,每个Unicode字符被分配一位(onebit)来指定字体能不能被显示(例如,值0表示否,值1表示是)。Unicode是计算工业标准,其允许计算机一致地(consistently)表现和处理全球范围的书写系统中表达的文本。有65536(OxFFFF)位,由此得到最终8K的位图大小。在一个实施例中,位图(map)从字符U+0000开始,并且在字符U+FFFF结束。因此,Unicode字符的数值是在位图中的偏移(offset)。例如,拉丁文小写字母“a”的Unicode值为U=0061。因此,位图中的第61位表示是否能显示该字体。字体位图生成器126可以使用与下列伪码对应的代码Loadafontcreateanarrayofzeroes//其能够存储65536位值foreachintfrom0to65535{}savearraytophysicalfile,nameitas<font_name>.bmp调用“font.canDisplay(char),,的方法可以参考字体属性文件124中的信息,以确定该映射是否适当。对于每个字体重复该处理,由此得出一组字体位图文件128、130。图2的下一个处理操作是排序字体位图文件204。位图访问模块132可以用于该操作。期望将位图文件排序使得与输入文件最可能相关的字体被首先处理。位图访问模块132可以基于对输入文件的编码来对字体位图文件进行优先级排列。例如,以GB2112编码的文档可能是中文文档。因此,通常与中文字符一起使用的字体被按优先级排列。也可以用机器的区域来排序字体位图文件。例如,区域为zh_CN的服务器很可能包含大多为中文字符的文档。可替换地,一些其它默认图式可以用于对字体位图文件的访问和处理进行优先级排列。图2的最终处理操作是绑定用标签定界(tagdelimited)的文档分段206。字体绑定模块134可以用于实现该操作。图4示出了与字体绑定模块134的实施例相关联的处理操作。开始,载入输入文件的分段400。在第一轮操作中(firstpass),检索最高优先级的位图文件进行处理402。读取来自输入文件的分段404。然后,进行检查以确定是否已经读取了最后一个分段406。在第一轮操作中不会出现这种情况,因此处理前进到块408,在块408确定是否能以指定字体呈现该分段。这使得字体绑定模块134为该分段的字符访问castintintochariffont.canDisplay(char)setarrayelementatpositionintto17字体位图文件中的位置。如果该定位表示该字符能够以指定字体呈现(例如,字体位图文件位置被设置为1),则绑定该映射410。如果不能的话(408-否),则该分段被放入例外列表(exertionlist)412。这意味着将选择另一字体来映射该分段。然后控制返回块404。重复该处理直到最后一个分段被读取(406-是)。如果存在例外列表(414-是),则调用该列表418,并且载入分段400。然后,检索下一字体位图文件402。然后,通过块404-410处理每个分段。如果该处理导致另一例外列表,则调用下一个列表418并载入400。然后,调用另一字体位图文件402。然后,重复块404到410的处理直到不再生成其它例外列表(414-否)。此时,处理完成416。可以看出,图4示出了具有不同字体位图文件的例外列表的迭代处理。现在,多语言输入文件的每个分段被映射到适当的字体。理想情况下,字体属性文件IM为多语言输入文件指定协调的(harmonized)字体。因此,所呈现的文本——不论是否经由PDF文件、屏幕输出或打印驱动器输入,具有协调的样子(look)。而且,针对每种语言最优化所呈现的文本并且避免了这样的问题调用不能用于呈现给定语言中的字符的字体。可以看出,本发明依赖于字体位图文件的处理,该字体位图文件远小于它们的相应字体文件(例如,8K对25M)。因此,本发明对字体位图文件的依赖改善了字体呈现性能。实际上,因为字体位图文件较小的尺寸,它们可以被放在高速缓存中以进一步改善系统性能。本发明对字体位图文件中位图查找(bitlookup)的依赖比处理字体文件要快得多。本发明的实施例涉及具有计算机可读存储介质的计算机存储产品,该存储介质上具有用于执行各种用计算机实现的操作的计算机代码。这些介质和计算机代码可以是那些针对本发明的目的专门设计和构造的介质和代码,或者可以是对计算机软件领域技术人员熟知和可用的各种介质和代码。计算机可读介质的例子包括、但不局限于诸如硬盘、软盘和磁带之类的磁介质;诸如CD-ROM、DVD和全息设备之类的光介质;磁光介质;以及诸如专用集成电路(ASIC)、可编程逻辑器件(PLD)以及ROM和RAM设备之类的专门配置用于存储和执行程序代码的硬件设备。计算机代码的例子包括诸如由编译器生成的机器代码以及包含由计算机使用解释器运行的高级代码的文件。例如,本发明的实施例可以使用JAVA、C++或者其它面向对象的编程语言和开发工具来实现。可以取代机器可执行软件指令、或者与机器可执行软件指令相结合,在硬连线电路中实现本发明的其它实施例。为了说明的目的,前面的描述使用了专门术语以提供对本发明的全面理解。但是,本领域技术人员应当理解,为实践本发明可不需要特定细节。因此,前面对本发明具体实施例的描述是为了图示和描述的目的而给出。这些描述不是排它性或者仅将本发明限定为所公开的确切形式;显然,从上面教导的角度考虑,可以进行许多修改和变形。选择并描述这些实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域其它技术人员最好地利用本发明以及根据适合于所设想的特定使用进行的各种修改后的各种实施例。意在以所附权利要求及其等效内容来定义本发明的范围。权利要求1.一种包括可执行指令的计算机可读存储介质,当该可执行指令由计算机执行时,使得所述计算机指定字体属性文件;基于所述字体属性文件创建字体位图文件;接收具有多语言文本的输入文件;以及访问所述字体位图文件,以确定用于所述输入文件内的字符的字体绑定。2.如权利要求1所述的计算机可读存储介质,其中,所述字体属性文件指定多种语言,其中,对于所述多种语言中的每种语言,将字型类别映射到字体。3.如权利要求1所述的计算机可读存储介质,其中,每个字体位图文件对应于指定的字体,并表示特定字符是否应当以该指定字体来呈现。4.如权利要求1所述的计算机可读存储介质,其中,所述输入文件具有用标签定界的分段。5.如权利要求1所述的计算机可读存储介质,还包括用于对所述字体位图文件的访问进行优先级排列的可执行指令。6.如权利要求5所述的计算机可读存储介质,其中,所述对访问进行优先级排列的可执行指令包括用于基于所述输入文件的编码对所述字体位图文件的访问进行优先级排列的可执行指令。7.如权利要求5所述的计算机可读存储介质,其中,所述对访问进行优先级排列的可执行指令包括用于基于提供所述输入文件的机器的区域对所述字体位图文件的访问进行优先级排列的可执行指令。8.如权利要求5所述的计算机可读存储介质,其中,所述对访问进行优先级排列的可执行指令包括用于基于默认图式对所述字体位图文件的访问进行优先级排列的可执行指令。9.如权利要求1所述的计算机可读存储介质,其中,所述用于访问的可执行指令包括用于检索所选择的字体位图文件的可执行指令。10.如权利要求9所述的计算机可读存储介质,其中,所述用于访问的可执行指令包括用于从所述输入文件读取分段的可执行指令。11.如权利要求10所述的计算机可读存储介质,其中,所述用于访问的可执行指令包括这样的可执行指令用于从所选择的字体位图文件确定所述分段是否能够呈现,如果能够呈现,则将所述分段绑定到所述字体,如果不能呈现,则将所属分段放入例外列表。12.如权利要求11所述的计算机可读存储介质,其中,所述用于访问的可执行指令包括这样的可执行指令用于调用新的字体位图文件,以及用于从该新的字体位图文件中确定例外列表分段是否能够呈现。13.如权利要求1所述的计算机可读存储介质,还包括用于将所述字体绑定映射到可移植文件格式PDF文件的可执行指令。14.如权利要求1所述的计算机可读存储介质,还包括用于将所述字体绑定映射到打印驱动器的可执行指令。15.如权利要求1所述的计算机可读存储介质,还包括用于将所述字体绑定映射到计算机屏幕的可执行指令。16.如权利要求1所述的计算机可读存储介质,还包括用于将所述字体绑定映射到出版应用的可执行指令。17.一种计算机实施的方法,包括步骤指定字体属性文件;基于所述字体属性文件创建字体位图文件;接收具有多语言文本的输入文件;以及访问所述字体位图文件,以确定用于所述输入文件内的字符的字体绑定。全文摘要包括可执行指令的计算机可读存储介质,当该可执行指令由计算机执行时使得计算机指定字体属性文件。基于字体属性文件创建字体位图文件。接收具有多语言文本的输入文件。访问字体位图文件以确定用于输入文件内的字符的字体绑定。文档编号G06F17/21GK102169478SQ20101011446公开日2011年8月31日申请日期2010年2月26日优先权日2010年2月26日发明者孙延林,顾仁民申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1