Broken Font on AWS Lambda

This article was translated from English: Does it need improvement?
Translated
View the article in English

Rendre un document PDF sous Linux pourrait entraîner des caractères cassés, comme montré dans l'image ci-dessous. Parfois, les caractères semblent se rendre correctement sur un environnement Windows, mais pas sur Linux.

Caractère cassé

Raison

La raison est que la police est manquante du système d'exploitation.

Solutions

Si vous connaissez déjà le nom de la police, c'est parfait—vous pouvez passer à l'étape 1.

  1. Pour trouver le nom de la police, essayez de rendre le HTML sous Windows et utilisez Adobe pour inspecter les caractères.
  2. Une fois le nom de la police identifié, vous pouvez télécharger le fichier de police en ligne, par exemple sur Google Fonts.
  3. Pour ajouter et installer la police via le Dockerfile, placez la police dans le projet et réglez 'Copier dans le répertoire de sortie' sur 'Toujours copier.' Ensuite, utilisez le code suivant pour l'ajouter et l'installer dans le Dockerfile :
# Copy the Cambria Math font into the container
# Ensure the font file (cambria.ttc) exists in your project directory
COPY cambria.ttc /usr/share/fonts/

# Install fontconfig to update the font cache
# This will install fontconfig and refresh the font cache to recognize the newly added fonts
RUN dnf install -y fontconfig && \
    fc-cache -fv

Explication

  • COPY cambria.ttc /usr/share/fonts/ : Cette ligne copie la police Cambria Math de votre répertoire de projet dans le répertoire des polices du conteneur. Assurez-vous que le fichier de police (cambria.ttc) est présent dans le répertoire du projet.

  • RUN dnf install -y fontconfig && \ : Cette commande installe le package fontconfig, nécessaire pour gérer et configurer l'accès aux polices sous Linux. L'option -y confirme automatiquement l'installation du package.

  • fc-cache -fv : Cette commande met à jour le cache des polices, assurant que les nouvelles polices copiées soient disponibles pour les applications au sein du conteneur. Les options -f (forcer) et -v (verbeux) sont utilisées pour forcer une régénération du cache et fournir une sortie détaillée, respectivement.
Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 16,154,058 | Version : 2025.11 vient de sortir