检查字体是否安装在ASP.NET中的客户端计算机中

时间:2009-12-09 06:24:15

标签: asp.net fonts installation

在我的ASP.NET应用程序中,我使用Calibri作为样式表中的字体。但Calibri附带Office 2007,所以我的样式表不适用于那些没有安装特定字体的客户机。那么如何检查客户端计算机中是否存在字体,如果没有,我可以在网页打开时将其安装到计算机上吗?

3 个答案:

答案 0 :(得分:2)

不是完美的解决方案,但您可以输入替代字体。如:

SomeClass
{
    font-family:'Calibri,Arial';
}

如果不是Calibri,只要找到“足够好”的东西。

答案 1 :(得分:2)

如果您需要特定字体,请参阅http://msdn.microsoft.com/en-us/library/ms533034(VS.85).aspx - 您可以在HTML中嵌入字体,而无需在最终用户计算机上安装字体。

答案 2 :(得分:0)

最好的解决方案(适用于所有浏览器,与sascha的答案不同)是使用javascript动态检测用户是否安装了Calibri。

我实际上最近写了blog entry来解释如何执行此操作,但简而言之,获取jquery font并使用此功能:

Javascript代码

font.setup();

if (font.isInstalled("Calibri"))
    ImportCss("calibri.css");

function ImportCss(name) {
    if (document.createStyleSheet) {
        document.createStyleSheet('/static/' + name);
    }
    else {
        var styles = '/static/' + name;
        var newSS = document.createElement('link');
        newSS.rel = 'stylesheet';
        newSS.type = 'text/css';
        newSS.href = styles;
        document.getElementsByTagName("head")[0].appendChild(newSS);
    }
}

<强> calibri.css

正文,输入/ * Google Chrome所需的输入,因为它使用了另一个              *否则输入字体* / {     font-family:Calibri!important;     font-size:16px!important; }

注意

你不能只做font-family: Calibri, Arial, ...的原因是Arial在16px时看起来很糟糕,Calibri在13px看起来很糟糕。