Skip to content

Commit e475ded

Browse files
committed
Changed get_name and set_name to read/write both Mac and Windows IDs.
1 parent 6b00291 commit e475ded

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

fontbro/font.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ class Font(object):
9595
]
9696
_NAMES_BY_ID = {item['id']: item for item in _NAMES}
9797
_NAMES_BY_KEY = {item['key']: item for item in _NAMES}
98+
_NAMES_MAC_IDS = {"platformID": 3, "platEncID": 1, "langID": 0x409}
99+
_NAMES_WIN_IDS = {"platformID": 1, "platEncID": 0, "langID": 0x0}
98100

99101
# Style Flags:
100102
# https://docs.microsoft.com/en-us/typography/opentype/spec/head
@@ -334,7 +336,9 @@ def get_name(self, key):
334336
font = self.get_ttfont()
335337
name_id = self._get_name_id(key)
336338
name_table = font['name']
337-
name = name_table.getName(name_id, 3, 1, 0x0409)
339+
name = name_table.getName(name_id, **self._NAMES_MAC_IDS)
340+
if not name:
341+
name = name_table.getName(name_id, **self._NAMES_WIN_IDS)
338342
return name.toUnicode() if name else None
339343

340344
def get_names(self):
@@ -772,7 +776,8 @@ def set_name(self, key, value):
772776
name_id = self._get_name_id(key)
773777
name_table = font['name']
774778
# https://github.com/fonttools/fonttools/blob/main/Lib/fontTools/ttLib/tables/_n_a_m_e.py#L568
775-
name_table.setName(value, name_id, 3, 1, 0x0409)
779+
name_table.setName(value, name_id, **self._NAMES_MAC_IDS)
780+
name_table.setName(value, name_id, **self._NAMES_WIN_IDS)
776781

777782
def set_names(self, names):
778783
"""

0 commit comments

Comments
 (0)