diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/pdf/pdf-font.c | 8 | ||||
-rw-r--r-- | source/pdf/pdf-fontfile.c | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/source/pdf/pdf-font.c b/source/pdf/pdf-font.c index c6dc7123..5ac722f0 100644 --- a/source/pdf/pdf-font.c +++ b/source/pdf/pdf-font.c @@ -228,14 +228,14 @@ pdf_load_substitute_cjk_font(fz_context *ctx, pdf_font_desc *fontdesc, char *fon { unsigned char *data; unsigned int len; + int index; - data = pdf_lookup_substitute_cjk_font(ros, serif, &len); + data = pdf_lookup_substitute_cjk_font(ros, serif, fontdesc->wmode, &len, &index); if (!data) fz_throw(ctx, FZ_ERROR_GENERIC, "cannot find builtin CJK font"); - /* The DroidSansFallback fonts have both H and V variants in the TTC */ - /* A glyph bbox cache is too big for DroidSansFallback (51k glyphs!) */ - fontdesc->font = fz_new_font_from_memory(ctx, fontname, data, len, fontdesc->wmode, 0); + /* 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->ft_substitute = 1; diff --git a/source/pdf/pdf-fontfile.c b/source/pdf/pdf-fontfile.c index 2e33768d..f0787bc6 100644 --- a/source/pdf/pdf-fontfile.c +++ b/source/pdf/pdf-fontfile.c @@ -136,13 +136,15 @@ pdf_lookup_substitute_font(int mono, int serif, int bold, int italic, unsigned i } unsigned char * -pdf_lookup_substitute_cjk_font(int ros, int serif, unsigned int *len) +pdf_lookup_substitute_cjk_font(int ros, int serif, int wmode, unsigned int *len, int *index) { #ifndef NOCJKFONT #ifndef NOCJKFULL + *index = wmode; *len = sizeof pdf_font_DroidSansFallbackFull; return (unsigned char*) pdf_font_DroidSansFallbackFull; #else + *index = wmode; *len = sizeof pdf_font_DroidSansFallback; return (unsigned char*) pdf_font_DroidSansFallback; #endif |