Uszkodzona czcionka na AWS Lambda
Renderowanie dokumentu PDF w Linuxie może skutkowac uszkodzonymi znakami, jak pokazano na poniższym obrazie. Czasami znaki wydaja sie prawidłowo renderować w środowisku Windows, ale nie w Linux.
Uszkodzony znak
Powod
Powodem jest brak czcionki w systemie operacyjnym.
Rozwiązania
Jeśli znasz juz nazwe czcionki, to świetnie—możesz pominac krok 1.
- Aby znalezc nazwe czcionki, sproboj renderować HTML na Windows i uzyj Adobe do zbadania znakow.
- Po zidentyfikowaniu nazwy czcionki możesz pobrac plik czcionki online, na przykład z Google Fonts.
- Aby dodac i zainstalować czcionke przez Dockerfile, umiesc czcionke w projekcie i ustaw 'Kopiuj do katalogu wyjsciowego' na 'Kopiuj zawsze.' Następnie uzyj poniższego kodu, aby dodac i zainstalować ja 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 czcionke 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 && \: Ta komenda instaluje pakiet
fontconfig, który jest niezbędny do zarządzania i konfiguracji dostępu do czcionek w Linux. Flaga-yautomatycznie potwierdza instalację pakietu. - fc-cache -fv: To polecenie aktualizuje pamięć podreczna czcionek, zapewniając, ze nowo skopiowane czcionki sa dostępne dla aplikacji w kontenerze. Flagi
-f(force) i-v(verbose) używane są by wymusić ponowną generację pamięci podręcznej i zapewnić szczegółowe wyjście odpowiednio.

