diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-04-17 17:22:40 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-04-25 16:22:51 +0200 |
commit | 85ec0410ca1eb10e0d592027e990f7e569cd4d3f (patch) | |
tree | 17f7986264900d90225764c8467df868bd8caedf /scripts/makenoto.py | |
parent | d69dcb5afd27a7cbce35ac4dadec9c6145799a15 (diff) | |
download | mupdf-85ec0410ca1eb10e0d592027e990f7e569cd4d3f.tar.xz |
Update Noto fonts.
Import Source Han Serif 1.001.
Use serif fonts in preference for sans.
Diffstat (limited to 'scripts/makenoto.py')
-rw-r--r-- | scripts/makenoto.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/scripts/makenoto.py b/scripts/makenoto.py new file mode 100644 index 00000000..8bdc95a0 --- /dev/null +++ b/scripts/makenoto.py @@ -0,0 +1,76 @@ +import sys, glob, os + +scripts = [] + +for line in open("include/mupdf/ucdn.h").readlines(): + if line.startswith("#define"): + name = line.split()[1] + if name.startswith("UCDN_SCRIPT_"): + scripts.append(name) + +blacklist = [ + "UCDN_SCRIPT_UNKNOWN", + "UCDN_SCRIPT_INHERITED", + + "UCDN_SCRIPT_COMMON", + "UCDN_SCRIPT_LATIN", + "UCDN_SCRIPT_GREEK", + "UCDN_SCRIPT_CYRILLIC", + "UCDN_SCRIPT_HIRAGANA", + "UCDN_SCRIPT_KATAKANA", + "UCDN_SCRIPT_BOPOMOFO", + "UCDN_SCRIPT_HAN", + "UCDN_SCRIPT_HANGUL", + + "UCDN_SCRIPT_BRAILLE", + "UCDN_SCRIPT_MEROITIC_CURSIVE", + "UCDN_SCRIPT_MEROITIC_HIEROGLYPHS", + "UCDN_SCRIPT_SYRIAC", +] + +for s in blacklist: + scripts.remove(s) + +fonts = glob.glob("resources/fonts/noto/*.?tf") +#fonts.remove("resources/fonts/noto/NotoSans-Regular.otf") +#fonts.remove("resources/fonts/noto/NotoSerif-Regular.otf") +#fonts.remove("resources/fonts/noto/NotoSansSymbols-Regular.ttf") +#fonts.remove("resources/fonts/noto/NotoEmoji-Regular.ttf") + +lower = {} +for f in fonts: + lower[f.lower()] = os.path.basename(f) +unused = lower.keys() +unused.sort() + +def casefont(us, ss, n): + if n in lower: + nn = lower[n].replace('.','_').replace('-','_') + print "case %s: RETURN(noto_%s);" % (us,nn) + del lower[n] + return True + return False + +for us in scripts: + ss = "".join([s.capitalize() for s in us.split("_")[2:]]) + list = [] + list.append("resources/fonts/noto/NotoSerif" + ss + "-Regular.otf") + list.append("resources/fonts/noto/NotoSans" + ss + "-Regular.otf") + list.append("resources/fonts/noto/NotoSerif" + ss + "-Regular.ttf") + list.append("resources/fonts/noto/NotoSans" + ss + "-Regular.ttf") + found = False + for font in list: + if casefont(us, ss, font.lower()): + found = True + break + if not found: + print "case %s: break;" % us + for font in list: + if font.lower() in unused: unused.remove(font.lower()) + +for f in unused: + print "// unmapped font:", lower[f] + +for f in lower: + if not f in unused: + print "// unused font file:", lower[f] |