Intégrer des polices personnalisées dans IronPDF sur des conteneurs Linux Docker

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

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>
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
$vbLabelText   $csharpLabel

Pour une configuration complète de Docker Linux, voir le guide Docker IronPDF.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer ?
Nuget Téléchargements 20,088,359 | Version : 2026.7 vient de sortir
Still Scrolling Icon

Vous faites encore défiler ?

Vous voulez une preuve rapidement ? PM > Install-Package IronPdf
exécuter un échantillon Regardez votre code HTML se transformer en PDF.