Font Resolver is a cross-platform library to resolve font paths based on their font names.
The library was originally developed to be used with PDFsharp. However, since resolving font files cross-platform can be useful in general, two separate packages have been created:
- Resolve font files cross-platform
- Keep the dependency graph minimal
- Remain .NET Standard 2.0 compatible
- Turn contributors into maintainers
Note: TrueType Collections (*.ttc) are not supported at the moment, as PDFsharp can't load them.
Add the NuGet package to your project:
dotnet add package FontResolverIf you intend to use FontResolver with PDFsharp, use the FontResolver.PdfSharp package (which depends on FontResolver) instead:
dotnet add package FontResolver.PdfSharpusing FontResolver;
// ...
var style = new FontStyle(bold: false, italic: false);
var font = FontResolver.Resolve("Arial", style with { Bold = true });using FontResolver.PdfSharp;
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
// ...
// Before rendering the PDF document call
FontResolverPdfSharp.Register();
// Or alternatively register the font resolver yourself
GlobalFontSettings.FontResolver = new FontResolverPdfSharp();
// ...
var migraDocDocument = new Document();
migraDocDocument.AddSection();
// ...
var renderer = new PdfDocumentRenderer
{
Document = migraDocDocument
};
renderer.RenderDocument();
var pdfDocument = renderer.PdfDocument;
pdfDocument.Save("file.pdf");You can register custom font directories to be searched by the font resolver:
FontResolver.RegisterFontDirectory("path/to/custom/directory/with/fonts");
// Or for PDFsharp
FontResolverPdfSharp.RegisterFontDirectory("path/to/custom/directory/with/fonts");Discover all the font families available on the system:
var fontFamilies = FontResolver.DiscoverFontFamilies();FontResolver is licensed under the MIT license, see the LICENSE file.