diff options
author | Sebastian Rasmussen <sebras@hotmail.com> | 2010-10-23 13:18:56 +0000 |
---|---|---|
committer | Sebastian Rasmussen <sebras@hotmail.com> | 2010-10-23 13:18:56 +0000 |
commit | 63bdae9f63788b4f9e4e571bef420445d7163ad6 (patch) | |
tree | abb1abbaa1b445306ab7621e6456de8c1e91184c | |
parent | feff00254eefa09482706670be5b5990d3e57c38 (diff) | |
download | mupdf-63bdae9f63788b4f9e4e571bef420445d7163ad6.tar.xz |
Take font style into account when loading builtin fonts.
-rw-r--r-- | mupdf/mupdf.h | 2 | ||||
-rw-r--r-- | mupdf/pdf_font.c | 11 |
2 files changed, 8 insertions, 5 deletions
diff --git a/mupdf/mupdf.h b/mupdf/mupdf.h index 66fdf9a4..65c03197 100644 --- a/mupdf/mupdf.h +++ b/mupdf/mupdf.h @@ -431,7 +431,7 @@ fz_error pdf_loadtype3font(pdf_fontdesc **fontp, pdf_xref *xref, fz_obj *rdb, fz /* font.c */ int pdf_fontcidtogid(pdf_fontdesc *fontdesc, int cid); -fz_error pdf_loadfontdescriptor(pdf_fontdesc *font, pdf_xref *xref, fz_obj *desc, char *collection); +fz_error pdf_loadfontdescriptor(pdf_fontdesc *font, pdf_xref *xref, fz_obj *desc, char *collection, char *basefont); fz_error pdf_loadfont(pdf_fontdesc **fontp, pdf_xref *xref, fz_obj *rdb, fz_obj *obj); pdf_fontdesc * pdf_newfontdesc(void); pdf_fontdesc * pdf_keepfont(pdf_fontdesc *fontdesc); diff --git a/mupdf/pdf_font.c b/mupdf/pdf_font.c index 0758f0a8..b600573d 100644 --- a/mupdf/pdf_font.c +++ b/mupdf/pdf_font.c @@ -268,7 +268,7 @@ loadsimplefont(pdf_fontdesc **fontdescp, pdf_xref *xref, fz_obj *dict) descriptor = fz_dictgets(dict, "FontDescriptor"); if (descriptor) - error = pdf_loadfontdescriptor(fontdesc, xref, descriptor, nil); + error = pdf_loadfontdescriptor(fontdesc, xref, descriptor, nil, basefont); else error = pdf_loadbuiltinfont(fontdesc, fontname); if (error) @@ -584,7 +584,7 @@ loadcidfont(pdf_fontdesc **fontdescp, pdf_xref *xref, fz_obj *dict, fz_obj *enco descriptor = fz_dictgets(dict, "FontDescriptor"); if (descriptor) - error = pdf_loadfontdescriptor(fontdesc, xref, descriptor, collection); + error = pdf_loadfontdescriptor(fontdesc, xref, descriptor, collection, basefont); else error = fz_throw("syntaxerror: missing font descriptor"); if (error) @@ -831,7 +831,7 @@ loadtype0(pdf_fontdesc **fontdescp, pdf_xref *xref, fz_obj *dict) */ fz_error -pdf_loadfontdescriptor(pdf_fontdesc *fontdesc, pdf_xref *xref, fz_obj *dict, char *collection) +pdf_loadfontdescriptor(pdf_fontdesc *fontdesc, pdf_xref *xref, fz_obj *dict, char *collection, char *basefont) { fz_error error; fz_obj *obj1, *obj2, *obj3, *obj; @@ -841,7 +841,10 @@ pdf_loadfontdescriptor(pdf_fontdesc *fontdesc, pdf_xref *xref, fz_obj *dict, cha pdf_logfont("load fontdescriptor {\n"); - origname = fz_toname(fz_dictgets(dict, "FontName")); + if (!strchr(basefont, ',')) + origname = fz_toname(fz_dictgets(dict, "FontName")); + else + origname = basefont; fontname = cleanfontname(origname); pdf_logfont("fontname %s -> %s\n", origname, fontname); |