From 48b026e7500c5f7239e173d14d09b9e2e272e874 Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Wed, 5 Sep 2018 15:27:22 +0200 Subject: Regularize language and script names. Drop the unused 'serif' argument to the CJK lookup functions. Use the BCP 47 names for CJK scripts and languages: zh-Hant for traditional Chinese, zh-Hans for simplified Chinese, ja for Japanese, ko for Korean. The lookup function also allows commonly used language+country codes: zh-TW and zh-HK for traditional Chinese, zh-CN for simplified Chinese. --- source/pdf/pdf-font.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'source/pdf/pdf-font.c') diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c index 3dae9884..a0df70fd 100644 --- a/source/pdf/pdf-font.c +++ b/source/pdf/pdf-font.c @@ -409,15 +409,15 @@ pdf_load_substitute_cjk_font(fz_context *ctx, pdf_font_desc *fontdesc, const cha if (!fontdesc->font) { const unsigned char *data; - int len; - int index; + int size; + int subfont; - data = fz_lookup_cjk_font(ctx, ros, serif, &len, &index); + data = fz_lookup_cjk_font(ctx, ros, &size, &subfont); if (!data) fz_throw(ctx, FZ_ERROR_GENERIC, "cannot find builtin CJK font"); /* A glyph bbox cache is too big for CJK fonts. */ - fontdesc->font = fz_new_font_from_memory(ctx, fontname, data, len, index, 0); + fontdesc->font = fz_new_font_from_memory(ctx, fontname, data, size, subfont, 0); } fontdesc->font->flags.ft_substitute = 1; @@ -451,13 +451,13 @@ pdf_load_system_font(fz_context *ctx, pdf_font_desc *fontdesc, const char *fontn if (collection) { if (!strcmp(collection, "Adobe-CNS1")) - pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_CNS_1, serif); + pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_CNS, serif); else if (!strcmp(collection, "Adobe-GB1")) - pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_GB_1, serif); + pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_GB, serif); else if (!strcmp(collection, "Adobe-Japan1")) - pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_JAPAN_1, serif); + pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_JAPAN, serif); else if (!strcmp(collection, "Adobe-Korea1")) - pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_KOREA_1, serif); + pdf_load_substitute_cjk_font(ctx, fontdesc, fontname, FZ_ADOBE_KOREA, serif); else { if (strcmp(collection, "Adobe-Identity") != 0) @@ -2133,28 +2133,28 @@ pdf_add_cjk_font(fz_context *ctx, pdf_document *doc, fz_font *fzfont, int script switch (script) { - case FZ_ADOBE_CNS_1: /* traditional chinese */ + default: + script = FZ_ADOBE_CNS; + /* fall through */ + case FZ_ADOBE_CNS: /* traditional chinese */ basefont = serif ? "Ming" : "Fangti"; encoding = wmode ? "UniCNS-UTF16-V" : "UniCNS-UTF16-H"; ordering = "CNS1"; supplement = 7; break; - case FZ_ADOBE_GB_1: /* simplified chinese */ + case FZ_ADOBE_GB: /* simplified chinese */ basefont = serif ? "Song" : "Heiti"; encoding = wmode ? "UniGB-UTF16-V" : "UniGB-UTF16-H"; ordering = "GB1"; supplement = 5; break; - default: - script = FZ_ADOBE_JAPAN_1; - /* fall through */ - case FZ_ADOBE_JAPAN_1: + case FZ_ADOBE_JAPAN: basefont = serif ? "Mincho" : "Gothic"; encoding = wmode ? "UniJIS-UTF16-V" : "UniJIS-UTF16-H"; ordering = "Japan1"; supplement = 6; break; - case FZ_ADOBE_KOREA_1: + case FZ_ADOBE_KOREA: basefont = serif ? "Batang" : "Dotum"; encoding = wmode ? "UniKS-UTF16-V" : "UniKS-UTF16-H"; ordering = "Korea1"; -- cgit v1.2.3