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.

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 sie, ze plik czcionki (
cambria.ttc) jest obecny w katalogu projektu. -
RUN dnf install -y fontconfig && \: To polecenie instaluje pakiet
fontconfig, ktory jest niezbędny do zarządzania i konfigurowania dostepu do czcionek w Linuxie. Flaga-yautomatycznie potwierdza instalacje 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) sa używane do wymuszęnia ponownego generowania pamięci podrecznej i zapewnienia szczegółowego wyniku, odpowiednio.

