matplotlib._type1font#

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.

Usage:

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

Sources:

  • 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.

Attributes:
partstuple

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

decryptedbytes

The decrypted form of parts[1].

propdict[str, Any]

A dictionary of font properties. Noteworthy keys include:

  • FontName: PostScript name of the font

  • Encoding: dict from numeric codes to glyph names

  • FontMatrix: bytes object encoding a matrix

  • UniqueID: optional font identifier, dropped when modifying the font

  • CharStrings: dict from glyph names to byte code

  • Subrs: array of byte code subroutines

  • OtherSubrs: bytes object encoding some PostScript code

Initialize a Type-1 font.

Parameters:
inputstr or 3-tuple

Either a pfb file name, or a 3-tuple of already-decoded Type-1 font parts.

decrypted#
parts#
prop#
transform(effects)[source]#

Return a new font that is slanted and/or extended.

Parameters:
effectsdict

A dict with optional entries:

  • 'slant'float, default: 0

    Tangent of the angle that the font is to be slanted to the right. Negative values slant to the left.

  • 'extend'float, default: 1

    Scaling factor for the font width. Values less than 1 condense the glyphs.

Returns:
Type1Font