diff options
-rw-r--r-- | mupdf/pdf_font.c | 11 | ||||
-rw-r--r-- | mupdf/pdf_unicode.c | 2 |
2 files changed, 12 insertions, 1 deletions
diff --git a/mupdf/pdf_font.c b/mupdf/pdf_font.c index df92eff8..a96d0d45 100644 --- a/mupdf/pdf_font.c +++ b/mupdf/pdf_font.c @@ -301,6 +301,7 @@ loadsimplefont(pdf_font **fontp, pdf_xref *xref, fz_obj *dict, fz_obj *ref) char *basefont; char *fontname; char *estrings[256]; + char ebuffer[256][32]; int i, k, n, e; basefont = fz_toname(fz_dictgets(dict, "BaseFont")); @@ -482,7 +483,12 @@ loadsimplefont(pdf_font **fontp, pdf_xref *xref, fz_obj *dict, fz_obj *ref) { pdf_logfont("encode truetype symbolic\n"); for (i = 0; i < 256; i++) + { etable[i] = FT_Get_Char_Index(face, i); + FT_Get_Glyph_Name(face, etable[i], ebuffer[i], 32); + if (ebuffer[i][0]) + estrings[i] = ebuffer[i]; + } } } @@ -493,7 +499,12 @@ loadsimplefont(pdf_font **fontp, pdf_xref *xref, fz_obj *dict, fz_obj *ref) { pdf_logfont("encode builtin\n"); for (i = 0; i < 256; i++) + { etable[i] = FT_Get_Char_Index(face, i); + FT_Get_Glyph_Name(face, etable[i], ebuffer[i], 32); + if (ebuffer[i][0]) + estrings[i] = ebuffer[i]; + } } error = pdf_makeidentitycmap(&font->encoding, 0, 1); diff --git a/mupdf/pdf_unicode.c b/mupdf/pdf_unicode.c index be57f7a2..c9cc0807 100644 --- a/mupdf/pdf_unicode.c +++ b/mupdf/pdf_unicode.c @@ -78,7 +78,7 @@ pdf_loadtounicode(pdf_font *font, pdf_xref *xref, if (strings[i]) font->cidtoucs[i] = pdf_lookupagl(strings[i]); else - font->cidtoucs[i] = 0; + font->cidtoucs[i] = '?'; } return nil; |