| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/API/Local_Font_Access_API | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Experimentell: Dies ist eine experimentelle Technologie
berprfen Sie die Browser-Kompatibilittstabelle sorgfltig vor der Verwendung auf produktiven Webseiten.
Die Local Font Access API bietet einen Mechanismus, um auf die lokal installierten Schriftartdaten des Benutzers zuzugreifen dazu gehren hhere Details wie Namen, Stile und Familien sowie die Rohdaten der zugrunde liegenden Schriftartdateien.
Webfonts waren revolutionr, indem sie Typografie im Web ermglichten, da sie Webdesignern erlauben, benutzerdefinierte Schriften bereitzustellen, die in einem Webdokument verwendet werden knnen. Angegeben ber die @font-face-Regel, kann ein Webfont von einer in der url()-Funktion bereitgestellten URL geladen werden.
@font-face hat mehrere andere ntzliche Funktionen. Insbesondere knnen Sie den vollstndigen Namen oder Postscript-Namen der Schriftart in der Funktion local() angeben, um dem Browser mitzuteilen, dass er eine lokale Kopie verwenden soll, wenn der Benutzer die Schriftart auf seinem Computer installiert hat. Dies ist nicht ohne Probleme local() ist berchtigt geworden als ein Fingerprinting-Vektor.
Darber hinaus waren High-End-Designtools historisch schwer im Web bereitzustellen, aufgrund von Herausforderungen bei der genauen Schrifterkennung und dem Zugriff auf niedere Schriftartdaten (zum Beispiel, um Filter und Transformationen anzuwenden). Aktuelle Apps verlassen sich oft auf Workarounds, wie zum Beispiel den Benutzern zu bitten, ihre Schriftarten auf einen Server hochzuladen, wo sie verarbeitet werden, um Rohdatendaten zu erhalten, oder ein separates lokales Programm zu installieren, um zustzliche Funktionen bereitzustellen.
Die Local Font Access API wurde erstellt, um diese Probleme zu lsen.
Die Methode Window.queryLocalFonts() bietet Zugriff auf ein Array lokal installierter Schriften, die jeweils durch eine FontData-Objektinstanz reprsentiert werden. FontData hat mehrere Eigenschaften, die Zugriff auf Namen, Stile und Familien bieten, und es hat auch eine blob()-Methode, die Zugriff auf ein Blob bietet, das die Rohdaten der zugrunde liegenden Schriftartdatei enthlt.
In Bezug auf Datenschutz und Sicherheit:
Window.queryLocalFonts() aufgerufen wird, wird der Benutzer um Erlaubnis gebeten, auf seine lokalen Schriftarten zuzugreifen. Der Status dieser Erlaubnis kann ber die Permissions API abgefragt werden (die Berechtigung local-fonts).local-fonts Permissions Policy steuern.FontDataReprsentiert ein einzelnes lokales Schriftbild.
Window.queryLocalFonts()Gibt ein Promise zurck, das mit einem Array von FontData-Objekten erfllt wird, die die lokal verfgbaren Schriftbilder reprsentieren.
Fr eine funktionierende Live-Demo, siehe unser Local Font Access API-Demo.
if ("queryLocalFonts" in window) {
// The Local Font Access API is supported
}
Das folgende Snippet fragt nach allen verfgbaren Schriftarten und protokolliert Metadaten. Dies knnte verwendet werden, um beispielsweise ein Schriftarten-Auswahlsteuerung zu fllen.
async function logFontData() {
try {
const availableFonts = await window.queryLocalFonts();
for (const fontData of availableFonts) {
console.log(fontData.postscriptName);
console.log(fontData.fullName);
console.log(fontData.family);
console.log(fontData.style);
}
} catch (err) {
console.error(err.name, err.message);
}
}
Die blob()-Methode bietet Zugriff auf niedrigstufige SFNT-Daten dies ist ein Schriftartdateiformat, das andere Schriftformate enthalten kann, wie PostScript, TrueType, OpenType oder Web Open Font Format (WOFF).
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);
}
}
| Spezifikation |
|---|
| Local Font Access API |
@font-facelocal-fonts-Richtlinie Permissions PolicyDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |