Limited availability
å®éªæ§: è¿æ¯ä¸é¡¹å®éªæ§ææ¯
å¨å°å
¶ç¨äºç产ä¹åï¼è¯·ä»ç»æ£æ¥æµè§å¨å
¼å®¹æ§è¡¨æ ¼ã
FontData
æ¥å£ç blob()
æ¹æ³è¿åä¸ä¸ªä¼å
ç°å
å«åºå±å使件çåå§åèç Blob
ç Promise
ã
æ ã
è¿åå¼ä¸ä¸ªä¼å
ç°å
å«åºå±å使件çåå§åèç Blob
ç Promise
ã
blob()
æ¹æ³æä¾å¯¹åºå± SFNT æ°æ®ç访é®ââè¿æ¯ä¸ç§å¯ä»¥å
å«å
¶ä»å使 ¼å¼çåä½æä»¶æ ¼å¼ï¼ä¾å¦ PostScriptãTrueTypeãOpenType æ Web 弿¾å使 ¼å¼ï¼WOFFï¼ã
async function computeOutlineFormat() {
try {
const availableFonts = await window.queryLocalFonts({
postscriptNames: ["ComicSansMS"],
});
for (const fontData of availableFonts) {
// `blob()` æ¹æ³è¿åä¸ä¸ªå
嫿æä¸å®æ´ç SFNT å
è£
å使°æ®ç Blobã
const sfnt = await fontData.blob();
// ä»
è£åªåºæä»¬éè¦çåèé¨åï¼å 4 个åèæ¯ SFNT çæ¬ä¿¡æ¯ã
// è§èï¼https://learn.microsoft.com/zh-cn/typography/opentype/spec/otff#organization-of-an-opentype-font
const sfntVersion = await sfnt.slice(0, 4).text();
let outlineFormat = "UNKNOWN";
switch (sfntVersion) {
case "\x00\x01\x00\x00":
case "true":
case "typ1":
outlineFormat = "truetype";
break;
case "OTTO":
outlineFormat = "cff";
break;
}
console.log("ç¢éå使 ¼å¼ï¼", outlineFormat);
}
} catch (err) {
console.error(err.name, err.message);
}
}
è§è æµè§å¨å
¼å®¹æ§ åè§
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4