From 63bdae9f63788b4f9e4e571bef420445d7163ad6 Mon Sep 17 00:00:00 2001 From: Sebastian Rasmussen Date: Sat, 23 Oct 2010 13:18:56 +0000 Subject: Take font style into account when loading builtin fonts. --- mupdf/mupdf.h | 2 +- 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); -- cgit v1.2.3