VisualStudio里不能识别OpenTypeios 字体类型型怎么处理

如何区分早期TrueType字体和OpenType? - 知乎17被浏览1214分享邀请回答614 条评论分享收藏感谢收起微软发布Windows OpenType字体引擎补丁
日期:作者:翻译:唐波&来源:TechTarget中国
【TechTarget中国原创】微软周二发布了一个补丁,修复了Windows 2000嵌入式OpenType字体引擎中的一个严重漏洞。  MS10-001补丁影响到Windows的所有版本,但对Windows2000来说这一补丁被列为严重级别,因为它修复的这一漏洞能够被攻击者利用来运行恶意代码,窃取敏感数据并彻底控制受害者的机器。而在较新一些的机器上,攻击者最多只能够使机器宕机。  微软说攻击者能通过欺骗Windows2000系统的用户查看IE、Microsoft Office PowerPoint或Word中的嵌入式OpenType字体来实施远程攻击。  微软的Jerry Bryant在其安全响应中心博客上写道:“目前已有一些改进措施,能够帮助阻止新系统上发生此类攻击。”  另外,微软再次发布了MS09-035,这一活动模板库安全补丁在去年七月被作为紧急更新发布。这次的更新将Windows Embedded CE 6.0产品加入了受影响的产品之列。它影响到运行于Windows Embedded CE 6.0之上的各种开发产品。  7月out-of-band更新修复了ATL中的漏洞,它影响到IE和Visual Studio。微软和其它的软件制造商协同努力,共同修复了Visual Studio中内建项目的潜在漏洞。  Adobe Flash Player更新  微软在本周二还发布了一份安全公告,通知Windows XP的用户将Adobe Flash Player更新到最新版本。Windows XP上的Adobe Flash Player 6包含有很多应当清除的远程代码执行漏洞。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
TechTarget中国
查看更多评论
敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。
2010年微软补丁更新
高级持续性威胁(APT)团伙Platinum一直滥用Windows的热修复功能来攻击南亚和东南亚的政府组织和机构。这个APT团伙利用这个功能(Windows Server 2003中推出)将恶意代码注入到正在运行的进程中。那么,这些热修复攻击的工作原理是什么,我们应该如何应对?
如今,教育信息化已跨入移动互联、云计算、大数据相融的“智慧教育”时代,网络已经成为了教育改革创新的利器。然而,黑客与恶意代码的攻击不会因为教育行业的特殊性而心生怜悯……
近来利用“use-after-free”IE零日漏洞的攻击似乎凸显了flash堆喷射(heap spray)检测的重要性。为什么攻击者利用这种技术?研究人员又应该如何检测堆喷射(heap spray)?
最初曾被一些安全公司忽视的蠕虫,现在已经成为了银行所面临的严重威胁。专家表示,该蠕虫可以使银行帐户资金流失。
企业在盲目部署云服务前,必须考虑到云计算的合规问题。本技术手册将带你一起讨论云合规问题,帮助企业全面的看待云计算所带来的影响。
“最佳实践”来自英文Best Practice。维基百科对最佳实践的定义是一个管理学概念,认为存在某种技术、方法、过程、活动或机制可以使生产或者管理实践的结果达到最优,并减少出错的可能性。学习应用IT企业安全的最佳实践,其实就是借鉴别人成功的经验,让自己在保护企业安全方面少走弯路。在本手册中,将集合IT业内关于企业安全的最佳实践,并不断更新,以期在企业安全防护方面提供帮助。
PCI DSS的所有要求的说明都相当明确,不像萨班斯法案(SOX)的规定。SOX没有提供如何保护信息资产的任何详细指导,而且可以由企业和法规审计单位自由做出不同的解释。然而,企业仍然觉得遵守PCI DSS很难。
随着垃圾邮件,邮件病毒,邮件广告等不速之客大量涌入我们的邮箱,电子邮件变得越来越令人烦恼了。本技术手册将为你介绍电子邮件的安全问题以及如何实现电子邮件安全。
TechTarget
企业级IT网站群
TechTarget中国 版权所有
All Rights Reserved, Copyright
TechTarget中国 版权所有
All Rights Reserved, Copyright字体处理(针对 Visual Basic 6.0 用户)
Windows 应用
字体处理(针对 Visual Basic 6.0 用户)
更新:2007 年 11 月本主题对 Visual Basic 6.0 中的字体处理方法与 Visual Basic 2008 中的等效方法进行了比较。在 Visual Basic 6.0 中用两种不同的方法处理字体:一种是作为窗体和控件的字体属性,另一种是作为 stdFont 对象。在 Visual Basic 2008 中,只有一个 Font 对象:System.Drawing.Font。窗体或控件的 Font 属性将 Font 对象作为参数。在 Visual Basic 6.0 中,可通过分配 stdFont 对象或直接在控件上设置属性,在运行时设置字体属性;这两种方法可以交替使用。在 Visual Basic 2008 中,控件的 Font 属性在运行时为只读属性,您不能直接设置这些属性。每次都必须实例化一个新的 Font 对象,才能设置属性。在 Visual Basic 6.0 中,必须为每个控件或窗体分别设置字体属性;使用 stdFont 对象可简化这一过程但仍需要代码。而在 Visual Basic 2008 中,除非为子对象显式设置字体属性,否则将从其父级自动继承字体属性。例如,如果在窗体上有两个标签控件并将窗体的字体属性更改为 Arial,则标签控件的字体也将更改为 Arial。如果随后将一个标签的字体更改为 Times Roman,那么对窗体字体的进一步更改将不会重写该标签的字体。Visual Basic 6.0 为了向后兼容而支持光栅字体;Visual Basic 2008 仅支持 TrueType 和 OpenType 字体。在 Visual Basic 6.0 中,可以使用 Screen.Fonts 集合连同 Screen.FontCount 属性一起来枚举可用的屏幕字体。在 Visual Basic 2008 中,不再提供 Screen 对象;若要枚举系统中的可用字体,应使用 System.Drawing.FontFamily 命名空间。说明:Visual Basic 6.0 可以枚举所有字体类型。Visual Basic 2008 仅支持 TrueType 和 OpenType 字体;不会枚举其他字体类型。此外,Visual Basic 6.0 可以枚举字体系列中的每个字符集版本(例如,Arial、Arial Baltic、Arial Greek);而 Visual Basic 2008 仅枚举字体系列。下面的代码示例演示 Visual Basic 6.0 和 Visual Basic 2008 在编码方法上的不同之处。下面的示例演示在运行时设置字体属性。在 Visual Basic 6.0 中,可以直接在控件上设置属性;在 Visual Basic 2008 中,必须创建一个新的 Font 对象并在每次需要设置属性时将其分配给控件。
' Visual Basic 6.0
' Set font properties directly on the control.
Label1.FontBold = True
' Create a stdFont object.
Dim f As New stdFont
' Set the stdFont object to the Arial font.
f.Name = "Arial"
' Assign the stdFont to the control's font property.
Set Label1.Font = f
' You can still change properties at run time.
Label1.FontBold = True
Label1.FontItalic = True
' Visual Basic
' Create a new Font object
Name and Size are required.
Dim f As New System.Drawing.Font("Arial", 10)
' Assign the font to the control
Label1.Font = f
' To set additional properties, you must create a new Font object.
Label1.Font = New System.Drawing.Font(Label1.Font, FontStyle.Bold Or FontStyle.Italic)
下面的示例演示使用计算机上安装的字体列表填充 ListBox 控件。说明:Visual Basic 6.0 可以枚举所有字体类型。Visual Basic 2008 仅支持 TrueType 和 OpenType 字体;不会枚举其他字体类型。此外,Visual Basic 6.0 可以枚举字体系列中的每个字符集版本(例如,Arial、Arial Baltic、Arial Greek);而 Visual Basic 2008 仅枚举字体系列。
' Visual Basic 6.0
Dim i As Integer
For i = 0 To Screen.FontCount – 1
List1.AddItem Screen.Fonts(i)
' Visual Basic
Dim ff As FontFamily
For Each ff In System.Drawing.FontFamily.Families
listBox1.Items.Add(ff.Name)
当 Visual Basic 6.0 应用程序升级至 Visual Basic 2008 时,将修改所有字体处理代码以使用新的 Font 对象。Visual Basic 2008 中的字体继承可能导致应用程序的外观发生意外更改。应在转换后的应用程序中检查任何在窗体或容器级别显式设置字体的代码,如有必要,请更改不应继承该字体的任何子控件的字体。在升级过程中,光栅字体转换为默认的 OpenType 字体 Microsoft Sans Serif。不保留格式设置,如粗体或斜体。有关更多信息,请参见 。如果应用程序包括枚举字体的代码,升级后的应用程序中将不枚举光栅字体,而将枚举字体系列而不是各个字符集版本。
此页面有帮助吗?
更多反馈?
1500 个剩余字符
我们非常感谢您的反馈。
(C) Microsoft 2017我的图书馆
OpenType,是一种可缩放字型(scalable font)类型,采用格式,是与公司联合开发,用来替代字型的新字型。这类字体的为.otf,类型代码是OTTO,现行标准为OpenType 1.4。
OpenType最初发表于,并在之后出现大量字体。它源于微软公司的TrueType Open字型,TrueType Open字型又源于字型。OpenType font包括了Adobe CID-Keyed font技术。公司已经在末将其字体库全部改用OpenType格式。到大概有一万多种OpenType字体,Adobe产品占了三分之一。
OpenType之前的主流是和开发的类型,还有公司开发的("")字体类型。微软在独自开发了"TrueType Open"类型,之后加入开发,增加了其在Type 1字体中使用的对字体轮廓的支持,OpenType这个名字于是便用来称呼合并之后的技术。
在后来的十几年中,Adobe和微软继续开发改进OpenType格式,在末,OpenType开始申请成为(ISO)的公开标准。这个新标准已经升级到OpenType 1.4,以适应ISO语言标准的一些变化,之后其被称为"开放字体类型(Open Font Format)"。这个新标准计划在末完成。
OpenType使用TrueType字体通用的"sfnt"架构,但其加入若干“智能字体”(smartfont)选项,可以加强字体的字形和语言支持能力。OpenType字体中的(glyph)、轮廓数据可以在两种格式中任选其一:一个是在'glyf'表中TrueType格式轮廓,另一个是在'CFF&'表中的(压缩字体格式,Compact Font Format)格式轮廓。CFF轮廓数据是基于语言Type 2字体格式。表格名'CFF&'长度为四个字符,并且以一个空格字符结尾。
在如版式等大多数情况下,轮廓数据格式是什么类型并不重要,但这两种格式的区别在图元光栅化(rasterisation)的时候就有区别。而单从"OpenType"一词中看不出来使用的是哪种数据格式,所以有时候使用"OpenType (PostScript flavor)", "OpenType CFF",或者"OpenType (TrueType flavor)"等称呼加以区别。
OpenType的主要特征有:
字体编码基于(Unicode),可以支持任何文本,或者同时支持多种文本。
一个OpenType字体可以带有超多65,536个。对于中文字库而言,最基本的字汇应该包含的13,060个汉字或是标准的6763个常用字型,这些字应该能满足一般用户的使用,对于户籍管理、银行系统和出版社等用户而言需要2万多字甚至7万多字的支持。
字体有高级字形特征,可以进行对复杂文本进行充分的字形处理,并能通过更简单的脚本施加更复杂的字形效果,比如用脚本书写。
字体文件可以拓展到跨平台,能够在,和一些Unix系统中进行设置。
若不含等拓展字形和拓展文字性能,OpenType CFF字体比Type 1要小
与的"GX Typography"(现名Apple Advanced Typography,AAT)比较,OpenType在字形选项上更不灵活,但是在语言相关的选项和支持略胜一筹。OpenType比AAT更为成功,它现在有大量的字体和支持的应用程序,使AAT成为过时的技术。AAT的单平台性能使其缺乏苹果以外的大产商的支持。
从开发者的角度来说,在一般情况下OpenType比AAT更容易开发。首先,简单声明替换和OpenType的定位比AAT的状态表更简单易懂。其次,Adobe的认证策略不需要改变源代码,运行第三方字体编辑应用程序,如FontLab、FontMaster去添加有关性能支持。虽然Adobe的文本驱动代码支持不如微软的单独开发工具更为直观,但是它的VOLT(视觉开放字体版式工具,Visual OpenType Layout Tool),一个制作字体的工具集成软件还是比较受欢迎的。
另一个区别是,OpenType支持framework(如微软的),若要处理等语言的时候只需要提供一些特殊的语言处理知识。而在AAT中,ATT字体开发者需要对该语言字体的全面认识。这意味着AAT可以处理任何特殊语言,但是需要字体开发者的相当高度的语言知识。另外,OpenType字体更容易制作,但只能支持应用程序和操作系统能够识别的复杂脚本。 在支持OpenType之前,Adobe针对高端文字处理中曾推出“multiple master fonts”,但其缺乏OpenType的异体字和语言控制,在字体形状上有更多的控制参数。
OpenType支持有以下几个方面:所有应用程序和多数操作系统能在使用旧字体的同时使用OpenType字体;特别要注意的是,万国码的拓展语言支持;支持、语言等“复杂文本”;以及等拉丁文本的高级字形支持等。
在微软的操作系统中,OpenType TT字体(.TTF)能向后兼容,因此其支持所有操作系统。OpenType PS字体 (.OTF)只能支持,,和。在///系统中需要安装才能使用基本的罗马字符支持。
通过(Unicode)的拓展语言,可以在大多数的视窗应用程序中同时对OpenType和TrueType支持,包括,大多数的Adobe应用程序,微软 2003(但 2002不行),以及多数的Mac OS应用程序,包括苹果自己开发的和。在Mac OS X中,通过文字处理,OpenType得到了全面支持。
OpenType通过微软的Office和Publisher等软件支持复杂书写文本,Adobe 也提供的拓展OpenTypegognneng,但是不直接支持和文本——Adobe为支持、等中东语言,单独发行另外的InDesign版本。
文本的高级字形支持主要是通过Adobe的应用程序,如Adobe 、和来支持。 6.5及其以下版本不支持万国码,因此含有WinANSI/MacRoman字符表外的文字在OpenType字体中将无法正常显示(同理,在其他使用万国码的字体格式也不行)。公司的不支持OpenType字形特征。尽管如此,Quark公司在发布的 7中开始支持OpenType,和Adobe程序达到类似的效果。
另外,管理代码执行支持OpenType CFF字体和一些高级字形功能,如连写、旧体数字、花体字形、拐点、超文本和次文本,小型大写字母、字形替换、多重基线、前后/风格化字间距调整、行间调整、注释字符等等。
及其之后系统中的也支持OpenType拉丁文本语言的高级字形功能,如小型大写字母,旧体数字和多种连写。但是它不支持前后字母间距调整、定位格式、字形倒序等,因此Mac OS X v10.4不能通过OpenType支持阿拉伯语、印度的文字——这些文本通过苹果自己的字体来支持。
在自由软件环境,如中,OpenType支持是通过项目来支持的,包括自由执行,如。
Adobe在其创意软件套装中发表了一个新的技术“外字”(Gaiji)解决方案。
所谓“外字”,源自日语的“表外漢字”。与拉丁语言不同,在系统如、中,没有固定数量的字符集。一般字符集只含有8,000到15,000的常用字,另外数万个非常用字、生僻字,往往没有在各国的标准中给予编码。另外一个情况是:一个表意文字()在不同的历史时期、地域产生了不同的字形,而一些地名人名等专有名字必须要使用传统的写法, 需要使用这些冷僻字形,造成了生僻字问题,日语中称为“外字”问题。
为了处理这些冷僻字,先前已经出现过很多方案,比如在中的私用区域(private use area)增加编码等。这样的处理方法无法在制定环境以外的地方使用,基于私用区域编码的万国码制作的文档无法通用。另外一个办法就是将其处理成,这又导致文字排版的麻烦,因为版面指令无法作用于图像,无法被当成文本搜索,而且由于机器从字体描绘字形和描绘图像的机制完全不同,这样的处理导致插入的冷僻字看起来很突兀。
SING技术是和 2一起发布的,它允许用户创建新字形,每个新字形作为一个独立的字体打包。这样打包出来的字形称为字形包(glyphlet)。这种格式通过Adobe公开的,且基于OpenType。这个包的内容包括字形的或轮廓样式,标准OpenType表格,声明字形的尺寸和组合行为,以及元数据,附加信息,如字形包的认证、所属,还有读音或者部首分类等语言方面的分类等。SING字形包也可以使用公司的SigMaker3程序创建。
SING(Smart INdependent Glyphlets,智能独立字形包)的规格允许字形包随同文件一起传送,这样包含SING字符的文件也是可携带的,而又不会字符乱码、异常显示。由于字形包的基础是OpenType字体,标准字体机制可以对其进行正常描画。SING规格也可以表述成XML格式,包括在二进制格式中重建字形的所有必要数据。一般情况下,一个字形包需要1-2 kB大小的容量。
OpenType版式标签含有4个字符串,含有字体版式中文本,语言系统,特征和基线等信息。微软的版式标签登陆中,包含了这些标签的使用和命名方法。OpenType特征都是由这些标签信息来体现的,创建特征文本来描述字符如何根据指令来排列。这些特征文本还可以通过高级字体编辑器如Studio和来制定。
文本标签用来识别OpenType字体中的文本类型。每个标签对应Unicode中一个连续的字符区。每个字符标签含有4个或更少的小写字母。如,包含arab来识别表,cyrl对应表,latn对应表,等等。
语言体统标签识别OpenType字体中支持的语言系统。如包含ARA对应,ESP对应,HYE对应等等。这个代码类似于,但不尽相同。
特征表现用来识别字符的一些字形特征和功能。
基线标签包含横、竖两个书写方向的信息。
中发音符号的横写时的基线位置
藏文中竖写时的基线位置
表意文字字符底边距基线
表意文字字符左边距基线
表意文字字符顶边距基线
表意文字字符右边距基线
表意文字字面底边距基线
表意文字字面左边距基线
表意文字字面顶边距基线
表意文字字面右边距基线
数学字符居中时的基线
书写字符居中、在竖写时的基线
简单字母文本(拉丁、西里尔、希腊字母)的基线
简单字母文本(拉丁、西里尔、希腊字母)在顺时针90度竖些时的基线
在 (Tiger)中,开始在操作系统中支持OpenType功能,减轻了程序开发者的任务,但是仍有一些需要注意的地方:
在Mac OS 10.4.0到10.4.3中,若字体被识别为具有OpenType表,任何表值将被忽略(之后,AAT特征优先于OpenType特征。)
只有以下的GDEF/GPOS/GSUB功能标签被确认是支持的:
liga: Common ligatures普通连写
dlig: Discretionary ligatures
sups: Superior/superscript position
tnum: Tabular numerals表用数字
pnum: Proportional numerals比例数字
onum: Old style numerals旧体数字
lnum: Lining numerals线性数字
sinf: Scientific inferiors
zero: Slashed zero斜线零
ital: Italics斜体
trad: Traditional CJK forms传统CJK样式
jp78: JIS 1978 CJK forms日本JIS1978CJK样式
jp83: JIS 1983 CJK forms日本JIS1983CJK样式
expt: Expert CJK forms专家CJK样式
nlck: NLC Kanji forms NLC汉字格式
ruby: Ruby notation forms注音字符样式
pwid: Proportional CJK widths比例CJK宽度
fwid: Full CJK widths全角CJK宽度
hwid: Half CJK widths半角CJK宽度
twid: Third CJK widths三分之一CJK宽度
qwid: Quarter CJK widths四分之一CJK宽度
palt: Alternate proportional CJK widths变C比例JK宽度
halt: Alternate half CJK widths变半角CJK宽度
vert or vrt2: Optimised kana vertical alternates
本列表不完整
以下功能是被确认不支援的:
mark: Mark‐ o‐ase positioning
mkmk: Mark‐ o‐mark positioning
mset: Mark positioning via substitution
nukt: Nukta form
akhn: Akhand ligature
rphf: Reph form
blwf: Below-base form底基线样式
half: Half-form (pre-base form)
pstf: Post-base form
vatu: Vattu variants
pres: Pre-base substitution
blws: Below-base substitution
abvs: Above-base substitution
psts: Post-base substitution
haln: Halant form substitution
blwm: Below-base mark positioning
abvm: Above-base mark positioning
dist: Distances
TA的推荐TA的最新馆藏[转]&[转]&[转]&
喜欢该文的人也喜欢

我要回帖

更多关于 matlab设置字体类型 的文章

 

随机推荐