1. Qu'est-ce que OTF ?

OTF (OpenType Font) est un format de police développé conjointement par Adobe et Microsoft,
qui étend les fonctions de .ttf (TrueType Font) tout en incluant des fonctionnalités typographiques avancées.

  • ✅ Fonctionnalités variées des polices (ligatures, lettres alternatives, etc.)
  • ✅ Support Unicode
  • ✅ Plus de polyvalence que .ttf (particulièrement apprécié dans les outils de design professionnels)

Sur Ubuntu, les polices OTF sont particulièrement utilisées comme polices pour le système ou pour le rendu PDF.


2. Vérifier les polices OTF installées sur Ubuntu

Vous pouvez le vérifier avec la commande suivante dans le terminal :

fc-list | grep "\.otf"

Vous pouvez également filtrer par nom de police spécifique :

fc-list | grep "Nimbus Sans" | grep "\.otf"

3. Lorsque vous souhaitez utiliser les polices système sur le web

Les polices installées sur le système ne peuvent pas être utilisées directement sur le web.
Parce que l'ordinateur du client accédant au site peut ne pas avoir cette police.

→ Par conséquent, la police doit être fournie par le serveur web, et le format le plus efficace est .woff2.


4. La conversion OTF → WOFF2 est essentielle !

Illustration de conversion de police OTF à WOFF2

📦 Installer l'outil de conversion

sudo apt install woff2

🔄 Commande de conversion

woff2_compress YourFont.otf

→ Résultat : YourFont.woff2

Script de conversion automatique

#!/bin/bash
export LC_ALL=C
# [1] Nom de la police cible
read -p "Entrez les polices à convertir en woff2 : " FONT_NAME

# [2] Définir le chemin de sauvegarde des résultats
DEST_DIR="$HOME/fonts/$(echo $FONT_NAME | tr ' ' '_' | tr '[:upper:]' '[:lower:]')/woff2"

# [3] Vérifier l'outil de conversion
if ! command -v woff2_compress &> /dev/null; then
    echo "❌ La commande 'woff2_compress' n'est pas disponible. Veuillez l'installer :"
    echo "    sudo apt install woff2"
    exit 1
fi

# [4] Créer le dossier de résultats
mkdir -p "$DEST_DIR"

# [5] Extraire uniquement les chemins de polices .otf dans la liste des polices système contenant FONT_NAME
echo "🔍 Recherche des polices '$FONT_NAME' avec l'extension .otf..."
font_paths=$(fc-list | grep "$FONT_NAME" | grep "\\.otf" | cut -d: -f1 | sort | uniq)

if [ -z "$font_paths" ]; then
    echo "❌ Aucune police .otf correspondant à '$FONT_NAME' trouvée."
    exit 1
fi

# [6] Boucle d'exécution de conversion
for font_file in $font_paths; do
    base_name=$(basename "$font_file" .otf)
    output_file="$DEST_DIR/${base_name}.woff2"

    if [ -f "$output_file" ]; then
        echo "⚠️  Déjà existant : $output_file → Skip"
        continue
    fi

    echo "🔄 Conversion : $base_name.otf → $base_name.woff2"

    if ! cp "$font_file" "/tmp/${base_name}.otf"; then
        echo "❌ Échec de la copie : $font_file → Skip"
        continue
    fi

    woff2_compress "/tmp/${base_name}.otf"
    mv "/tmp/${base_name}.woff2" "$output_file"
    rm "/tmp/${base_name}.otf"
    echo "✅ Sauvegardé : $output_file"
done

echo "🎉 Conversion terminée ! Emplacement de sauvegarde : $DEST_DIR"

Pour ceux qui en ont besoin, n'hésitez pas à utiliser le script ci-dessus que j'ai écrit. Il fonctionne très bien.


5. Comment utiliser le fichier woff2 converti sur le web

Placez-le dans le répertoire static/fonts/ de votre projet web et déclarez-le dans le CSS :

@font-face {
  font-family: 'Your Custom Font';
  src: url('/static/fonts/YourFont.woff2') format('woff2');
  font-weight: normal;
  font-style: normal;
}

Vous pouvez maintenant l'utiliser dans votre HTML comme suit :

<body style="font-family: 'Your Custom Font', sans-serif;">
  Bonjour ! C'est une police personnalisée.
</body>

6. Conclusion

Élément Point clé
.otf police Souvent installée sur les systèmes Ubuntu
Utilisation sur le web Doit être converti en .woff2 car absent sur le PC client
Méthodes d'optimisation Convertir avec woff2_compress puis servir depuis static
Résultats Chargement rapide des polices, possibilité de refléter des designs de police personnalisées

Pour les développeurs qui souhaitent connecter de plus en plus leur système Ubuntu aux services web,
la conversion otf → woff2 est une compétence précieuse à acquérir. 💪