Add Fonts Using CSS
IronPDF embeds a font automatically when that font is referenced through CSS, so you can style text with a custom typeface without calling any font API directly. Point the renderer at a stylesheet that declares the font, and the file is picked up and embedded during rendering.
This example sets a custom stylesheet through RenderingOptions.CustomCssUrl and renders a Razor component:
ChromePdfRenderer renderer = new ChromePdfRenderer();
Parameters.Add("persons", persons);
renderer.RenderingOptions.CustomCssUrl = $"wwwroot/css/custom.css";
PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
ChromePdfRenderer renderer = new ChromePdfRenderer();
Parameters.Add("persons", persons);
renderer.RenderingOptions.CustomCssUrl = $"wwwroot/css/custom.css";
PdfDocument pdf = renderer.RenderRazorComponentToPdf<Person>(Parameters);
File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData);
Dim renderer As New ChromePdfRenderer()
Parameters.Add("persons", persons)
renderer.RenderingOptions.CustomCssUrl = $"wwwroot/css/custom.css"
Dim pdf As PdfDocument = renderer.RenderRazorComponentToPdf(Of Person)(Parameters)
File.WriteAllBytes("razorComponentToPdf.pdf", pdf.BinaryData)
The custom.css file declares the font with an @font-face rule and then applies it:
@font-face {
font-family: 'DancingScript';
src: url('../fonts/DancingScript-Regular.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
body {
font-family: 'DancingScript', Arial, sans-serif;
}
Because the @font-face rule names the file in src, IronPDF resolves and embeds DancingScript-Regular.ttf on its own, with no explicit registration step.

