FontInfoCollection indexer

__getitem__(index)

Gets a font at the specified index.

def __getitem__(self, index: int):
    ...
ParameterTypeDescription
indexintZero-based index of the font.

Examples

Shows how to extract an embedded font from a document, and save it to the local file system.

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

embedded_font = doc.font_infos.get_by_name("Alte DIN 1451 Mittelschrift")
embedded_font_bytes = embedded_font.get_embedded_font(aw.fonts.EmbeddedFontFormat.OPEN_TYPE, aw.fonts.EmbeddedFontStyle.REGULAR)

with open(ARTIFACTS_DIR + "Alte DIN 1451 Mittelschrift.ttf", "wb") as file:
    file.write(embedded_font_bytes)

# Embedded font formats may be different in other formats such as .doc.
# We need to know the correct format before we can extract the font.
doc = aw.Document(MY_DIR + "Embedded font.doc")

self.assertIsNone(doc.font_infos.get_by_name("Alte DIN 1451 Mittelschrift").get_embedded_font(aw.fonts.EmbeddedFontFormat.OPEN_TYPE, aw.fonts.EmbeddedFontStyle.REGULAR))
self.assertIsNotNone(doc.font_infos.get_by_name("Alte DIN 1451 Mittelschrift").get_embedded_font(aw.fonts.EmbeddedFontFormat.EMBEDDED_OPEN_TYPE, aw.fonts.EmbeddedFontStyle.REGULAR))

# Also, we can convert embedded OpenType format, which comes from .doc documents, to OpenType.
embedded_font_bytes = doc.font_infos.get_by_name("Alte DIN 1451 Mittelschrift").get_embedded_font_as_open_type(aw.fonts.EmbeddedFontStyle.REGULAR)

with open(ARTIFACTS_DIR + "Alte DIN 1451 Mittelschrift.otf", "wb") as file:
    file.write(embedded_font_bytes)

See Also