论坛首页 编程语言技术论坛

解决Flex打印中文字体模糊的问题

浏览 7165 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-27  
在打印测试时候发现中文字体模糊。记得使用ubuntu时候也有类似字体模糊的问题。这些一般来说是没有使用中文字体的缘故。
解决方案:Flex SDK example printJobExample实例中
<mx:Style>
   @font-face {                       #fontFamily下可以使用myFont了。
     src:url("assets/simsun.ttc");  #复制win下的字体simsun.ttc到assets下。
     fontFamily: myFont;            #font的别名为myFont
     advancedAntiAliasing: true;
  } 
.myPrintFont {
    fontSize: 14;
    fontFamily: myFont;
}
</mx:Style>

<mx:PrintDataGrid id="myDataGrid" width="60%" height="100%" styleName="myPrintFont">

字体设置完成
   发表时间:2008-10-27  
这样不好吧,你有没有看看simsun.ttc这个文件有多大?
0 请登录后投票
   发表时间:2008-10-28  
treenode 写道
这样不好吧,你有没有看看simsun.ttc这个文件有多大?


simsun有10M,是满大的。编译后的swf也有7M(debug)。还真没注意。

不过我是给企业做的AIR客户端,他们的打印要求很苛刻。

再研究研究 看能不能直接使用用户自己的simsun字体。
0 请登录后投票
   发表时间:2008-10-30  
flex支持三种字体渲染引擎 : Batik AFE JRE
在flex-config.xml 默认是全部开启的。
只有JRE支持系统字体,但是渲染效果比其他两个差。

<fonts>
    <managers>
        <manager-class>flash.fonts.JREFontManager</manager-class>
        <manager-class>flash.fonts.AFEFontManager</manager-class>
        <manager-class>flash.fonts.BatikFontManager</manager-class>
    </managers>
</fonts>

只需要指定fontFamily就可以了。
.myPrintFont {
    fontSize: 12;
   
    fontFamily: myPlainFont,Verdana;
}
@font-face {
    src:local("SimHei");
    fontFamily: myPlainFont;
    advancedAntiAliasing: true;
}
使用local稍微会增加 查找字体的开销。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics