Fonte quebrada no AWS Lambda
A renderização de um documento PDF no Linux pode resultar em caracteres corrompidos, como mostrado na imagem abaixo. Às vezes, os caracteres parecem ser exibidos corretamente em um ambiente Windows, mas não no Linux.

Razão
O motivo é que a fonte está faltando no sistema operacional.
Soluções
Se você já sabe o nome da fonte, ótimo — pode pular a etapa 1.
- Para descobrir o nome da fonte, tente renderizar o HTML no Windows e use o Adobe para inspecionar os caracteres.
- Depois de identificar o nome da fonte, você pode baixar o arquivo da fonte online, por exemplo, do Google Fonts .
- Para adicionar e instalar a fonte via Dockerfile, coloque a fonte no projeto e defina 'Copiar para o diretório de saída' como 'Copiar sempre'. Em seguida, use o seguinte código para adicioná-la e instalá-la no 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
Explicação
-
COPY cambria.ttc /usr/share/fonts/ : Esta linha copia a fonte Cambria Math do diretório do seu projeto para o diretório de fontes do contêiner. Certifique-se de que o arquivo de fonte (
cambria.ttc) esteja presente no diretório do projeto. -
RUN dnf install -y fontconfig && \ : Este comando instala o pacote
fontconfig, necessário para gerenciar e configurar o acesso a fontes no Linux. A flag-yconfirma automaticamente a instalação do pacote. - fc-cache -fv : Este comando atualiza o cache de fontes, garantindo que as fontes recém-copiadas estejam disponíveis para os aplicativos dentro do contêiner. Os parâmetros
-f(forçar) e-v(verbose) são usados para forçar uma regeneração do cache e fornecer uma saída detalhada, respectivamente.

