Uszkodzona czcionka na AWS Lambda

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

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.

  1. Aby znalezc nazwe czcionki, sproboj renderować HTML na Windows i uzyj Adobe do zbadania znakow.
  2. Po zidentyfikowaniu nazwy czcionki możesz pobrac plik czcionki online, na przykład z Google Fonts.
  3. 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 -y automatycznie 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.
Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 18,926,724 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronPdf
Uruchom przykład i zobacz, jak Twój kod HTML zamienia się w plik PDF.