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 skutkować uszkodzonymi znakami, jak pokazano na poniższym obrazie. Czasami znaki wydają się prawidłowo renderować w środowisku Windows, ale nie w Linux.

Uszkodzony znak

Powód

Powodem jest brak czcionki w systemie operacyjnym.

Rozwiązania

Jeśli znasz już nazwę czcionki, to świetnie—możesz pominąć krok 1.

  1. Aby znaleźć nazwę czcionki, spróbuj renderować HTML na Windows i użyj Adobe do zbadania znaków.
  2. Po zidentyfikowaniu nazwy czcionki możesz pobrać plik czcionki online, na przykład z Google Fonts.
  3. 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 -y automatycznie 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.
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,135,201 | Wersja: 2026.4 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.