Broken Font on AWS Lambda

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

Das Rendern eines PDF-Dokuments in Linux könnte zu kaputten Zeichen führen, wie im Bild unten gezeigt. Manchmal scheinen die Zeichen in einer Windows-Umgebung richtig zu rendern, aber nicht auf Linux.

Kaputtes Zeichen

Grund

Der Grund ist, dass die Schriftart im Betriebssystem fehlt.

Lösungen

Wenn Sie den Schriftartnamen bereits kennen, ist das großartig - Sie können Schritt 1 überspringen.

  1. Um den Schriftartnamen zu finden, versuchen Sie das HTML auf Windows zu rendern und verwenden Sie Adobe, um die Zeichen zu inspizieren.
  2. Sobald der Schriftartname identifiziert ist, können Sie die Schriftartdatei online herunterladen, zum Beispiel von Google Fonts.
  3. Um die Schriftart über die Dockerfile hinzuzufügen und zu installieren, legen Sie die Schriftart im Projekt ab und stellen Sie 'Kopieren in das Ausgabeverzeichnis' auf 'Immer kopieren.' ein. Verwenden Sie dann den folgenden Code, um sie in die Dockerfile hinzuzufügen und zu installieren:
# 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

Erklärung

  • COPY cambria.ttc /usr/share/fonts/: Diese Zeile kopiert die Cambria Math-Schriftart aus Ihrem Projektverzeichnis in das Schriftartenverzeichnis des Containers. Stellen Sie sicher, dass die Schriftartdatei (cambria.ttc) im Projektverzeichnis vorhanden ist.

  • RUN dnf install -y fontconfig && \: Dieser Befehl installiert das fontconfig-Paket, das für die Verwaltung und Konfiguration des Schriftzugriffs in Linux notwendig ist. Das -y-Flag bestätigt automatisch die Installation des Pakets.

  • fc-cache -fv: Dieser Befehl aktualisiert den Schriftarten-Cache, wodurch sichergestellt wird, dass die neu kopierten Schriftarten für Anwendungen im Container verfügbar sind. Die Flags -f (erzwingen) und -v (detailliert) werden verwendet, um eine erneute Generierung des Caches zu erzwingen und eine detaillierte Ausgabe zu geben.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen
Bereit anzufangen?
Nuget Downloads 16,154,058 | Version: 2025.11 gerade veröffentlicht