X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=pdf%2Fxpdf%2Fpdffonts.cc;h=66d9c37e39ef6699b41587c09b115e6c6565934e;hb=f75141348caac3ba34ff3b3d8420215386f0eb02;hp=2fcd1a8543e52b397df7f68fc72df55ccdf32c4f;hpb=ad63666daeeda50acc7630132d61fe044634fddd;p=evince.git diff --git a/pdf/xpdf/pdffonts.cc b/pdf/xpdf/pdffonts.cc index 2fcd1a85..66d9c37e 100644 --- a/pdf/xpdf/pdffonts.cc +++ b/pdf/xpdf/pdffonts.cc @@ -22,7 +22,7 @@ #include "GfxFont.h" #include "Annot.h" #include "PDFDoc.h" -#include "config.h" +#include "xpdfconfig.h" static char *fontTypeNames[] = { "unknown", @@ -197,8 +197,9 @@ static void scanFonts(Dict *resDict, PDFDoc *doc) { } if (gfxFontDict) { for (i = 0; i < gfxFontDict->getNumFonts(); ++i) { - font = gfxFontDict->getFont(i); - scanFont(font, doc); + if ((font = gfxFontDict->getFont(i))) { + scanFont(font, doc); + } } delete gfxFontDict; } @@ -225,9 +226,9 @@ static void scanFonts(Dict *resDict, PDFDoc *doc) { static void scanFont(GfxFont *font, PDFDoc *doc) { Ref fontRef, embRef; - Object fontObj, nameObj, toUnicodeObj; + Object fontObj, toUnicodeObj; GString *name; - GBool subset, hasToUnicode; + GBool emb, subset, hasToUnicode; int i; fontRef = *font->getID(); @@ -242,6 +243,13 @@ static void scanFont(GfxFont *font, PDFDoc *doc) { // font name name = font->getOrigName(); + // check for an embedded font + if (font->getType() == fontType3) { + emb = gTrue; + } else { + emb = font->getEmbeddedFontID(&embRef); + } + // look for a ToUnicode map hasToUnicode = gFalse; if (doc->getXRef()->fetch(fontRef.num, fontRef.gen, &fontObj)->isDict()) { @@ -266,7 +274,7 @@ static void scanFont(GfxFont *font, PDFDoc *doc) { printf("%-36s %-12s %-3s %-3s %-3s", name ? name->getCString() : "[none]", fontTypeNames[font->getType()], - font->getEmbeddedFontID(&embRef) ? "yes" : "no", + emb ? "yes" : "no", subset ? "yes" : "no", hasToUnicode ? "yes" : "no"); if (fontRef.gen >= 100000) {