Fonts
GemBox.Pdf needs access to fonts used in a document and, by default, it will check these font locations on supported operating systems:
- Windows: C:\Windows\Fonts\
- Linux: /usr/share/fonts/, /usr/local/share/fonts/, and ~/.local/share/fonts/
- macOS: /System/Library/Fonts/, /Library/Fonts/, and ~/Library/Fonts/
If a specific font is not located at the default location, you need to use one of the The following example shows how you can use GemBox.Pdf to write text to a PDF file using custom font (Almonte Snow.ttf).PdfFontFamily
constructors that allow you to specify the location of that font. This is especially needed in environments with no fonts installed, like Docker.Custom fonts
using GemBox.Pdf;
using GemBox.Pdf.Content;
class Program
{
static void Main()
{
// If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY");
using (var document = new PdfDocument())
{
var page = document.Pages.Add();
using (var formattedText = new PdfFormattedText())
{
formattedText.FontSize = 48;
formattedText.LineHeight = 72;
// Use the font family 'Almonte Snow' whose font file is located in the 'MyFonts' directory.
formattedText.FontFamily = new PdfFontFamily("MyFonts", "Almonte Snow");
formattedText.AppendLine("Hello World!");
page.Content.DrawText(formattedText, new PdfPoint(100, 500));
}
document.Save("Private Fonts.%OutputFileType%");
}
}
}
Imports GemBox.Pdf
Imports GemBox.Pdf.Content
Module Program
Sub Main()
' If using the Professional version, put your serial key below.
ComponentInfo.SetLicense("FREE-LIMITED-KEY")
Using document = New PdfDocument()
Dim page = document.Pages.Add()
Using formattedText = New PdfFormattedText()
formattedText.FontSize = 48
formattedText.LineHeight = 72
' Use the font family 'Almonte Snow' whose font file is located in the 'MyFonts' directory.
formattedText.FontFamily = New PdfFontFamily("MyFonts", "Almonte Snow")
formattedText.AppendLine("Hello World!")
page.Content.DrawText(formattedText, New PdfPoint(100, 500))
End Using
document.Save("Private Fonts.%OutputFileType%")
End Using
End Sub
End Module
The PdfFonts
static class allows you to browse all standard, system, and custom font families and font faces.
Note that GemBox.Pdf ignores the font embedding rights ( GemBox.Pdf supports assembly-embedded fonts in PDF files by using the When you add fonts as resources to your application, make sure you're setting the Build Action as an Embedded resource. Or if your application is targeting .NET Framework and thus uses WPF, set it as Resource instead. Also, make sure that System.Windows.Application.ResourceAssembly is correctly initialized, if you want to format text that uses embedded fonts with The following image shows a structure of an example solution with font files added as embedded resources, and the following table lists base resource locations you need to specify to use those fonts.PdfFontFace.EmbeddingRights
). That's why it's the application developer's responsibility to run the font licensing rights check. In case you have any doubts, please contact the font's vendor.Assembly fonts
PdfFonts.GetFontFamilies(string, string)
method.PdfTextFormattingMode.WPF
or PdfTextFormattingMode.WPFDisplay
text formatting mode.Retrieved font assemblyName
location
Notes Font1.ttf null
, string.Empty
, or "MyConsoleApplication"
null
or string.Empty
Font resource files are in the root of the local assembly. Font2.ttf null
, string.Empty
, or "MyConsoleApplication"
"MyFonts"
Font resource files are in the subfolder of the local assembly. Font3.ttf "MyClassLibrary"
null
or string.Empty
Font resource files are in the root of the referenced assembly. Font4.ttf "MyClassLibrary"
"MyFonts"
Font resource files are in the subfolder of the referenced assembly.