FontInfoCollection class

FontInfoCollection class

Represents a collection of fonts used in a document. To learn more, visit the Working with Fonts documentation article.


Items are FontInfo objects.

You do not create instances of this class directly. Use the DocumentBase.font_infos property to access the collection of fonts defined in the document.


__getitem__(index)Gets a font at the specified index.


countGets the number of elements contained in the collection.
embed_system_fontsSpecifies whether or not to embed System fonts into the document. Default value for this property is False.
embed_true_type_fontsSpecifies whether or not to embed TrueType fonts in a document when it is saved. Default value for this property is False.
save_subset_fontsSpecifies whether or not to save a subset of the embedded TrueType fonts with the document. Default value for this property is False.


contains(name)Determines whether the collection contains a font with the given name.
get_by_name(name)Gets a font with the specified name.


Shows how to print the details of what fonts are present in a document.

doc = aw.Document(MY_DIR + "Embedded font.docx")

all_fonts = doc.font_infos

# Print all the used and unused fonts in the document.
for i in range(all_fonts.count):
    print(f"Font index #{i}")
    print(f"\tName: {all_fonts[i].name}")
    print(f'\tIs {"" if all_fonts[i].is_true_type else "not "}a TrueType font')

Shows how to save a document with embedded TrueType fonts.

doc = aw.Document(MY_DIR + "Document.docx")

font_infos = doc.font_infos
font_infos.embed_true_type_fonts = embed_all_fonts
font_infos.embed_system_fonts = embed_all_fonts
font_infos.save_subset_fonts = embed_all_fonts + "Font.font_info_collection.docx")

if embed_all_fonts:
    self.assertLess(25000, os.path.getsize(ARTIFACTS_DIR + "Font.font_info_collection.docx"))
    self.assertGreater(15000, os.path.getsize(ARTIFACTS_DIR + "Font.font_info_collection.docx"))

See Also