How to embed all fonts inside PDF using C# and .NET
Working with PDF files is an integral part of modern business and development tasks. One of the important aspects when creating or processing a PDF is font management: to ensure that the document is displayed correctly, regardless of whether the end user has fonts, they must be embedded in the file. The second important task is to ensure the compatibility, security and portability of the document. In this article, we will look at how to easily and efficiently embed all fonts in a PDF using the SautinSoft PDF Metamorphosis .NET library.
Using embedded code to automate font insertion greatly simplifies the developer's work. You don't need to manually edit each PDF or depend on third—party tools - everything can be done programmatically, quickly and reliably.
What is font embedding useful for:
- Document automation: create reports, contracts, forms, and other documents where uniformity of display is important.
- Processing of mass files: in situations where it is necessary to prepare a large number of PDFs and ensure their unified appearance.
- Scalable systems: built-in fonts help with PDF generation in systems where the installation of identical fonts or their absence is not guaranteed.
- Creation of secure documents: when it is necessary to minimize the risks of unauthorized modification.
Step-by-step guide:
- Add SautinSoft.PdfMetamorphosis from Nuget.
- Load a RTF file.
- Make all text became in 'Courier New' font, single font size 10 and single text color.
- Embed all fonts inside PDF.
- Save a document in format PDF.
Complete code
using System;
using System.IO;
using System.Collections;
namespace Sample
{
class Test
{
static void Main(string[] args)
{
// Before starting, we recommend to get a free key:
// https://sautinsoft.com/start-for-free/
// Apply the key here:
// SautinSoft.PdfMetamorphosis.SetLicense("...");
// How to set a single font for the whole PDF document.
SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();
// Let's make that the all text in PDF became in 'Courier New' font
p.TextSettings.FontFace.Custom("Courier New");
// Set also a single font size 10
p.TextSettings.FontSize = 10;
// Set also single text color
p.TextSettings.FontColor = System.Drawing.Color.FromArgb(33, 150, 150);
// Embed all fonts inside PDF.
p.PdfSettings.EmbedAllFonts = true;
if (p != null)
{
string rtfPath = @"..\..\..\example.rtf";
string pdfPath = @"..\..\..\example.pdf";
int i = p.RtfToPdfConvertFile(rtfPath,pdfPath);
if (i !=0)
{
System.Console.WriteLine("An error occurred during converting RTF to PDF!");
}
else
{
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfPath) { UseShellExecute = true });
}
}
}
}
}
Namespace Sample
Friend Class Test
Shared Sub Main(ByVal args() As String)
' Before starting, we recommend to get a free key:
' https://sautinsoft.com/start-for-free/
' Apply the key here:
' SautinSoft.PdfMetamorphosis.SetLicense("...");
' How to set a single font for the whole PDF document.
Dim p As New SautinSoft.PdfMetamorphosis()
' Let's make that the all text in PDF became in 'Courier New' font
p.TextSettings.FontFace.Custom("Courier New")
' Set also a single font size 10
p.TextSettings.FontSize = 10
' Set also single text color
p.TextSettings.FontColor = System.Drawing.Color.FromArgb(33, 150, 150)
' Embed all fonts inside PDF.
p.PdfSettings.EmbedAllFonts = True
If p IsNot Nothing Then
Dim rtfPath As String = "..\..\..\example.rtf"
Dim pdfPath As String = "..\..\..\test.pdf"
Dim i As Integer = p.RtfToPdfConvertFile(rtfPath, pdfPath)
If i <> 0 Then
System.Console.WriteLine("An error occurred during converting RTF to PDF!")
Else
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfPath) With {.UseShellExecute = True})
End If
End If
End Sub
End Class
End Namespace
If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below: