Embed TrueType font in PDF
Embed TrueType font
This code sample shows how to draw text on a page using a TrueType font and embed this font in the PDF.
PDFKit.NET embeds a subset of the original font based on the characters that are actually used. By doing this, it is possible to use a 40Mb font and generate a PDF of only 20kb while still embedding all glyph information.
using System;
using System.IO;
using TallComponents.PDF;
using TallComponents.PDF.Shapes;
using TallComponents.PDF.Fonts;
using TallComponents.PDF.Transforms;
namespace EmbedTrueType
{
class Program
{
static void Main(string[] args)
{
// Create a new PDF document and add a page (Letter)
Document pdf = new Document();
Page page = new Page(PageSize.Letter);
pdf.Pages.Add(page);
// Load a TrueType font and set the embed mode.
// You may select other embed modes such as Full or ReferenceOnly.
Font font = Font.TrueType("segoepr.ttf");
font.EmbedMode = EmbedMode.Auto;
// Add text at the top of the page and set the font
TextShape text = new TextShape("This text uses Segue Regular (segoepr.ttf)", font, 18);
text.Transform = new TranslateTransform( 72, page.Height - text.MeasuredHeight - 72);
page.Overlay.Add(text);
// Write the PDF to file
using (FileStream file = new FileStream("out.pdf", FileMode.Create, FileAccess.Write))
{
pdf.Write(file);
}
}
}
}
Sub Main()
' Create a new PDF document and add a page (Letter)
Dim pdf As New Document()
Dim page As New Page(PageSize.Letter)
pdf.Pages.Add(page)
' Load a TrueType font and set the embed mode.
' You may select other embed modes such as Full or ReferenceOnly.
Dim font1 As Font = Font.TrueType("segoepr.ttf")
font1.EmbedMode = EmbedMode.Auto
' Add text at the top of the page and set the font
Dim text As New TextShape("This text uses Segue Regular (segoepr.ttf)", font1, 18)
text.Transform = New TranslateTransform(72, page.Height - text.MeasuredHeight - 72)
page.Overlay.Add(text)
' Write the PDF to file
Using file As New FileStream("out.pdf", FileMode.Create, FileAccess.Write)
pdf.Write(file)
End Using
End Sub
If you open the document properties dialog (CTRL+D) and then select the fonts tab, you will see that the font is embedded.