Fuente rota en AWS Lambda: guía de resolución para entornos Linux

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.

Carácter 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úrate de que el archivo de fuente (cambria.ttc) esté presente en el directorio del proyecto.

  • RUN dnf install -y fontconfig && \: Este comando instala el paquete fontconfig, que es necesario para gestionar y configurar el acceso a las fuentes en Linux. El indicador -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. Las banderas -f (forzar) y -v (detallado) se utilizan para forzar una re-generación del caché y proporcionar una salida detallada, respectivamente.

Contexto español: fuentes en servicios de firma VeriFactu y TicketBAI alojados en AWS Lambda

Este problema de fuentes rotas tiene especial relevancia para los desarrolladores españoles que despliegan servicios de generación de facturas en AWS Lambda:

Certificados FNMT y renderizado de documentos con firma PAdES

El FNMT (Fábrica Nacional de Moneda y Timbre) emite certificados digitales para ciudadanos y empresas españolas. Los PDFs firmados con certificados FNMT bajo el estándar PAdES (PDF Advanced Electronic Signatures, requerido por eIDAS) a menudo incluyen campos de firma con texto en castellano que deben renderizarse correctamente. Si el contenedor Lambda carece de las fuentes adecuadas, el texto en el campo de firma aparecerá corrupto.

Fuentes para documentos legales en castellano (caracteres con tilde y ñ)

Los documentos fiscales españoles —facturas VeriFactu, registros SII, documentos Facturae— contienen caracteres castellanos como á, é, í, ó, ú, ñ, ü, ¿ y ¡. Para garantizar la correcta renderización en un contenedor Linux (AWS Lambda o Docker), se recomienda instalar Noto Sans con soporte para caracteres latinos extendidos:

# Instalar Noto Sans para soporte completo de caracteres castellanos
RUN dnf install -y google-noto-sans-fonts fontconfig && \
    fc-cache -fv

Noto Sans es la fuente de referencia para garantizar la correcta representación de todos los caracteres Unicode utilizados en documentos legales y fiscales españoles, incluyendo los exigidos por la LOPDGDD (documentos con datos personales que deben ser legibles) y la AEPD (Agencia Española de Protección de Datos).

TicketBAI: renderizado de tiques en los tres territorios forales vascos

Los tiques generados bajo TicketBAI para Bizkaia, Gipuzkoa y Araba deben incluir el texto de la leyenda obligatoria en castellano (y opcionalmente en euskera según la hacienda foral). Si el servicio Lambda carece de las fuentes necesarias, la leyenda obligatoria del tique aparecerá corrupta, incumpliendo los requisitos de cada diputación foral.

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 19,014,616 | Versión: 2026.5 just released
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.