summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2005-04-06 10:24:36 +0200
committerTor Andersson <tor@ghostscript.com>2005-04-06 10:24:36 +0200
commit809a40f0d3fa6fd593275526c985482058dc2480 (patch)
tree05267100a06eea3d4ba4419f0b5fbbbed0306f5f
parent593551cdddc96a9f74a1372852594d6ff3f7ed0d (diff)
downloadmupdf-809a40f0d3fa6fd593275526c985482058dc2480.tar.xz
get glyph names for tounicode when encoding is builtin
-rw-r--r--mupdf/pdf_font.c11
-rw-r--r--mupdf/pdf_unicode.c2
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;