Uszkodzona czcionka na AWS Lambda
Renderowanie dokumentu PDF w Linuxie może skutkować uszkodzonymi znakami, jak pokazano na poniższym obrazie. Czasami znaki wydają się prawidłowo renderować w środowisku Windows, ale nie w Linux.

Powód
Powodem jest brak czcionki w systemie operacyjnym.
Rozwiązania
Jeśli znasz już nazwę czcionki, to świetnie—możesz pominąć krok 1.
- Aby znaleźć nazwę czcionki, spróbuj renderować HTML na Windows i użyj Adobe do zbadania znaków.
- Po zidentyfikowaniu nazwy czcionki możesz pobrać plik czcionki online, na przykład z Google Fonts.
- Aby dodać i zainstalować czcionkę przez Dockerfile, umieść czcionkę w projekcie i ustaw 'Kopiuj do katalogu wyjściowego' na 'Kopiuj zawsze.' Następnie użyj poniższego kodu, aby dodać i zainstalować ją w 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
Wyjaśnienie
-
COPY cambria.ttc /usr/share/fonts/: Ta linia kopiuje czcionkę Cambria Math z katalogu projektu do katalogu czcionek w kontenerze. Upewnij się, że plik czcionki (
cambria.ttc) jest obecny w katalogu projektu. -
RUN dnf install -y fontconfig && \: To polecenie instaluje pakiet
fontconfig, który jest niezbędny do zarządzania i konfigurowania dostępu do czcionek w Linuxie. Flaga-yautomatycznie potwierdza instalację pakietu. - fc-cache -fv: To polecenie aktualizuje pamięć podręczną czcionek, zapewniając, że nowo skopiowane czcionki są dostępne dla aplikacji w kontenerze. Flagi
-f(force) i-v(verbose) są używane do wymuszenia ponownego generowania pamięci podręcznej i zapewnienia szczegółowego wyniku, odpowiednio.

