Intégrer des polices personnalisées dans IronPDF sur des conteneurs Linux Docker
Les polices personnalisées s'intègrent correctement lors de la génération de PDF sous Windows, mais ne parviennent pas à s'intégrer dans un conteneur Docker Linux. Au lieu de la police prévue, le moteur de rendu utilise DejaVu Sans comme police de secours.
Sur les systèmes Linux et dans les conteneurs Docker, les polices doivent être explicitement installées ou référencées. Si une police n'est pas disponible pour le moteur de rendu Chrome, IronPDF remplace par la police de secours par défaut du système, entraînant des différences visuelles et des échecs d'intégration.
Solution
Option 1 : Installer les polices de base de Microsoft pour Arial et des polices similaires
Ajoutez à votre Dockerfile :
RUN apt update && apt install -y ttf-mscorefonts-installer
Option 2 : Intégrer des polices personnalisées via @font-face
Pour les polices non-système telles que Poppins ou Roboto, déclarez-les dans HTML en utilisant @font-face avec un chemin vers un fichier .ttf intégré dans l'image 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>
Option 3 : Utilisez le type de média CSS pour impression
Définissez CssMediaType pour appliquer des styles spécifiques à l'impression, y compris les déclarations @font-face :
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
Pour une configuration complète de Docker Linux, voir le guide Docker IronPDF.

