X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=pdf%2Fxpdf%2FGfxFont.h;h=62dfd0881ad24b9842f61e3cdf52d221ebb95825;hb=5932479cc8c371a385616b5909df558a091b7111;hp=c67ac29a40a9aa12965eb5ed9cef0138861751c1;hpb=2a393c134fe3fe8eb85bf818cb7ad6ae4396322a;p=evince.git diff --git a/pdf/xpdf/GfxFont.h b/pdf/xpdf/GfxFont.h index c67ac29a..62dfd088 100644 --- a/pdf/xpdf/GfxFont.h +++ b/pdf/xpdf/GfxFont.h @@ -2,14 +2,16 @@ // // GfxFont.h // -// Copyright 1996-2002 Glyph & Cog, LLC +// Copyright 1996-2003 Glyph & Cog, LLC // //======================================================================== #ifndef GFXFONT_H #define GFXFONT_H -#ifdef __GNUC__ +#include + +#ifdef USE_GCC_PRAGMAS #pragma interface #endif @@ -21,6 +23,7 @@ class Dict; class CMap; class CharCodeToUnicode; +class FoFiTrueType; struct GfxFontCIDWidths; //------------------------------------------------------------------------ @@ -102,6 +105,10 @@ public: // Get base font name. GString *getName() { return name; } + // Get the original font name (ignornig any munging that might have + // been done to map to a canonical Base-14 font name). + GString *getOrigName() { return origName; } + // Get font type. GfxFontType getType() { return type; } virtual GBool isCIDFont() { return gFalse; } @@ -156,12 +163,14 @@ public: protected: void readFontDescriptor(XRef *xref, Dict *fontDict); - CharCodeToUnicode *readToUnicodeCMap(Dict *fontDict, int nBits); + CharCodeToUnicode *readToUnicodeCMap(Dict *fontDict, int nBits, + CharCodeToUnicode *ctu); void findExtFontFile(); GString *tag; // PDF font tag Ref id; // reference (used as unique ID) GString *name; // font name + GString *origName; // original font name GfxFontType type; // type of font int flags; // font descriptor flags GString *embFontName; // name of embedded font @@ -203,9 +212,16 @@ public: // Returns true if the PDF font specified an encoding. GBool getHasEncoding() { return hasEncoding; } - // Get width of a character or string. + // Returns true if the PDF font specified MacRomanEncoding. + GBool getUsesMacRomanEnc() { return usesMacRomanEnc; } + + // Get width of a character. double getWidth(Guchar c) { return widths[c]; } + // Return a char code-to-GID mapping for the provided font file. + // (This is only useful for TrueType fonts.) + Gushort *getCodeToGIDMap(FoFiTrueType *ff); + // Return the Type 3 CharProc dictionary, or NULL if none. Dict *getCharProcs(); @@ -222,6 +238,7 @@ private: // the string is malloc'ed CharCodeToUnicode *ctu; // char code --> Unicode GBool hasEncoding; + GBool usesMacRomanEnc; double widths[256]; // character widths Object charProcs; // Type 3 CharProcs dictionary Object resources; // Type 3 Resources dictionary @@ -277,7 +294,7 @@ class GfxFontDict { public: // Build the font dictionary, given the PDF font dictionary. - GfxFontDict(XRef *xref, Dict *fontDict); + GfxFontDict(XRef *xref, Ref *fontDictRef, Dict *fontDict); // Destructor. ~GfxFontDict();