Fuente rota en AWS Lambda

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

Renderizar un documento PDF en Linux podría resultar en caracteres rotos, como se muestra en la imagen a continuación. A veces, los caracteres parecen renderizarse correctamente en un entorno Windows, pero no en Linux.

Personaje roto

Razón

La razón es que la fuente falta en el sistema operativo.

Soluciones

Si ya conoces el nombre de la fuente, eso es genial, puedes saltarte el paso 1.

  1. Para encontrar el nombre de la fuente, intenta renderizar el HTML en Windows y usa Adobe para inspeccionar los caracteres.
  2. Una vez identificado el nombre de la fuente, puedes descargar el archivo de fuente en línea, como desde Google Fonts.
  3. Para agregar e instalar la fuente a través del Dockerfile, coloca la fuente en el proyecto y configura 'Copiar en el Directorio de Salida' a 'Copiar Siempre.' Luego, usa el siguiente código para agregarla e instalarla en el 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

Explicación

  • COPY cambria.ttc /usr/share/fonts/: Esta línea copia la fuente Cambria Math desde el directorio de tu proyecto al directorio de fuentes del contenedor. Asegúrese de que el archivo de fuente (cambria.ttc) esté presente en el directorio del proyecto.

  • EJECUTAR dnf install -y fontconfig && \ : Este comando instala el paquete fontconfig, que es necesario para administrar y configurar el acceso a fuentes en Linux. La bandera -y confirma automáticamente la instalación del paquete.

  • fc-cache -fv: Este comando actualiza la caché de fuentes, asegurando que las fuentes recién copiadas estén disponibles para las aplicaciones dentro del contenedor. Los indicadores -f (forzar) y -v (verbose) se utilizan para forzar una regeneración del caché y proporcionar una salida detallada, respectivamente.
Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien ...

Leer más
¿Listo para empezar?
Nuget Descargas 17,803,474 | Versión: 2026.3 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronPdf
ejecutar una muestra Mira cómo tu HTML se convierte en PDF.