PdfDocument.RemoveUnusedFontGlyphs Method (IEnumerable(PdfFont))

Tries to remove unused glyphs from the specified fonts in the document.

Namespace:  BitMiracle.Docotic.Pdf
Assembly:  BitMiracle.Docotic.Pdf (in BitMiracle.Docotic.Pdf.dll)


public PdfCollection<PdfFont> RemoveUnusedFontGlyphs(
	IEnumerable<PdfFont> fonts
Public Function RemoveUnusedFontGlyphs ( 
	fonts As IEnumerable(Of PdfFont)
) As PdfCollection(Of PdfFont)


Type: System.Collections.Generic.IEnumerable<PdfFont>
The collection of fonts to process. All fonts must belong to this document.

Return Value

Type: PdfCollection<PdfFont>
The collection of fonts, where unused glyphs were successfully removed.


UnsupportedFontException One of the fonts has unexpected structure. Please send us a PDF file for review. As a workaround, you can process individual fonts using RemoveUnusedGlyphs() method.


This method might fail to remove unused glyphs in the following cases:

  • Font is not embedded. For such fonts the Embedded property is false.
  • Font is used in a PdfTextBox or PdfComboBox and therefore all font glyphs should be preserved. A PDF reader or editor might be unable to change text in a control if some glyphs are missed in the font.
  • Font is of an unsupported type. For now, only TrueType/OpenType (not CFF) fonts are supported.

This method is useful for decreasing size of produced PDF documents. The method creates a font subsets with used glyphs only and embeds subsets in the current document.

A glyph is treated as used if the current document contains character drawn with the glyph.

This method does not remove unused glyphs from Type1 fonts.

Some PDF documents use a same font descriptor and font bytes in multiple fonts. In such cases, the call of this method for one of the fonts will also remove unused glyphs for all other fonts.

See Also