summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Rasmussen <sebras@hotmail.com>2010-10-23 13:18:56 +0000
committerSebastian Rasmussen <sebras@hotmail.com>2010-10-23 13:18:56 +0000
commit63bdae9f63788b4f9e4e571bef420445d7163ad6 (patch)
treeabb1abbaa1b445306ab7621e6456de8c1e91184c
parentfeff00254eefa09482706670be5b5990d3e57c38 (diff)
downloadmupdf-63bdae9f63788b4f9e4e571bef420445d7163ad6.tar.xz
Take font style into account when loading builtin fonts.
-rw-r--r--mupdf/mupdf.h2
-rw-r--r--mupdf/pdf_font.c11
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);