23class CharCodeToUnicode;
27typedef void (*FontFileOutputFunc)( void *stream, const char *data, int len);
41 virtual const char *getName() = 0;
45 virtual char **getEncoding() = 0;
52class Type1FontFile: public FontFile {
55 Type1FontFile( const char *file, int len);
56 virtual ~Type1FontFile();
57 virtual const char *getName() { return name; }
58 virtual char **getEncoding() { return encoding; }
71struct Type1CPrivateDict;
73class Type1CFontFile: public FontFile {
76 Type1CFontFile( const char *fileA, int lenA);
77 virtual ~Type1CFontFile();
79 virtual const char *getName();
80 virtual char **getEncoding();
84 void convertToType1(FontFileOutputFunc outputFuncA, void *outputStreamA);
89 void convertToCIDType0( const char *psName,
90 FontFileOutputFunc outputFuncA, void *outputStreamA);
95 void convertToType0( const char *psName,
96 FontFileOutputFunc outputFuncA, void *outputStreamA);
100 void readNameAndEncoding();
101 void readTopDict(Type1CTopDict *dict);
102 void readPrivateDict(Type1CPrivateDict *privateDict,
103 int offset, int size);
104 Gushort *readCharset( int charset, int nGlyphs);
105 void eexecWrite( const char *s);
106 void eexecCvtGlyph( const char *glyphName, const Guchar *s, int n);
107 void cvtGlyph( const Guchar *s, int n);
108 void cvtGlyphWidth(GBool useOp);
109 void eexecDumpNum( double x, GBool fpA);
110 void eexecDumpOp1( int opA);
111 void eexecDumpOp2( int opA);
112 void eexecWriteCharstring( const Guchar *s, int n);
113 void getDeltaInt( char *buf, const char *key, const double *opA, int n);
114 void getDeltaReal( char *buf, const char *key, const double *opA, int n);
115 int getIndexLen(Guchar *indexPtr);
116 Guchar *getIndexValPtr(Guchar *indexPtr, int i);
117 Guchar *getIndexEnd(Guchar *indexPtr);
118 Guint getWord(Guchar *ptr, int size);
119 double getNum(Guchar **ptr, GBool *fp);
120 char *getString( int sid, char *buf);
129 Guchar *topDictIdxPtr;
130 Guchar *stringIdxPtr;
133 FontFileOutputFunc outputFunc;
138 double defaultWidthX;
139 double nominalWidthX;
140 GBool defaultWidthXFP;
141 GBool nominalWidthXFP;
151struct TTFontTableHdr;
153class TrueTypeFontFile: public FontFile {
156 TrueTypeFontFile( const char *fileA, int lenA);
162 virtual const char *getName();
164 virtual char **getEncoding();
171 void convertToType42( const char *name, const char **encodingA,
172 CharCodeToUnicode *toUnicode,
173 GBool pdfFontHasEncoding,
174 FontFileOutputFunc outputFunc, void *outputStream);
180 void convertToCIDType2( const char *name, const Gushort *cidMap, int nCIDs,
181 FontFileOutputFunc outputFunc, void *outputStream);
187 void convertToType0( const char *name, const Gushort *cidMap, int nCIDs,
188 FontFileOutputFunc outputFunc, void *outputStream);
193 void writeTTF(FILE *out);
202 TTFontTableHdr *tableHdrs;
207 GBool mungedCmapSize;
209 int getByte( int pos);
210 int getChar( int pos);
211 int getUShort( int pos);
212 int getShort( int pos);
213 Guint getULong( int pos);
214 double getFixed( int pos);
215 int seekTable( const char *tag);
216 int seekTableIdx( const char *tag);
217 void cvtEncoding( const char **encodingA, GBool pdfFontHasEncoding,
218 FontFileOutputFunc outputFunc, void *outputStream);
219 void cvtCharStrings( const char **encodingA, CharCodeToUnicode *toUnicode,
220 GBool pdfFontHasEncoding,
221 FontFileOutputFunc outputFunc, void *outputStream);
222 int getCmapEntry( int cmapFmt, int pos, int code);
223 void cvtSfnts(FontFileOutputFunc outputFunc, void *outputStream,
225 void dumpString( const char *s, int length,
226 FontFileOutputFunc outputFunc, void *outputStream);
227 Guint computeTableChecksum( const char *data, int length);
|