Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/pdf/xpdf/FontFile.h
diff options
context:
space:
mode:
Diffstat (limited to 'pdf/xpdf/FontFile.h')
-rw-r--r--pdf/xpdf/FontFile.h31
1 files changed, 27 insertions, 4 deletions
diff --git a/pdf/xpdf/FontFile.h b/pdf/xpdf/FontFile.h
index a71653c..7aa5ba9 100644
--- a/pdf/xpdf/FontFile.h
+++ b/pdf/xpdf/FontFile.h
@@ -20,6 +20,7 @@
#include "GString.h"
#include "CharTypes.h"
+class GHash;
class CharCodeToUnicode;
//------------------------------------------------------------------------
@@ -156,6 +157,7 @@ private:
//------------------------------------------------------------------------
struct TTFontTableHdr;
+struct TTFontCmap;
class TrueTypeFontFile: public FontFile {
public:
@@ -170,15 +172,34 @@ public:
virtual char **getEncoding();
+ // Return the number of cmaps defined by this font.
+ int getNumCmaps();
+
+ // Return the platform ID of the <i>th cmap.
+ int getCmapPlatform(int i);
+
+ // Return the encoding ID of the <i>th cmap.
+ int getCmapEncoding(int i);
+
+ // Return the index of the cmap for <platform>, <encoding>. Returns
+ // -1 if there is no corresponding cmap.
+ int findCmap(int platform, int enc);
+
+ // Return the GID corresponding to <c> according to the <i>th cmap.
+ Gushort mapCodeToGID(int i, int c);
+
+ // Return a name-to-GID mapping, constructed from the font's post
+ // table. Returns NULL if there is no post table.
+ GHash *getNameToGID();
+
// Convert to a Type 42 font, suitable for embedding in a PostScript
// file. The name will be used as the PostScript font name (so we
// don't need to depend on the 'name' table in the font). The
// encoding is needed because the PDF Font object can modify the
// encoding.
void convertToType42(char *name, char **encodingA,
- CharCodeToUnicode *toUnicode,
GBool pdfFontHasEncoding,
- GBool pdfFontIsSymbolic,
+ Gushort *codeToGID,
FontFileOutputFunc outputFunc, void *outputStream);
// Convert to a Type 2 CIDFont, suitable for embedding in a
@@ -213,6 +234,8 @@ private:
int locaFmt;
int nGlyphs;
GBool mungedCmapSize;
+ TTFontCmap *cmaps;
+ int nCmaps;
int getByte(int pos);
int getChar(int pos);
@@ -224,8 +247,8 @@ private:
int seekTableIdx(char *tag);
void cvtEncoding(char **encodingA, GBool pdfFontHasEncoding,
FontFileOutputFunc outputFunc, void *outputStream);
- void cvtCharStrings(char **encodingA, CharCodeToUnicode *toUnicode,
- GBool pdfFontHasEncoding, GBool pdfFontIsSymbolic,
+ void cvtCharStrings(char **encodingA, GBool pdfFontHasEncoding,
+ Gushort *codeToGID,
FontFileOutputFunc outputFunc, void *outputStream);
int getCmapEntry(int cmapFmt, int pos, int code);
void cvtSfnts(FontFileOutputFunc outputFunc, void *outputStream,