Skip to content

Commit c3d1749

Browse files
committed
Update unique identifier name record when renaming font.
1 parent 4ba5899 commit c3d1749

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

fontbro/font.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -982,10 +982,18 @@ def rename(self, family_name="", style_name="", style_flags=True):
982982
f" ({postscript_name_length} characters)."
983983
)
984984

985+
# update unique identifier
986+
postscript_name_old = self.get_name(self.NAME_POSTSCRIPT_NAME)
987+
unique_identifier = self.get_name(self.NAME_UNIQUE_IDENTIFIER)
988+
unique_identifier = unique_identifier.replace(
989+
postscript_name_old, postscript_name
990+
)
991+
985992
# update name records
986993
names = {
987994
self.NAME_FAMILY_NAME: family_name,
988995
self.NAME_SUBFAMILY_NAME: subfamily_name,
996+
self.NAME_UNIQUE_IDENTIFIER: unique_identifier,
989997
self.NAME_FULL_NAME: full_name,
990998
self.NAME_POSTSCRIPT_NAME: postscript_name,
991999
self.NAME_TYPOGRAPHIC_FAMILY_NAME: typographic_family_name,

tests/test_rename.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ def test_rename_with_family_name_only(self):
2929
self.assertEqual(names[Font.NAME_TYPOGRAPHIC_FAMILY_NAME], "Roboto Mono New")
3030
self.assertEqual(names[Font.NAME_TYPOGRAPHIC_SUBFAMILY_NAME], "Regular")
3131

32+
def test_rename_update_unique_identifier(self):
33+
# https://github.com/fabiocaccamo/python-fontbro/issues/62
34+
font = self._get_font("/Roboto_Mono/static/RobotoMono-Regular.ttf")
35+
family_name = font.get_name(key=Font.NAME_FAMILY_NAME)
36+
family_name = family_name.replace("Mono", "Multi")
37+
font.rename(family_name=family_name)
38+
font_uid = font.get_name(Font.NAME_UNIQUE_IDENTIFIER)
39+
self.assertEqual(font_uid, "3.000;GOOG;RobotoMulti-Regular")
40+
3241
def test_rename_with_style_name_only(self):
3342
font = self._get_font("/Roboto_Mono/static/RobotoMono-Regular.ttf")
3443
font.rename("", "Bold Italic")

0 commit comments

Comments
 (0)