[ Web Proxy ]
URL:
Viewing: https://developer.mozilla.org/fr/docs/Web/API/Window/queryLocalFonts [Back]  [Original]

Window : mthode queryLocalFonts() - Les API Web | MDN

Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.

View in English Always switch to English

Window : mthode queryLocalFonts()

Disponibilit limite

Cette fonctionnalit n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utiliss.

Vous voulez une meilleure prise en charge pour cette fonctionnalit ? Dites-nous pourquoi.

Exprimental: Il s'agit d'une technologie exprimentale.
Vrifiez attentivement le tableau de compatibilit des navigateurs avant de l'utiliser en production.

Contexte scuris: Cette fonctionnalit est uniquement disponible dans des contextes scuriss (HTTPS), pour certains navigateurs qui la prennent en charge.

La mthode queryLocalFonts() de l'interface Window retourne une promesse (Promise) qui se rsout avec un tableau d'objets FontData reprsentant les polices disponibles localement.

Pour utiliser cette mthode, l'utilisateurice doit accorder l'autorisation d'accder aux local-fonts (le statut de l'autorisation peut tre interrog avec l'API Permissions). De plus, cette fonctionnalit peut tre bloque par une Politique d'autorisations dfinie sur votre serveur.

Dans cet article

Syntaxe

js
queryLocalFonts(options)

Paramtres

options Facultatif

Contient des paramtres de configuration optionnels. Actuellement, une seule proprit est dfinie :

postscriptNames Facultatif

Un tableau de noms PostScript de polices. Si cette option est dfinie, seules les polices dont les noms PostScript correspondent ceux du tableau seront incluses dans les rsultats ; sinon, toutes les polices seront incluses dans les rsultats.

Valeur de retour

Une promesse (Promise) qui se rsout avec un tableau d'objets FontData reprsentant les polices disponibles localement.

Exceptions

NotAllowedError DOMException

L'utilisateurice a choisi de refuser l'autorisation d'utiliser cette fonctionnalit lorsqu'il a t prsent avec l'invite de permission du navigateur aprs que la mthode a t invoque pour la premire fois.

SecurityError DOMException

L'utilisation de cette fonctionnalit a t bloque par une Politique d'autorisations, ou elle n'a pas t appele via une interaction de l'utilisateurice telle qu'un clic sur un bouton, ou l'origine actuelle est une origine opaque.

Exemples

Pour un exemple interactif fonctionnel, consultez notre dmonstration de l'API d'accs aux polices locales (angl.).

numration des polices

L'extrait suivant interrogera toutes les polices disponibles et enregistrera les mtadonnes. Cela pourrait tre utilis, par exemple, pour remplir un contrle de slection de polices.

js
async function journaliserFontData() {
  try {
    const policesDisponibles = await window.queryLocalFonts();
    for (const fontData of policesDisponibles) {
      console.log(fontData.postscriptName);
      console.log(fontData.fullName);
      console.log(fontData.family);
      console.log(fontData.style);
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

Limiter les rsultats retourns

Pour limiter les donnes de polices retournes une liste spcifique de polices, utilisez l'option postscriptNames.

js
async function retournerPolicesSpecifiques() {
  const policesDisponibles = await window.queryLocalFonts({
    postscriptNames: ["Verdana", "Verdana-Bold", "Verdana-Italic"],
  });

  return policesDisponibles;
}

Accder aux donnes de bas niveau

La mthode blob() fournit un accs aux donnes SFNT (angl.) de bas niveau il s'agit d'un format de fichier de police qui peut contenir d'autres formats de police, tels que PostScript, TrueType, OpenType ou Web Open Font Format (WOFF).

js
async function calculerFormatContour() {
  try {
    const policesDisponibles = await window.queryLocalFonts({
      postscriptNames: ["ComicSansMS"],
    });
    for (const fontData of policesDisponibles) {
      // `blob()` retourne un Blob contenant des donnes SFNT valides et compltes.
      const sfnt = await fontData.blob();
      // Extraire uniquement les octets dont nous avons besoin : les 4 premiers octets sont les informations de version SFNT.
      // Spcification : https://learn.microsoft.com/en-us/typography/opentype/spec/otff#organization-of-an-opentype-font
      const sfntVersion = await sfnt.slice(0, 4).text();

      let formatContour = "UNKNOWN";
      switch (sfntVersion) {
        case "\x00\x01\x00\x00":
        case "true":
        case "typ1":
          formatContour = "truetype";
          break;
        case "OTTO":
          formatContour = "cff";
          break;
      }
      console.log("Format de contour :", formatContour);
    }
  } catch (err) {
    console.error(err.name, err.message);
  }
}

Spcifications

Spcification
Local Font Access API
# dom-window-querylocalfonts

Compatibilit des navigateurs

Voir aussi


Web Proxy Viewer  |  New URL  |  Original Page