Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/scripts/makenoto.py @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/scripts/makenoto.py Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,78 @@ +#!/usr/bin/env python3 + +import 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 = list(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])
