matplotlib._afm#

Eine Python-Schnittstelle zu Adobe Font Metrics-Dateien.

Obwohl eine Reihe anderer Python-Implementierungen existiert und möglicherweise vollständiger als diese ist, wurde entschieden, sich nicht für diese zu entscheiden, da sie entweder

  1. urheberrechtlich geschützt waren oder eine nicht-BSD-kompatible Lizenz verwendeten.

  2. zu viele Abhängigkeiten hatten und eine eigenständige Bibliothek benötigt wurde.

  3. mehr taten als nötig und es einfacher war, neu zu beginnen, anstatt herauszufinden, wie man nur das Nötige bekommt.

Sie ist recht einfach zu bedienen und hat keine externen Abhängigkeiten.

>>> import matplotlib as mpl
>>> from pathlib import Path
>>> afm_path = Path(mpl.get_data_path(), 'fonts', 'afm', 'ptmr8a.afm')
>>>
>>> from matplotlib.afm import AFM
>>> with afm_path.open('rb') as fh:
...     afm = AFM(fh)
>>> afm.string_width_height('What the heck?')
(6220.0, 694)
>>> afm.get_fontname()
'Times-Roman'
>>> afm.get_kern_dist('A', 'f')
0
>>> afm.get_kern_dist('A', 'y')
-92.0
>>> afm.get_bbox_char('!')
[130, -9, 238, 676]

Wie im Adobe Font Metrics File Format Specification sind alle Abmessungen in Einheiten von 1/1000 des Skalierungsfaktors (Punktgröße) der verwendeten Schriftart angegeben.

class matplotlib._afm.AFM(fh)[Quelle]#

Bases: object

Analysiert die AFM-Datei im Dateiobjekt fh.

property family_name#

Der Name der Schriftfamilie, z. B. 'Times'.

get_angle()[Quelle]#

Gibt den Schriftwinkel als Gleitkommazahl zurück.

get_bbox_char(c, isord=False)[Quelle]#
get_capheight()[Quelle]#

Gibt die Großbuchstabenhöhe als Gleitkommazahl zurück.

get_familyname()[Quelle]#

Gibt den Namen der Schriftfamilie zurück, z. B. 'Times'.

get_fontname()[Quelle]#

Gibt den Namen der Schriftart zurück, z. B. 'Times-Roman'.

get_fullname()[Quelle]#

Gibt den vollständigen Namen der Schriftart zurück, z. B. 'Times-Roman'.

get_height_char(c, isord=False)[Quelle]#

Ruft die Höhe des Begrenzungsrahmens (Farbauftrag) des Zeichens c ab (Leerzeichen ist 0).

get_horizontal_stem_width()[Quelle]#

Gibt die Standardbreite des horizontalen Strichs als Gleitkommazahl zurück, oder None, wenn sie in der AFM-Datei nicht angegeben ist.

get_kern_dist(c1, c2)[Quelle]#

Gibt den Abstand des Kerning-Paares (möglicherweise 0) für die Zeichen c1 und c2 zurück.

get_kern_dist_from_name(name1, name2)[Quelle]#

Gibt den Abstand des Kerning-Paares (möglicherweise 0) für die Zeichen name1 und name2 zurück.

get_name_char(c, isord=False)[Quelle]#

Ruft den Namen des Zeichens ab, d.h. ';' ist 'semicolon'.

get_str_bbox(s)[Quelle]#

Gibt den Begrenzungsrahmen des Strings zurück.

get_str_bbox_and_descent(s)[Quelle]#

Gibt den Begrenzungsrahmen des Strings und den maximalen Abstieg zurück.

get_underline_thickness()[Quelle]#

Gibt die Dicke des Unterstrichs als Gleitkommazahl zurück.

get_vertical_stem_width()[Quelle]#

Gibt die Standardbreite des vertikalen Strichs als Gleitkommazahl zurück, oder None, wenn sie in der AFM-Datei nicht angegeben ist.

get_weight()[Quelle]#

Gibt die Stärke der Schriftart zurück, z. B. 'Bold' oder 'Roman'.

get_width_char(c, isord=False)[Quelle]#

Ruft die Breite des Zeichens aus dem Feld 'WX' der Zeichenmetrik ab.

get_width_from_char_name(name)[Quelle]#

Ruft die Breite des Zeichens anhand des Type1-Zeichennamens ab.

get_xheight()[Quelle]#

Gibt die x-Höhe als Gleitkommazahl zurück.

property postscript_name#
string_width_height(s)[Quelle]#

Gibt die String-Breite (einschließlich Kerning) und die String-Höhe als Tupel (w, h) zurück.

class matplotlib._afm.CharMetrics(width, name, bbox)[Quelle]#

Bases: tuple

Stellt die Zeichenmetriken eines einzelnen Zeichens dar.

Anmerkungen

Die Felder beschreiben derzeit nur einen Teil der im AFM-Standard definierten Zeichenmetriken.

Erstellt eine neue Instanz von CharMetrics(width, name, bbox)

bbox#

Der Begrenzungsrahmen des Zeichens (B) als Tupel (llx, lly, urx, ury).

name#

Der Zeichenname (N).

width#

Die Zeichenbreite (WX).

class matplotlib._afm.CompositePart(name, dx, dy)[Quelle]#

Bases: tuple

Stellt die Informationen eines zusammengesetzten Elements eines zusammengesetzten Zeichens dar.

Erstellt eine neue Instanz von CompositePart(name, dx, dy)

dx#

x-Verschiebung des Teils vom Ursprung.

dy#

y-Verschiebung des Teils vom Ursprung.

name#

Name des Teils, z.B. 'acute'.