You are reading an old version of the documentation (v2.2.2). For the latest version see
Version 2.2.2
Fork me on GitHub

Table Of Contents



This module contains a class representing a Type 1 font.

This version reads pfa and pfb files and splits them for embedding in pdf files. It also supports SlantFont and ExtendFont transformations, similarly to pdfTeX and friends. There is no support yet for subsetting.


>>> font = Type1Font(filename)
>>> clear_part, encrypted_part, finale =
>>> slanted_font = font.transform({'slant': 0.167})
>>> extended_font = font.transform({'extend': 1.2})


  • Adobe Technical Note #5040, Supporting Downloadable PostScript Language Fonts.
  • Adobe Type 1 Font Format, Adobe Systems Incorporated, third printing, v1.1, 1993. ISBN 0-201-57044-0.
class matplotlib.type1font.Type1Font(input)[source]

Bases: object

A class representing a Type-1 font, for use by backends.

parts : tuple

A 3-tuple of the cleartext part, the encrypted part, and the finale of zeros.

prop : Dict[str, Any]

A dictionary of font properties.

Initialize a Type-1 font. input can be either the file name of a pfb file or a 3-tuple of already-decoded Type-1 font parts.


Transform the font by slanting or extending. effects should be a dict where effects['slant'] is the tangent of the angle that the font is to be slanted to the right (so negative values slant to the left) and effects['extend'] is the multiplier by which the font is to be extended (so values less than 1.0 condense). Returns a new Type1Font object.