File: psFont.h

package info (click to toggle)
ted 2.6-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 7,928 kB
  • ctags: 8,734
  • sloc: ansic: 71,878; makefile: 2,363; sh: 159
file content (129 lines) | stat: -rw-r--r-- 3,400 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
/************************************************************************/
/*									*/
/*  Data structures that describe postscript fonts.			*/
/*									*/
/************************************************************************/

#   ifndef	PS_FONT_H
#   define	PS_FONT_H

#   include	<docFont.h>

typedef struct AfmKerningPair
    {
    int		akpPosition;
    int		akpXVec;
    } AfmKerningPair;

typedef struct AfmBBox
    {
    int		abbLeft;
    int		abbBottom;
    int		abbRight;
    int		abbTop;
    } AfmBBox;

typedef struct AfmCharMetric
    {
    int			acmC;
    int			acmWX;
    AfmBBox		acmBBox;
    char *		acmN;
    AfmKerningPair *	acmKernPairs;
    int			acmKernPairCount;
    } AfmCharMetric;

typedef struct AfmFontInfo
    {
    char *		afiFontName;
    char *		afiFullName;
    char *		afiFamilyName;
    char *		afiWeight;
    double		afiItalicAngle;
    double		afiTanItalicAngle;
    unsigned char	afiIsFixedPitch;
    AfmBBox		afiFontBBox;
    double		afiUnderlinePosition;
    double		afiUnderlineThickness;
    char *		afiEncodingScheme;
    int			afiCapHeight;
    int			afiXHeight;
    int			afiAscender;
    int			afiDescender;
    char *		afiCharacterSet;

    int			afiMetricCount;
    AfmCharMetric *	afiMetrics;

    int			afiMapToIso;
    int			afiEncoding;
    int			afiEncodingVector[256];
    } AfmFontInfo;

/************************************************************************/
/*									*/
/*  Know about the character set of a font.				*/
/*									*/
/************************************************************************/

#   define	ENCODINGpsFONTSPECIFIC		0
#   define	ENCODINGpsISO_8859_1		1
#   define	ENCODINGpsISO_8859_2		2
#   define	ENCODINGpsADOBE_SYMBOL		3
#   define	ENCODINGpsADOBE_CYRILLIC	4

/************************************************************************/
/*									*/
/*  Used to map between font attributes and the actual font used when	*/
/*  printing.								*/
/*									*/
/************************************************************************/

typedef struct PostScriptFont
    {
    AfmFontInfo *	psfAfi;
    TextAttribute	psfAttributes;
    char		psfFontId[25];
    } PostScriptFont;

/************************************************************************/
/*									*/
/*  Permissible aliasses for glyph names.				*/
/*									*/
/************************************************************************/

typedef struct AlternateGlyphName
    {
    const char *	agnStandardName;
    const char *	agnAlternateName;
    } AlternateGlyphName;

/************************************************************************/
/*									*/
/*  Declarations.							*/
/*									*/
/************************************************************************/

extern const char *		psIsoLatin1GlyphNames[256];
extern const char *		psIsoLatin2GlyphNames[256];
extern const char *		psSymbolGlyphNames[256];
extern const char *		psCyrillicGlyphNames[256];

extern const unsigned char	docWIN1250_to_ISO2[256];
extern const unsigned char	docISO2_to_WIN1250[256];

extern const AlternateGlyphName	PS_AlternateNames[];

extern int psCalculateStringExtents(	AfmBBox *		abb,
					const unsigned char *	s,
					int			len,
					int			twipsSize,
					int			withKerning,
					const AfmFontInfo *	afi );

extern int psFontCatalog(	const char *		afmDirectory,
				AppFontFamily **	pFamilies,
				int *			pCount );


#   endif