From bbcfffddca05b2a29c2beaf0ed48038e5147f0b2 Mon Sep 17 00:00:00 2001 From: kramm Date: Mon, 12 Jul 2004 13:06:36 +0000 Subject: [PATCH] reapplied change 1.61, due to a CVS conflict. --- pdf2swf/SWFOutputDev.cc | 52 ++++++++++++++++++++++++----------------------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/pdf2swf/SWFOutputDev.cc b/pdf2swf/SWFOutputDev.cc index db114bc..dc5ddad 100644 --- a/pdf2swf/SWFOutputDev.cc +++ b/pdf2swf/SWFOutputDev.cc @@ -224,6 +224,22 @@ public: GfxState *laststate; }; +char*getFontName(GfxFont*font) +{ + GString*gstr = font->getName(); + char* fontname = gstr==0?0:gstr->getCString(); + if(fontname==0) { + char buf[32]; + Ref*r=font->getID(); + sprintf(buf, "UFONT%d", r->num); + return strdup(buf); + } + char* plus = strchr(fontname, '+'); + if(plus && plus < &fontname[strlen(fontname)-1]) + fontname = plus+1; + return fontname; +} + char mybuf[1024]; char* gfxstate2str(GfxState *state) { @@ -303,8 +319,8 @@ char* gfxstate2str(GfxState *state) if(state->getLineJoin()!=0) bufpos+=sprintf(bufpos,"ML%d ", state->getMiterLimit()); - if(state->getFont() && state->getFont()->getName() && state->getFont()->getName()->getCString()) - bufpos+=sprintf(bufpos,"F\"%s\" ",((state->getFont())->getName())->getCString()); + if(state->getFont() && getFontName(state->getFont())) + bufpos+=sprintf(bufpos,"F\"%s\" ",getFontName(state->getFont())); bufpos+=sprintf(bufpos,"FS%.1f ", state->getFontSize()); bufpos+=sprintf(bufpos,"MAT[%.1f/%.1f/%.1f/%.1f/%.1f/%.1f] ", state->getTextMat()[0],state->getTextMat()[1],state->getTextMat()[2], state->getTextMat()[3],state->getTextMat()[4],state->getTextMat()[5]); @@ -331,6 +347,8 @@ char* gfxstate2str(GfxState *state) return mybuf; } + + void dumpFontInfo(char*loglevel, GfxFont*font); int lastdumps[1024]; int lastdumppos = 0; @@ -360,15 +378,13 @@ void showFontError(GfxFont*font, int nr) void dumpFontInfo(char*loglevel, GfxFont*font) { - GString *gstr; - char*name = 0; - gstr = font->getName(); + char* name = getFontName(font); Ref* r=font->getID(); - msg("%s=========== %s (ID:%d,%d) ==========\n", loglevel, gstr?FIXNULL(gstr->getCString()):"(unknown font)", r->num,r->gen); + msg("%s=========== %s (ID:%d,%d) ==========\n", loglevel, name, r->num,r->gen); - gstr = font->getTag(); - if(gstr) - msg("%sTag: %s\n", loglevel, FIXNULL(gstr->getCString())); + GString*gstr = font->getTag(); + + msg("%sTag: %s\n", loglevel, name); if(font->isCIDFont()) msg("%sis CID font\n", loglevel); @@ -1098,20 +1114,6 @@ char*SWFOutputDev::writeEmbeddedFontToFile(XRef*ref, GfxFont*font) return strdup(tmpFileName); } -char* gfxFontName(GfxFont* gfxFont) -{ - GString *gstr; - gstr = gfxFont->getName(); - if(gstr) { - return gstr->getCString(); - } - else { - char buf[32]; - Ref*r=gfxFont->getID(); - sprintf(buf, "UFONT%d", r->num); - return strdup(buf); - } -} char* substitutetarget[256]; char* substitutesource[256]; @@ -1131,7 +1133,7 @@ char* SWFOutputDev::substituteFont(GfxFont*gfxFont, char* oldname) if(oldname) { substitutesource[substitutepos] = oldname; substitutetarget[substitutepos] = fontname; - msg(" substituting %s -> %s", FIXNULL(oldname), FIXNULL(fontname)); + msg(" substituting %s -> %s", FIXNULL(oldname), FIXNULL(fontname)); substitutepos ++; } return fontname; @@ -1268,7 +1270,7 @@ void SWFOutputDev::updateFont(GfxState *state) if (!gfxFont) { return; } - char * fontname = gfxFontName(gfxFont); + char * fontname = getFontName(gfxFont); int t; /* first, look if we substituted this font before- -- 1.7.10.4