comment définir des polices dans les PDF en C#

Set Fonts in PDFs with IronPDF C

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

IronPDF permet aux développeurs C# de créer des PDF avec des polices web personnalisées et des polices d'icônes à partir de HTML. Elle prend en charge à la fois les services de polices externes tels que Google Fonts et les fichiers de polices locaux via les règles CSS @font-face, garantissant ainsi une typographie cohérente dans tous les PDF générés.

Une police Web est une police spécialisée conçue pour être utilisée sur les sites Web. Ces polices sont hébergées sur des serveurs Web et téléchargées par les navigateurs pour garantir un rendu de texte cohérent et visuellement attrayant sur les sites Web, indépendamment de la disponibilité locale des polices de l'utilisateur. De plus, les polices d'icônes, qui utilisent des symboles et des glyphes, sont souvent utilisées dans le design Web pour créer des icônes extensibles et personnalisables et maintenir une interface utilisateur visuellement cohérente grâce à la manipulation du CSS. Grâce aux capacités de gestion des polices d'IronPDF, les développeurs peuvent facilement intégrer ces polices dans leur flux de travail de génération de PDF.

Le CSS inclut les polices Web, vous permettant de spécifier les fichiers de polices à télécharger lors de l'accès à votre site Web. IronPDF prend en charge le chargement des polices et le rendu au format PDF à partir de HTML, ce qui en fait un outil idéal pour la création de documents nécessitant des normes spécifiques en matière d'image de marque ou de typographie. Pour les développeurs qui travaillent avec du contenu international, IronPDF fournit également UTF-8 et la prise en charge des langues internationales.

Démarrage rapide : Utilisation de WebFonts dans la génération de PDF

Incorporez des polices web et des polices d'icônes dans vos C# à l'aide de la bibliothèque C# d'IronPDF. Ce guide vous montre comment rendre le contenu HTML avec des polices personnalisées, afin d'obtenir des PDF cohérents et visuellement attrayants. Rendez simplement le HTML avec IronPDF et enregistrez votre document stylisé en quelques secondes. Avant de commencer, assurez-vous d'avoir installé IronPDF dans votre projet.

  1. Installez IronPDF avec le Gestionnaire de Packages NuGet

    PM > Install-Package IronPdf
  2. Copiez et exécutez cet extrait de code.

    new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.Rendering.WaitFor.AllFontsLoaded(2000) } }
        .RenderHtmlAsPdf("<link href=\"https://fonts.googleapis.com/css?family=Lobster\" rel=\"stylesheet\">" +
                         "<link href=\"https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css\" rel=\"stylesheet\">" +
                         "<p style=\"font-family:'Lobster', serif; font-size:30px;\">Hello Google Font</p>" +
                         "<i class=\"fa fa-coffee\" style=\"font-size:40px; color:#b00;\"></i>")
        .SaveAs("webfonts-icons.pdf");
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronPDF dans votre projet dès aujourd'hui avec un essai gratuit

    arrow pointer

Comment utiliser les WebFonts et les icônes dans les PDF?

IronPDF prend en charge les polices Web (telles que Google Fonts et l'API de polices Web d'Adobe) et les polices d'icônes, comme celles utilisées par Bootstrap et FontAwesome. Grâce à cette prise en charge, IronPDF convient aux projets nécessitant une typographie sophistiquée, qu'il s'agisse de documents simples ou de rapports complexes comportant des éléments de marque.

Les polices nécessitent souvent un délai dans le rendu pour se charger correctement. Quand une police n'est pas correctement chargée, cela peut entraîner l'affichage d'une page blanche sans texte. Vous pouvez utiliser la méthode WaitFor.AllFontsLoaded pour attendre que toutes les polices soient chargées en lui attribuant un délai d'attente maximal. Le délai d'attente maximal par défaut est 500ms. Pour des scénarios plus complexes impliquant JavaScript ou du contenu dynamique, consultez notre tutoriel HTML vers PDF qui couvre les techniques de rendu avancées.

Voici un petit exemple d'utilisation d'une police Web nommée Lobster dans votre projet.

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-render-webfont.cs
using IronPdf;

// HTML contains webfont
var html = @"<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000);

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("font-test.pdf");
Imports IronPdf

' HTML contains webfont
Private html = "<link href=""https://fonts.googleapis.com/css?family=Lobster"" rel=""stylesheet"">
<p style=""font-family: 'Lobster', serif; font-size:30px;"" > Hello Google Fonts</p>"

Private renderer As New ChromePdfRenderer()

' Wait for font to load
renderer.RenderingOptions.WaitFor.AllFontsLoaded(2000)

' Render HTML to PDF
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("font-test.pdf")
$vbLabelText   $csharpLabel

Découvrez d'autres options WaitFor, telles que celles concernant les polices, JavaScript, les éléments HTML et l'inactivité réseau, dans la " Documentation de la classe ". Pour des conceptions réactives qui adaptent les polices en fonction de la taille de l'écran, consultez notre guide sur CSS réactif pour le rendu PDF.

Pourquoi le temps de chargement des polices est-il important ?

Quand une police n'est pas correctement chargée, cela peut entraîner l'affichage d'une page blanche sans texte. Vous pouvez utiliser la méthode WaitFor.AllFontsLoaded pour attendre que toutes les polices soient chargées en lui attribuant un délai d'attente maximal. Le délai d'attente maximal par défaut est 500ms. Cette considération de temps est particulièrement importante lorsque l'on travaille avec des applications web complexes ou lorsque l'on rend du contenuWebGL au PDF, où plusieurs ressources doivent être chargées de manière séquentielle.

Les délais de chargement des polices peuvent varier en fonction de plusieurs facteurs, notamment la vitesse du réseau, la taille du fichier de police et le temps de réponse du serveur. Lorsque vous travaillez avec plusieurs polices personnalisées ou bibliothèques d'icônes, il est recommandé d'augmenter le temps d'attente pour garantir un rendu correct de toutes les typographies. Ceci est particulièrement crucial pour les documents professionnels où les polices manquantes pourraient avoir un impact sur la lisibilité et la cohérence de la marque.

Quels sont les services de polices pris en charge ?

IronPDF prend en charge les polices Web (telles que Google Fonts et l'API de polices Web d'Adobe) et les polices d'icônes, comme celles utilisées par Bootstrap et FontAwesome. En outre, IronPDF prend en charge :

  • Polices Google (catalogue complet)
  • Polices Adobe (Typekit)
  • Icônes Font Awesome (toutes versions)
  • Icônes Bootstrap
  • Icônes Material Design
  • Services de polices web personnalisées via les balises CSS @import ou link
  • Fichiers de polices auto-hébergés dans divers formats (TTF, OTF, WOFF, WOFF2)

Qu'arrive-t-il si les polices ne se chargent pas correctement ?

Les polices nécessitent souvent un délai dans le rendu pour se charger correctement. Quand une police n'est pas correctement chargée, cela peut entraîner l'affichage d'une page blanche sans texte. Dans de tels cas, les navigateurs se rabattent généralement sur les polices par défaut du système, ce qui peut perturber la cohérence visuelle de votre document. IronPDF fournit plusieurs mécanismes pour gérer les échecs de chargement des polices :

  1. Chaînes de polices de secours : définissez plusieurs polices dans votre déclaration CSS font-family
  2. Temps d'attente prolongés : Augmentez le délai d'expiration AllFontsLoaded pour les connexions plus lentes
  3. Intégration de polices locales : utilisez @font-face avec des polices encodées en base64 pour garantir leur disponibilité
  4. <Préchargement des polices : Utiliser les balises HTML de préchargement pour donner la priorité au chargement des polices

Comment importer directement des fichiers de polices?

Pour utiliser un fichier de police existant, appliquez la règle @font-face dans la feuille de style CSS. Cela fonctionne également en combinant la règle @font-face et l'intégration de fichiers WOFF encodés en base64. Dans l'exemple suivant, j'utiliserai la police Pixelify Sans.

:path=/static-assets/pdf/content-code-examples/how-to/webfonts-webicons-custom-font.cs
using IronPdf;

// Import custom font
string html = @"<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>";

ChromePdfRenderer renderer = new ChromePdfRenderer();

// Render HTML to PDF
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);

// Export the PDF
pdf.SaveAs("customFont.pdf");
Imports IronPdf

' Import custom font
Private html As String = "<!DOCTYPE html>
<html>
<head>
<style>
@font-face {font-family: 'Pixelify';
src: url('fonts\PixelifySans-VariableFont_wght.ttf');
}
p {
    font-family: 'Pixelify';
    font-size: 70px;
}
</style>
</head>
<body>
<p>Custom font</p>
</body>
</html>"

Private renderer As New ChromePdfRenderer()

' Render HTML to PDF
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)

' Export the PDF
pdf.SaveAs("customFont.pdf")
$vbLabelText   $csharpLabel

Quels formats de fichiers de polices puis-je utiliser ?

Pour utiliser un fichier de police existant, appliquez la règle @font-face dans la feuille de style CSS. Cela fonctionne également en combinant la règle @font-face et l'intégration de fichiers WOFF encodés en base64. IronPDF prend en charge les formats de fichiers de police suivants :

  • TTF (TrueType Font) : Largement supporté, idéal pour l'écran et l'impression
  • OTF (OpenType Font) : Fonctionnalités typographiques avancées, adapté aux documents professionnels
  • WOFF (Web Open Font Format) : Format compressé optimisé pour une utilisation web
  • WOFF2 : Amélioration de la compression par rapport au WOFF, tailles de fichiers plus petites
  • EOT (Embedded OpenType) : Format hérité pour les anciens navigateurs
  • Polices SVG : Polices vectorielles (avec des limitations sur certaines plateformes)

Quand dois-je utiliser des polices locales ou des polices Web?

Pour utiliser un fichier de police existant, appliquez la règle @font-face dans la feuille de style CSS. Le choix entre les polices locales et les polices web dépend de plusieurs facteurs :

Utiliser les polices locales lorsque :

  • Travailler hors ligne ou dans des environnements réseau restreints
  • Nécessiter une disponibilité de polices garantie
  • Traiter des polices propriétaires ou sous licence
  • Optimiser pour un rendu plus rapide sans délais réseau
  • Créer des documents avec des exigences de conformité strictes

Utilisez les polices Web lorsque:

  • Utiliser de grandes bibliothèques de polices comme Google Fonts
  • Nécessiter des mises à jour automatiques des fichiers de polices
  • Minimiser la taille du bundle de l'application
  • Travailler avec des exigences typographiques changeantes fréquemment
  • Construire des applications qui dépendent déjà de la connectivité internet

Quelles sont les limites de l'utilisation d'Azure?

La plateforme d'hébergement Azure ne prend pas en charge le chargement des polices SVG sur leurs niveaux inférieurs d'applications Web partagées. Cependant, le VPS et le rôle Web d'Azure ne sont pas isolés de la même manière et prennent en charge le rendu des polices Web. Pour des conseils détaillés sur le déploiement d'Azure, consultez notre Guide de déploiement d'Azure qui couvre toutes les limitations et les solutions de contournement spécifiques à chaque niveau.

Quels sont les niveaux d'Azure qui prennent en charge le rendu des polices ?

Cependant, le VPS et le rôle Web d'Azure ne sont pas isolés de la même manière et prennent en charge le rendu des polices Web. Voici une ventilation de la prise en charge des niveaux d'Azure :

<Prise en charge complète des polices de caractères:

  • Machines virtuelles Azure (toutes tailles)
  • Rôles Web Azure
  • Niveaux App Service Premium (P1v2, P2v2, P3v2)
  • Niveaux Isolés de App Service

Prise en charge limitée des polices de caractères:

  • Niveau App Service Basic (B1, B2, B3) - Polices Web uniquement
  • Niveau App Service Standard (S1, S2, S3) - Certaines restrictions concernant les polices SVG

Non prise en charge des polices personnalisées:

  • App Service Free tier (F1)
  • App Service Shared tier (D1)

Pourquoi les niveaux inférieurs d'Azure sont-ils soumis à des restrictions en matière de polices de caractères ?

La plateforme d'hébergement Azure ne prend pas en charge les serveurs qui chargent les polices SVG dans les niveaux inférieurs des applications web partagées en raison des restrictions de sandboxing et des limitations de ressources. Les niveaux inférieurs mettent en œuvre des limites de sécurité strictes qui empêchent certaines opérations au niveau du système requises pour le rendu personnalisé des polices. Ces restrictions permettent à Azure de maintenir l'isolement de plusieurs locataires et d'empêcher l'utilisation abusive des ressources dans les environnements partagés.

Pour contourner ces limitations, envisagez de.. :

  1. Intégration de polices sous forme de chaînes encodées en base64 dans votre CSS
  2. Utilisation uniquement de polices web à partir des CDNs
  3. Pré-rendu de PDFs dans un environnement supporté
  4. Passage à un niveau supérieur d'Azure avec prise en charge complète des polices de caractères

https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face

Questions Fréquemment Posées

Comment puis-je utiliser Google Fonts dans mes documents PDF ?

IronPDF prend en charge les polices Google par le biais du rendu HTML. Il suffit d'inclure le lien Google Fonts dans la section head de votre HTML et d'appliquer la famille de polices dans le CSS. IronPDF téléchargera et rendra ces polices lors de la génération du PDF, garantissant ainsi que votre typographie personnalisée apparaîtra correctement dans le document final.

Pourquoi mes polices web ne s'affichent-elles pas correctement dans le PDF généré ?

Les polices Web ont souvent besoin d'un certain temps de chargement avant d'être affichées. IronPDF fournit une option WaitFor.AllFontsLoaded() dans les RenderingOptions qui vous permet de définir un délai (en millisecondes) pour s'assurer que les polices sont entièrement chargées avant la génération du PDF. Cela permet d'éviter les polices manquantes ou mal rendues.

Puis-je utiliser des icônes FontAwesome dans mes PDF ?

Oui, IronPDF prend entièrement en charge FontAwesome et d'autres polices d'icônes. Incluez le CSS FontAwesome dans votre HTML et utilisez les classes d'icônes appropriées. IronPDF rendra ces polices d'icônes sous forme de graphiques vectoriels dans votre PDF, en conservant leur évolutivité et leur qualité visuelle.

Comment utiliser des fichiers de police locaux avec @font-face ?

IronPDF prend en charge les règles CSS @font-face pour le chargement des fichiers de police locaux. Définissez votre règle @font-face dans votre CSS, en spécifiant le chemin d'accès au fichier de police, puis appliquez la famille de police à vos éléments HTML. IronPDF intégrera ces polices personnalisées directement dans le PDF lors du rendu.

Quels sont les formats de police pris en charge pour la génération de PDF ?

IronPDF prend en charge les formats de polices Web standard, notamment les fichiers WOFF, WOFF2, TTF et OTF lorsqu'ils sont utilisés par le biais de règles CSS @font-face ou de services de polices externes. Cela garantit la compatibilité avec la plupart des polices web modernes et des polices d'icônes disponibles aujourd'hui.

Comment puis-je garantir une typographie cohérente entre différents systèmes ?

IronPDF intègre les polices web directement dans les fichiers PDF générés, ce qui garantit que votre typographie personnalisée s'affiche de manière cohérente, quelles que soient les polices installées sur le système du spectateur. IronPDF est donc idéal pour maintenir la cohérence de la marque dans les documents distribués.

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