Incrustación de Fuentes Personalizadas en IronPDF en Contenedores Docker de Linux
Las fuentes personalizadas se incrustan correctamente al generar PDFs en Windows, pero fallan al incrustarse dentro de un contenedor Docker de Linux. En lugar de la fuente intencionada, el renderizador usa DejaVu Sans como respaldo.
En sistemas Linux y dentro de contenedores Docker, las fuentes deben ser instaladas o referenciadas explícitamente. Si una fuente no está disponible para el motor de renderizado Chrome, IronPDF sustituye por la fuente de respaldo predeterminada del sistema, causando diferencias visuales y fallos de incrustación.
Solución
Opción 1: Instala fuentes centrales de Microsoft para Arial u otras fuentes similares
Agrega a tu Dockerfile:
RUN apt update && apt install -y ttf-mscorefonts-installer
Opción 2: Incrusta fuentes personalizadas a través de @font-face
Para fuentes no del sistema, como Poppins o Roboto, declárelas en HTML usando @font-face con una ruta a un archivo .ttf incluido dentro de la imagen de Docker:
<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.ttf');
}
p {
font-family: 'Poppins';
font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<style>
@font-face {
font-family: 'Poppins';
src: url('fonts/Poppins-Regular.ttf');
}
p {
font-family: 'Poppins';
font-size: 16px;
}
</style>
</head>
<body>
<p>Custom font text</p>
</body>
</html>
Opción 3: Usa el tipo de medios de impresión CSS
Configure CssMediaType para aplicar estilos específicos de impresión, incluidas declaraciones @font-face:
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Para una configuración completa de Docker en Linux, consulta la guía Docker de IronPDF.

