Fehlerhafte Schriftart auf AWS Lambda
Das Rendern eines PDF-Dokuments unter Linux kann zu fehlerhaften Zeichen führen, wie in der Abbildung unten dargestellt. Manchmal werden die Zeichen unter der Windows-Umgebung korrekt dargestellt, unter Linux jedoch nicht.

Begründung
Der Grund dafür ist, dass die Schriftart im Betriebssystem fehlt.
Lösungen
Wenn Sie den Namen der Schriftart bereits kennen, ist das großartig – Sie können Schritt 1 überspringen.
- Um den Namen der Schriftart zu ermitteln, versuchen Sie, den HTML-Code unter Windows darzustellen, und überprüfen Sie die Zeichen mit Adobe.
- Sobald der Name der Schriftart ermittelt wurde, können Sie die Schriftartdatei online herunterladen, beispielsweise von Google Fonts.
- Um die Schriftart über die Dockerfile hinzuzufügen und zu installieren, legen Sie die Schriftart im Projekt ab und setzen Sie "Copy to Output Directory" auf "Copy Always". Verwenden Sie anschließend den folgenden Code, um sie in der 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
Erläuterung
-
COPY cambria.ttc /usr/share/fonts/: Diese Zeile kopiert die Schriftart "Cambria Math" 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 Paket
fontconfig, das für die Verwaltung und Konfiguration des Zugriffs auf Schriftarten unter Linux erforderlich ist. Das Flag-ybestätigt automatisch die Installation des Pakets. - fc-cache -fv: Dieser Befehl aktualisiert den Schriftart-Cache und stellt sicher, dass die neu kopierten Schriftarten für Anwendungen innerhalb des Containers verfügbar sind. Die Flags
-f(force) und-v(verbose) werden verwendet, um eine Neugenerierung des Caches zu erzwingen bzw. eine detaillierte Ausgabe zu liefern.

