Incorporar Fontes Personalizadas em IronPDF em Contêineres Docker Linux
As fontes personalizadas são incorporadas corretamente ao gerar PDFs no Windows, mas falham ao serem incorporadas dentro de um contêiner Docker Linux. Em vez da fonte pretendida, o renderizador usa DejaVu Sans como substituto.
Em sistemas Linux e dentro de contêineres Docker, as fontes devem ser explicitamente instaladas ou referenciadas. Se uma fonte não estiver disponível para o mecanismo de renderização Chrome, o IronPDF substitui pela fonte padrão do sistema, causando diferenças visuais e falhas na incorporação.
Solução
Opção 1: Instalar fontes principais da Microsoft para Arial e fontes similares
Adicione ao seu Dockerfile:
RUN apt update && apt install -y ttf-mscorefonts-installer
Opção 2: Incorpore fontes personalizadas via @font-face
Para fontes não-sistema como Poppins ou Roboto, declare-as em HTML usando @font-face com um caminho para um arquivo .ttf incluído na imagem 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>
Opção 3: Use o tipo de mídia CSS de Impressão
Defina CssMediaType para aplicar estilos específicos de impressão, incluindo declarações @font-face:
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Para uma configuração Docker Linux completa, veja o guia do IronPDF Docker.

