某些本地字体无法在浏览器上呈现

时间:2017-11-09 12:43:06

标签: html css fonts font-family

我创建了一个小应用程序来查看浏览器上的所有本地字体。 (Demo)

我使用Flash获取字体名称:

import flash.external.ExternalInterface;

ExternalInterface.call("getFontList", getDeviceFonts());

function getDeviceFonts(): Array {
    var embeddedAndDeviceFonts: Array = Font.enumerateFonts(true);

    var deviceFontNames: Array = [];
    for each(var font: Font in embeddedAndDeviceFonts) {
        deviceFontNames.push(font.fontName);
    }
    deviceFontNames.sort();

    return deviceFontNames;
}

以后处理名称并创建一个4列布局来查看它们:

function getFontList(fontList) {
    $("#flash").remove();

    fontList.forEach(function (fontName) {
        var cell = elem("div", {"class":"tile"}, [
                    elem("div", {"class":"fontName"}, fontName),
                    elem("div", {"class":"demo", "style":"font-family: \"" + fontName.replace(/"/g, '\\"') + "\", Consolas, Arial;"}),
                ]);
        output.append(cell);
    });

    updateCells($("#input").val());
}

这样做很好,但有一些小问题。某些字体无法在浏览器上呈现,并且应用了后备字体。

例如,此字体:!PaulMaul。我可以在MS Word和Photoshop上查看:

enter image description here

enter image description here

这就是它在浏览器上的外观(Consolas应用):

enter image description here

我之前没有遇到过这样的事情,所以我不知道问题所在。我认为任何本地字体都可以在浏览器上使用,特别是如果MS Word和PS可以使它们正常。我猜,这不是真的。

这里究竟出现了什么问题,有没有办法解决这个问题?

应用程序可在Github上找到,如果有人想要修补。

0 个答案:

没有答案