summaryrefslogtreecommitdiff
path: root/scripts/makenoto.py
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-04-17 17:22:40 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-04-25 16:22:51 +0200
commit85ec0410ca1eb10e0d592027e990f7e569cd4d3f (patch)
tree17f7986264900d90225764c8467df868bd8caedf /scripts/makenoto.py
parentd69dcb5afd27a7cbce35ac4dadec9c6145799a15 (diff)
downloadmupdf-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.py76
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]