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

Définir les polices dans les PDF avec 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 et des polices d'icônes personnalisées à partir de HTML. Il prend en charge à la fois les services de polices externes comme Google Fonts et les fichiers de polices locaux via les règles CSS @font-face , garantissant 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 fonctionnalité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 des polices Web 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.

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  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 grâce à 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 temps d'attente maximum. Le temps d'attente maximal par défaut est de 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");
$vbLabelText   $csharpLabel

Explorez d'autres options WaitFor, telles que celles relatives aux polices, au JavaScript, aux éléments HTML et à l'inactivité du réseau dans la documentation de la classe WaitFor (/how-to/waitfor/) Pour les conceptions réactives qui adaptent les polices en fonction de la taille de l'écran, consultez notre guide sur les CSS réactives pour le rendu PDF](/how-to/html-to-pdf-responsive-css/).

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 temps d'attente maximum. Le temps d'attente maximal par défaut est de 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és via les balises CSS @import ou link
  • Fichiers de polices auto-hébergés dans différents 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 rappel : Définissez plusieurs polices dans votre déclaration CSS font-family
  2. Temps d'attente prolongés : Augmentez le délai d'attente de AllFontsLoaded pour les connexions plus lentes
  3. Intégration de polices locales : Utilisez @font-face avec des polices encodées en base64 pour une disponibilité garantie
  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 le style CSS. Elle 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");
$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 le style CSS. Elle 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ée, idéale pour l'écran et l'impression
  • OTF (OpenType Font) : Fonctionnalités typographiques avancées, adaptées aux documents professionnels
  • <WOFF (Web Open Font Format) : Format compressé optimisé pour l'utilisation sur le web
  • WOFF2 : compression améliorée par rapport à WOFF, taille des fichiers réduite
  • 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 le 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
  • Exiger une disponibilité garantie des polices
  • Traitement des polices propriétaires ou sous licence
  • Optimisation pour un rendu plus rapide sans retard de réseau
  • Création de documents soumis à des exigences de conformité strictes

Utilisez les polices Web lorsque:

  • Utiliser de grandes bibliothèques de polices de caractères comme Google Fonts
  • Exiger des mises à jour automatiques des fichiers de police
  • Minimiser la taille des paquets d'applications
  • Travailler avec des exigences typographiques qui changent 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 d'Azure Web
  • App Service Premium (P1v2, P2v2, P3v2)
  • App Service Tiers isolés

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

  • App Service Basic tier (B1, B2, B3) - Polices Web uniquement
  • App Service Standard tier (S1, S2, S3) - Quelques restrictions sur les polices SVG

Non prise en charge des polices personnalisées:

  • App Service Free tier (F1)
  • Niveau partagé du service d'application ( 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égrer des polices en tant que chaînes encodées en base64 dans votre CSS
  2. Utiliser uniquement des polices web provenant de CDN
  3. Pré-rendu des PDF dans un environnement pris en charge
  4. Passage à un niveau supérieur d'Azure avec prise en charge complète des polices de caractères

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 17,012,929 | Version : 2025.12 vient de sortir