FontData: blob()-Methode

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig, bevor Sie diese produktiv verwenden.

Die blob()-Methode des FontData Interfaces gibt ein Promise zurück, das mit einem Blob erfüllt wird, das die Rohbytes der zugrunde liegenden Schriftartdatei enthält.

Syntax

js
blob()

Parameter

Keine.

Rückgabewert

Ein Promise, das mit einem Blob erfüllt wird, das die Rohbytes der zugrunde liegenden Schriftartdatei enthält.

Beispiele

Die blob()-Methode bietet Zugriff auf Low-Level-SFNT-Daten — dies ist ein Schriftartdateiformat, das andere Schriftformate wie PostScript, TrueType, OpenType oder Web Open Font Format (WOFF) enthalten kann.

js
async function computeOutlineFormat() {
  try {
    const availableFonts = await window.queryLocalFonts({
      postscriptNames: ["ComicSansMS"],
    });
    for (const fontData of availableFonts) {
      // `blob()` returns a Blob containing valid and complete
      // SFNT-wrapped font data.
      const sfnt = await fontData.blob();
      // Slice out only the bytes we need: the first 4 bytes are the SFNT
      // version info.
      // Spec: https://learn.microsoft.com/en-us/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("Outline format:", outlineFormat);
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

Spezifikationen

Specification
Local Font Access
# ref-for-dom-fontdata-blob①

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch