persian字体未在android WebView中应用

时间:2014-08-18 06:46:12

标签: android html css fonts webview

我有html内容(合并波斯语和英文文本)和附加的css,所有css样式都正确应用但字体。

css有这样的字体:

@font-face{
        font-family: 'BYekan';
        font-weight: normal;
        font-style: normal;
        src: url(../Fonts/BYekan.ttf); 
    }

该字体仅适用于英文文本,而不适用于波斯语。该字体是标准的 ttf 波斯语字体(BYekan.ttf),所以没有错误。

我google了很多,几乎每个人都说这是WebView android>中的一个错误。 3.0,问题仍然存在于android 4中。

https://code.google.com/p/android/issues/detail?id=38536 https://groups.google.com/forum/#!topic/persian-computing/4Fm7JfiOkJk

我找到的唯一解决方法是使用 svg 字体,但对我不起作用Custom font for webview

那我怎么解决这个问题呢?

note1 :这个问题很多问了很多,像这样:
Persian @font-face doesn't work in Chrome, Bug or not?
但这是一个老问题,给定的建议不再适用(至少对我而言)。

note2 :当我正确应用Chrome桌面浏览器字体打开页面时。

2 个答案:

答案 0 :(得分:1)

我找到了解决方法

尝试这些字体

@font-face {
font-family: 'yekan’;
src:url('fonts/yekan.eot?#’) format(‘eot’),    
      url('fonts/yekan.woff') format('woff'),
      url(‘fonts/yekan.ttf’) format(‘truetype’); 
}

IMO使用SVG font获取波斯语

答案 1 :(得分:0)

我已在您的问题中转换了上述字体,并将其上传到以下互联网地址:

bYekan Web Font Package

此外,您必须使用以下样式行:

@font-face {
    font-family: 'BYekan';
    src: url('../Fonts/byekan-webfont.eot');
    src: url('../Fonts/byekan-webfont.ttf') format('truetype'), url('../Fonts/byekan-webfont.eot?#iefix') format('embedded-opentype'), url('../Fonts/byekan-webfont.woff') format('woff'), url('../Fonts/byekan-webfont.svg#BYekan') format('svg');
    font-weight: normal;
    font-style: normal;
}

并且,您应该在 .htaccess 文件中添加以下行:

AddType application/vnd.ms-fontobject .eot
AddType font/ttf .ttf
AddType font/otf .otf
AddType application/x-font-woff .woff