Remove redundant data structure from font metrics.
[wine] / dlls / wineps / data / Helvetica.c
1 /*******************************************************************************
2  *
3  *      Font metric data for Helvetica
4  *
5  *      Copyright 2001 Ian Pilcher
6  *
7  *
8  *      This data is derived from the Adobe Font Metrics files at
9  *
10  *          ftp://ftp.adobe.com/pub/adobe/type/win/all/afmfiles/base35/
11  *
12  *      which are Copyright 1985-1992 Adobe Systems Incorporated.
13  *
14  *      Windows metrics derived from Arial, which is Copyright 1990-1992 The
15  *      Monotype Corporation plc/Type Solutions Inc.
16  *
17  */
18
19 #include "psdrv.h"
20
21
22 /*
23  *  Glyph metrics
24  */
25
26 static AFMMETRICS met_Helvetica[228] = 
27 {
28     {
29          32, 0x0020,  278, PSDRV_AGLGlyphNames + 1169,
30                 {    0,    0,    0,    0 }, NULL        /* space */
31     },
32     {
33          33, 0x0021,  278, PSDRV_AGLGlyphNames +  907,
34                 {   90,    0,  187,  718 }, NULL        /* exclam */
35     },
36     {
37          34, 0x0022,  355, PSDRV_AGLGlyphNames + 1118,
38                 {   70,  463,  285,  718 }, NULL        /* quotedbl */
39     },
40     {
41          35, 0x0023,  556, PSDRV_AGLGlyphNames + 1043,
42                 {   28,    0,  529,  688 }, NULL        /* numbersign */
43     },
44     {
45          36, 0x0024,  556, PSDRV_AGLGlyphNames +  866,
46                 {   32, -115,  520,  775 }, NULL        /* dollar */
47     },
48     {
49          37, 0x0025,  889, PSDRV_AGLGlyphNames + 1094,
50                 {   39,  -19,  850,  703 }, NULL        /* percent */
51     },
52     {
53          38, 0x0026,  667, PSDRV_AGLGlyphNames +  755,
54                 {   44,  -15,  645,  718 }, NULL        /* ampersand */
55     },
56     {
57         169, 0x0027,  191, PSDRV_AGLGlyphNames + 1126,
58                 {   59,  463,  132,  718 }, NULL        /* quotesingle */
59     },
60     {
61          40, 0x0028,  333, PSDRV_AGLGlyphNames + 1081,
62                 {   68, -207,  299,  733 }, NULL        /* parenleft */
63     },
64     {
65          41, 0x0029,  333, PSDRV_AGLGlyphNames + 1087,
66                 {   34, -207,  265,  733 }, NULL        /* parenright */
67     },
68     {
69          42, 0x002a,  389, PSDRV_AGLGlyphNames +  782,
70                 {   39,  431,  349,  718 }, NULL        /* asterisk */
71     },
72     {
73          43, 0x002b,  584, PSDRV_AGLGlyphNames + 1105,
74                 {   39,    0,  545,  505 }, NULL        /* plus */
75     },
76     {
77          44, 0x002c,  278, PSDRV_AGLGlyphNames +  835,
78                 {   87, -147,  191,  106 }, NULL        /* comma */
79     },
80     {
81          45, 0x002d,  333, PSDRV_AGLGlyphNames +  961,
82                 {   44,  232,  289,  322 }, NULL        /* hyphen */
83     },
84     {
85          46, 0x002e,  278, PSDRV_AGLGlyphNames + 1095,
86                 {   87,    0,  191,  106 }, NULL        /* period */
87     },
88     {
89          47, 0x002f,  278, PSDRV_AGLGlyphNames + 1167,
90                 {  -17,  -19,  295,  737 }, NULL        /* slash */
91     },
92     {
93          48, 0x0030,  556, PSDRV_AGLGlyphNames + 1253,
94                 {   37,  -19,  519,  703 }, NULL        /* zero */
95     },
96     {
97          49, 0x0031,  556, PSDRV_AGLGlyphNames + 1060,
98                 {  101,    0,  359,  703 }, NULL        /* one */
99     },
100     {
101          50, 0x0032,  556, PSDRV_AGLGlyphNames + 1206,
102                 {   26,    0,  507,  703 }, NULL        /* two */
103     },
104     {
105          51, 0x0033,  556, PSDRV_AGLGlyphNames + 1188,
106                 {   34,  -19,  522,  703 }, NULL        /* three */
107     },
108     {
109          52, 0x0034,  556, PSDRV_AGLGlyphNames +  930,
110                 {   25,    0,  523,  703 }, NULL        /* four */
111     },
112     {
113          53, 0x0035,  556, PSDRV_AGLGlyphNames +  922,
114                 {   32,  -19,  514,  688 }, NULL        /* five */
115     },
116     {
117          54, 0x0036,  556, PSDRV_AGLGlyphNames + 1163,
118                 {   38,  -19,  518,  703 }, NULL        /* six */
119     },
120     {
121          55, 0x0037,  556, PSDRV_AGLGlyphNames + 1154,
122                 {   37,    0,  523,  688 }, NULL        /* seven */
123     },
124     {
125          56, 0x0038,  556, PSDRV_AGLGlyphNames +  886,
126                 {   38,  -19,  517,  703 }, NULL        /* eight */
127     },
128     {
129          57, 0x0039,  556, PSDRV_AGLGlyphNames + 1032,
130                 {   42,  -19,  514,  703 }, NULL        /* nine */
131     },
132     {
133          58, 0x003a,  278, PSDRV_AGLGlyphNames +  833,
134                 {   87,    0,  191,  516 }, NULL        /* colon */
135     },
136     {
137          59, 0x003b,  278, PSDRV_AGLGlyphNames + 1153,
138                 {   87, -147,  191,  516 }, NULL        /* semicolon */
139     },
140     {
141          60, 0x003c,  584, PSDRV_AGLGlyphNames + 1003,
142                 {   48,   11,  536,  495 }, NULL        /* less */
143     },
144     {
145          61, 0x003d,  584, PSDRV_AGLGlyphNames +  900,
146                 {   39,  115,  545,  390 }, NULL        /* equal */
147     },
148     {
149          62, 0x003e,  584, PSDRV_AGLGlyphNames +  948,
150                 {   48,   11,  536,  495 }, NULL        /* greater */
151     },
152     {
153          63, 0x003f,  556, PSDRV_AGLGlyphNames + 1114,
154                 {   56,    0,  492,  727 }, NULL        /* question */
155     },
156     {
157          64, 0x0040, 1015, PSDRV_AGLGlyphNames +  785,
158                 {  147,  -19,  868,  737 }, NULL        /* at */
159     },
160     {
161          65, 0x0041,  667, PSDRV_AGLGlyphNames +    0,
162                 {   14,    0,  654,  718 }, NULL        /* A */
163     },
164     {
165          66, 0x0042,  667, PSDRV_AGLGlyphNames +   25,
166                 {   74,    0,  627,  718 }, NULL        /* B */
167     },
168     {
169          67, 0x0043,  722, PSDRV_AGLGlyphNames +   29,
170                 {   44,  -19,  681,  737 }, NULL        /* C */
171     },
172     {
173          68, 0x0044,  722, PSDRV_AGLGlyphNames +   42,
174                 {   81,    0,  674,  718 }, NULL        /* D */
175     },
176     {
177          69, 0x0045,  667, PSDRV_AGLGlyphNames +   52,
178                 {   86,    0,  616,  718 }, NULL        /* E */
179     },
180     {
181          70, 0x0046,  611, PSDRV_AGLGlyphNames +   75,
182                 {   86,    0,  583,  718 }, NULL        /* F */
183     },
184     {
185          71, 0x0047,  778, PSDRV_AGLGlyphNames +   77,
186                 {   48,  -19,  704,  737 }, NULL        /* G */
187     },
188     {
189          72, 0x0048,  722, PSDRV_AGLGlyphNames +   87,
190                 {   77,    0,  646,  718 }, NULL        /* H */
191     },
192     {
193          73, 0x0049,  278, PSDRV_AGLGlyphNames +   97,
194                 {   91,    0,  188,  718 }, NULL        /* I */
195     },
196     {
197          74, 0x004a,  500, PSDRV_AGLGlyphNames +  118,
198                 {   17,  -19,  428,  718 }, NULL        /* J */
199     },
200     {
201          75, 0x004b,  667, PSDRV_AGLGlyphNames +  121,
202                 {   76,    0,  663,  718 }, NULL        /* K */
203     },
204     {
205          76, 0x004c,  556, PSDRV_AGLGlyphNames +  125,
206                 {   76,    0,  537,  718 }, NULL        /* L */
207     },
208     {
209          77, 0x004d,  833, PSDRV_AGLGlyphNames +  135,
210                 {   73,    0,  761,  718 }, NULL        /* M */
211     },
212     {
213          78, 0x004e,  722, PSDRV_AGLGlyphNames +  140,
214                 {   76,    0,  646,  718 }, NULL        /* N */
215     },
216     {
217          79, 0x004f,  778, PSDRV_AGLGlyphNames +  148,
218                 {   39,  -19,  739,  737 }, NULL        /* O */
219     },
220     {
221          80, 0x0050,  667, PSDRV_AGLGlyphNames +  174,
222                 {   86,    0,  622,  718 }, NULL        /* P */
223     },
224     {
225          81, 0x0051,  778, PSDRV_AGLGlyphNames +  179,
226                 {   39,  -56,  739,  737 }, NULL        /* Q */
227     },
228     {
229          82, 0x0052,  722, PSDRV_AGLGlyphNames +  181,
230                 {   88,    0,  684,  718 }, NULL        /* R */
231     },
232     {
233          83, 0x0053,  667, PSDRV_AGLGlyphNames +  189,
234                 {   49,  -19,  620,  737 }, NULL        /* S */
235     },
236     {
237          84, 0x0054,  611, PSDRV_AGLGlyphNames +  238,
238                 {   14,    0,  597,  718 }, NULL        /* T */
239     },
240     {
241          85, 0x0055,  722, PSDRV_AGLGlyphNames +  248,
242                 {   79,  -19,  644,  718 }, NULL        /* U */
243     },
244     {
245          86, 0x0056,  667, PSDRV_AGLGlyphNames +  269,
246                 {   20,    0,  647,  718 }, NULL        /* V */
247     },
248     {
249          87, 0x0057,  944, PSDRV_AGLGlyphNames +  271,
250                 {   16,    0,  928,  718 }, NULL        /* W */
251     },
252     {
253          88, 0x0058,  667, PSDRV_AGLGlyphNames +  277,
254                 {   19,    0,  648,  718 }, NULL        /* X */
255     },
256     {
257          89, 0x0059,  667, PSDRV_AGLGlyphNames +  280,
258                 {   14,    0,  653,  718 }, NULL        /* Y */
259     },
260     {
261          90, 0x005a,  611, PSDRV_AGLGlyphNames +  288,
262                 {   23,    0,  588,  718 }, NULL        /* Z */
263     },
264     {
265          91, 0x005b,  278, PSDRV_AGLGlyphNames +  801,
266                 {   63, -196,  250,  722 }, NULL        /* bracketleft */
267     },
268     {
269          92, 0x005c,  278, PSDRV_AGLGlyphNames +  788,
270                 {  -17,  -19,  295,  737 }, NULL        /* backslash */
271     },
272     {
273          93, 0x005d,  278, PSDRV_AGLGlyphNames +  805,
274                 {   28, -196,  215,  722 }, NULL        /* bracketright */
275     },
276     {
277          94, 0x005e,  469, PSDRV_AGLGlyphNames +  780,
278                 {  -14,  264,  483,  688 }, NULL        /* asciicircum */
279     },
280     {
281          95, 0x005f,  556, PSDRV_AGLGlyphNames + 1221,
282                 {    0, -125,  556,  -75 }, NULL        /* underscore */
283     },
284     {
285         193, 0x0060,  333, PSDRV_AGLGlyphNames +  945,
286                 {   14,  593,  211,  734 }, NULL        /* grave */
287     },
288     {
289          97, 0x0061,  556, PSDRV_AGLGlyphNames +  295,
290                 {   36,  -15,  530,  538 }, NULL        /* a */
291     },
292     {
293          98, 0x0062,  556, PSDRV_AGLGlyphNames +  787,
294                 {   58,  -15,  517,  718 }, NULL        /* b */
295     },
296     {
297          99, 0x0063,  500, PSDRV_AGLGlyphNames +  813,
298                 {   30,  -15,  477,  538 }, NULL        /* c */
299     },
300     {
301         100, 0x0064,  556, PSDRV_AGLGlyphNames +  848,
302                 {   35,  -15,  499,  718 }, NULL        /* d */
303     },
304     {
305         101, 0x0065,  556, PSDRV_AGLGlyphNames +  878,
306                 {   40,  -15,  516,  538 }, NULL        /* e */
307     },
308     {
309         102, 0x0066,  278, PSDRV_AGLGlyphNames +  913,
310                 {   14,    0,  262,  728 }, NULL        /* f */
311     },
312     {
313         103, 0x0067,  556, PSDRV_AGLGlyphNames +  936,
314                 {   40, -220,  499,  538 }, NULL        /* g */
315     },
316     {
317         104, 0x0068,  556, PSDRV_AGLGlyphNames +  954,
318                 {   65,    0,  491,  718 }, NULL        /* h */
319     },
320     {
321         105, 0x0069,  222, PSDRV_AGLGlyphNames +  964,
322                 {   67,    0,  155,  718 }, NULL        /* i */
323     },
324     {
325         106, 0x006a,  222, PSDRV_AGLGlyphNames +  989,
326                 {  -16, -210,  155,  718 }, NULL        /* j */
327     },
328     {
329         107, 0x006b,  500, PSDRV_AGLGlyphNames +  991,
330                 {   67,    0,  501,  718 }, NULL        /* k */
331     },
332     {
333         108, 0x006c,  222, PSDRV_AGLGlyphNames +  995,
334                 {   67,    0,  155,  718 }, NULL        /* l */
335     },
336     {
337         109, 0x006d,  833, PSDRV_AGLGlyphNames + 1016,
338                 {   65,    0,  769,  538 }, NULL        /* m */
339     },
340     {
341         110, 0x006e,  556, PSDRV_AGLGlyphNames + 1027,
342                 {   65,    0,  491,  538 }, NULL        /* n */
343     },
344     {
345         111, 0x006f,  556, PSDRV_AGLGlyphNames + 1044,
346                 {   35,  -14,  521,  538 }, NULL        /* o */
347     },
348     {
349         112, 0x0070,  556, PSDRV_AGLGlyphNames + 1079,
350                 {   58, -207,  517,  538 }, NULL        /* p */
351     },
352     {
353         113, 0x0071,  556, PSDRV_AGLGlyphNames + 1113,
354                 {   35, -207,  494,  538 }, NULL        /* q */
355     },
356     {
357         114, 0x0072,  333, PSDRV_AGLGlyphNames + 1127,
358                 {   77,    0,  332,  538 }, NULL        /* r */
359     },
360     {
361         115, 0x0073,  500, PSDRV_AGLGlyphNames + 1145,
362                 {   32,  -15,  464,  538 }, NULL        /* s */
363     },
364     {
365         116, 0x0074,  278, PSDRV_AGLGlyphNames + 1178,
366                 {   14,   -7,  257,  669 }, NULL        /* t */
367     },
368     {
369         117, 0x0075,  556, PSDRV_AGLGlyphNames + 1212,
370                 {   68,  -15,  489,  523 }, NULL        /* u */
371     },
372     {
373         118, 0x0076,  500, PSDRV_AGLGlyphNames + 1234,
374                 {    8,    0,  492,  523 }, NULL        /* v */
375     },
376     {
377         119, 0x0077,  722, PSDRV_AGLGlyphNames + 1235,
378                 {   14,    0,  709,  523 }, NULL        /* w */
379     },
380     {
381         120, 0x0078,  500, PSDRV_AGLGlyphNames + 1241,
382                 {   11,    0,  490,  523 }, NULL        /* x */
383     },
384     {
385         121, 0x0079,  500, PSDRV_AGLGlyphNames + 1243,
386                 {   11, -214,  489,  523 }, NULL        /* y */
387     },
388     {
389         122, 0x007a,  500, PSDRV_AGLGlyphNames + 1249,
390                 {   31,    0,  469,  523 }, NULL        /* z */
391     },
392     {
393         123, 0x007b,  334, PSDRV_AGLGlyphNames +  793,
394                 {   42, -196,  292,  722 }, NULL        /* braceleft */
395     },
396     {
397         124, 0x007c,  260, PSDRV_AGLGlyphNames +  789,
398                 {   94,  -19,  167,  737 }, NULL        /* bar */
399     },
400     {
401         125, 0x007d,  334, PSDRV_AGLGlyphNames +  797,
402                 {   42, -196,  292,  722 }, NULL        /* braceright */
403     },
404     {
405         126, 0x007e,  584, PSDRV_AGLGlyphNames +  781,
406                 {   61,  180,  523,  326 }, NULL        /* asciitilde */
407     },
408     {
409         161, 0x00a1,  333, PSDRV_AGLGlyphNames +  909,
410                 {  118, -195,  215,  523 }, NULL        /* exclamdown */
411     },
412     {
413         162, 0x00a2,  556, PSDRV_AGLGlyphNames +  822,
414                 {   51, -115,  513,  623 }, NULL        /* cent */
415     },
416     {
417         163, 0x00a3,  556, PSDRV_AGLGlyphNames + 1173,
418                 {   33,  -16,  539,  718 }, NULL        /* sterling */
419     },
420     {
421         168, 0x00a4,  556, PSDRV_AGLGlyphNames +  843,
422                 {   28,   99,  528,  603 }, NULL        /* currency */
423     },
424     {
425         165, 0x00a5,  556, PSDRV_AGLGlyphNames + 1247,
426                 {    3,    0,  553,  688 }, NULL        /* yen */
427     },
428     {
429          -1, 0x00a6,  260, PSDRV_AGLGlyphNames +  810,
430                 {   94,  -19,  167,  737 }, NULL        /* brokenbar */
431     },
432     {
433         167, 0x00a7,  556, PSDRV_AGLGlyphNames + 1152,
434                 {   43, -191,  512,  737 }, NULL        /* section */
435     },
436     {
437         200, 0x00a8,  333, PSDRV_AGLGlyphNames +  859,
438                 {   40,  604,  293,  706 }, NULL        /* dieresis */
439     },
440     {
441          -1, 0x00a9,  737, PSDRV_AGLGlyphNames +  840,
442                 {  -14,  -19,  752,  737 }, NULL        /* copyright */
443     },
444     {
445         227, 0x00aa,  370, PSDRV_AGLGlyphNames + 1071,
446                 {   24,  304,  346,  737 }, NULL        /* ordfeminine */
447     },
448     {
449         171, 0x00ab,  556, PSDRV_AGLGlyphNames +  950,
450                 {   97,  108,  459,  446 }, NULL        /* guillemotleft */
451     },
452     {
453          -1, 0x00ac,  584, PSDRV_AGLGlyphNames + 1009,
454                 {   39,  108,  545,  390 }, NULL        /* logicalnot */
455     },
456     {
457          -1, 0x00ae,  737, PSDRV_AGLGlyphNames + 1135,
458                 {  -14,  -19,  752,  737 }, NULL        /* registered */
459     },
460     {
461          -1, 0x00b0,  400, PSDRV_AGLGlyphNames +  856,
462                 {   54,  411,  346,  703 }, NULL        /* degree */
463     },
464     {
465          -1, 0x00b1,  584, PSDRV_AGLGlyphNames + 1106,
466                 {   39,    0,  545,  506 }, NULL        /* plusminus */
467     },
468     {
469          -1, 0x00b2,  333, PSDRV_AGLGlyphNames + 1210,
470                 {    4,  281,  323,  703 }, NULL        /* twosuperior */
471     },
472     {
473          -1, 0x00b3,  333, PSDRV_AGLGlyphNames + 1194,
474                 {    5,  270,  325,  703 }, NULL        /* threesuperior */
475     },
476     {
477         194, 0x00b4,  333, PSDRV_AGLGlyphNames +  500,
478                 {  122,  593,  319,  734 }, NULL        /* acute */
479     },
480     {
481         182, 0x00b6,  537, PSDRV_AGLGlyphNames + 1080,
482                 {   18, -173,  497,  718 }, NULL        /* paragraph */
483     },
484     {
485         180, 0x00b7,  278, PSDRV_AGLGlyphNames + 1096,
486                 {   77,  190,  202,  315 }, NULL        /* periodcentered */
487     },
488     {
489         203, 0x00b8,  333, PSDRV_AGLGlyphNames +  821,
490                 {   45, -225,  259,    0 }, NULL        /* cedilla */
491     },
492     {
493          -1, 0x00b9,  333, PSDRV_AGLGlyphNames + 1068,
494                 {   43,  281,  222,  703 }, NULL        /* onesuperior */
495     },
496     {
497         235, 0x00ba,  365, PSDRV_AGLGlyphNames + 1072,
498                 {   25,  304,  341,  737 }, NULL        /* ordmasculine */
499     },
500     {
501         187, 0x00bb,  556, PSDRV_AGLGlyphNames +  951,
502                 {   97,  108,  459,  446 }, NULL        /* guillemotright */
503     },
504     {
505          -1, 0x00bc,  834, PSDRV_AGLGlyphNames + 1067,
506                 {   73,  -19,  756,  703 }, NULL        /* onequarter */
507     },
508     {
509          -1, 0x00bd,  834, PSDRV_AGLGlyphNames + 1064,
510                 {   43,  -19,  773,  703 }, NULL        /* onehalf */
511     },
512     {
513          -1, 0x00be,  834, PSDRV_AGLGlyphNames + 1192,
514                 {   45,  -19,  810,  703 }, NULL        /* threequarters */
515     },
516     {
517         191, 0x00bf,  611, PSDRV_AGLGlyphNames + 1115,
518                 {   91, -201,  527,  525 }, NULL        /* questiondown */
519     },
520     {
521          -1, 0x00c0,  667, PSDRV_AGLGlyphNames +   13,
522                 {   14,    0,  654,  929 }, NULL        /* Agrave */
523     },
524     {
525          -1, 0x00c1,  667, PSDRV_AGLGlyphNames +    4,
526                 {   14,    0,  654,  929 }, NULL        /* Aacute */
527     },
528     {
529          -1, 0x00c2,  667, PSDRV_AGLGlyphNames +    7,
530                 {   14,    0,  654,  929 }, NULL        /* Acircumflex */
531     },
532     {
533          -1, 0x00c3,  667, PSDRV_AGLGlyphNames +   23,
534                 {   14,    0,  654,  917 }, NULL        /* Atilde */
535     },
536     {
537          -1, 0x00c4,  667, PSDRV_AGLGlyphNames +   11,
538                 {   14,    0,  654,  901 }, NULL        /* Adieresis */
539     },
540     {
541          -1, 0x00c5,  667, PSDRV_AGLGlyphNames +   19,
542                 {   14,    0,  654,  931 }, NULL        /* Aring */
543     },
544     {
545         225, 0x00c6, 1000, PSDRV_AGLGlyphNames +    1,
546                 {    8,    0,  951,  718 }, NULL        /* AE */
547     },
548     {
549          -1, 0x00c7,  722, PSDRV_AGLGlyphNames +   34,
550                 {   44, -225,  681,  737 }, NULL        /* Ccedilla */
551     },
552     {
553          -1, 0x00c8,  667, PSDRV_AGLGlyphNames +   62,
554                 {   86,    0,  616,  929 }, NULL        /* Egrave */
555     },
556     {
557          -1, 0x00c9,  667, PSDRV_AGLGlyphNames +   53,
558                 {   86,    0,  616,  929 }, NULL        /* Eacute */
559     },
560     {
561          -1, 0x00ca,  667, PSDRV_AGLGlyphNames +   57,
562                 {   86,    0,  616,  929 }, NULL        /* Ecircumflex */
563     },
564     {
565          -1, 0x00cb,  667, PSDRV_AGLGlyphNames +   59,
566                 {   86,    0,  616,  901 }, NULL        /* Edieresis */
567     },
568     {
569          -1, 0x00cc,  278, PSDRV_AGLGlyphNames +  109,
570                 {  -13,    0,  188,  929 }, NULL        /* Igrave */
571     },
572     {
573          -1, 0x00cd,  278, PSDRV_AGLGlyphNames +   99,
574                 {   91,    0,  292,  929 }, NULL        /* Iacute */
575     },
576     {
577          -1, 0x00ce,  278, PSDRV_AGLGlyphNames +  102,
578                 {   -6,    0,  285,  929 }, NULL        /* Icircumflex */
579     },
580     {
581          -1, 0x00cf,  278, PSDRV_AGLGlyphNames +  104,
582                 {   13,    0,  266,  901 }, NULL        /* Idieresis */
583     },
584     {
585          -1, 0x00d0,  722, PSDRV_AGLGlyphNames +   72,
586                 {    0,    0,  674,  718 }, NULL        /* Eth */
587     },
588     {
589          -1, 0x00d1,  722, PSDRV_AGLGlyphNames +  145,
590                 {   76,    0,  646,  917 }, NULL        /* Ntilde */
591     },
592     {
593          -1, 0x00d2,  778, PSDRV_AGLGlyphNames +  159,
594                 {   39,  -19,  739,  929 }, NULL        /* Ograve */
595     },
596     {
597          -1, 0x00d3,  778, PSDRV_AGLGlyphNames +  151,
598                 {   39,  -19,  739,  929 }, NULL        /* Oacute */
599     },
600     {
601          -1, 0x00d4,  778, PSDRV_AGLGlyphNames +  154,
602                 {   39,  -19,  739,  929 }, NULL        /* Ocircumflex */
603     },
604     {
605          -1, 0x00d5,  778, PSDRV_AGLGlyphNames +  172,
606                 {   39,  -19,  739,  917 }, NULL        /* Otilde */
607     },
608     {
609          -1, 0x00d6,  778, PSDRV_AGLGlyphNames +  156,
610                 {   39,  -19,  739,  901 }, NULL        /* Odieresis */
611     },
612     {
613          -1, 0x00d7,  584, PSDRV_AGLGlyphNames + 1024,
614                 {   39,    0,  545,  506 }, NULL        /* multiply */
615     },
616     {
617         233, 0x00d8,  778, PSDRV_AGLGlyphNames +  168,
618                 {   39,  -19,  740,  737 }, NULL        /* Oslash */
619     },
620     {
621          -1, 0x00d9,  722, PSDRV_AGLGlyphNames +  256,
622                 {   79,  -19,  644,  929 }, NULL        /* Ugrave */
623     },
624     {
625          -1, 0x00da,  722, PSDRV_AGLGlyphNames +  249,
626                 {   79,  -19,  644,  929 }, NULL        /* Uacute */
627     },
628     {
629          -1, 0x00db,  722, PSDRV_AGLGlyphNames +  252,
630                 {   79,  -19,  644,  929 }, NULL        /* Ucircumflex */
631     },
632     {
633          -1, 0x00dc,  722, PSDRV_AGLGlyphNames +  254,
634                 {   79,  -19,  644,  901 }, NULL        /* Udieresis */
635     },
636     {
637          -1, 0x00dd,  667, PSDRV_AGLGlyphNames +  281,
638                 {   14,    0,  653,  929 }, NULL        /* Yacute */
639     },
640     {
641          -1, 0x00de,  667, PSDRV_AGLGlyphNames +  244,
642                 {   86,    0,  622,  718 }, NULL        /* Thorn */
643     },
644     {
645         251, 0x00df,  611, PSDRV_AGLGlyphNames +  943,
646                 {   67,  -15,  571,  728 }, NULL        /* germandbls */
647     },
648     {
649          -1, 0x00e0,  556, PSDRV_AGLGlyphNames +  750,
650                 {   36,  -15,  530,  734 }, NULL        /* agrave */
651     },
652     {
653          -1, 0x00e1,  556, PSDRV_AGLGlyphNames +  497,
654                 {   36,  -15,  530,  734 }, NULL        /* aacute */
655     },
656     {
657          -1, 0x00e2,  556, PSDRV_AGLGlyphNames +  499,
658                 {   36,  -15,  530,  734 }, NULL        /* acircumflex */
659     },
660     {
661          -1, 0x00e3,  556, PSDRV_AGLGlyphNames +  786,
662                 {   36,  -15,  530,  722 }, NULL        /* atilde */
663     },
664     {
665          -1, 0x00e4,  556, PSDRV_AGLGlyphNames +  502,
666                 {   36,  -15,  530,  706 }, NULL        /* adieresis */
667     },
668     {
669          -1, 0x00e5,  556, PSDRV_AGLGlyphNames +  764,
670                 {   36,  -15,  530,  756 }, NULL        /* aring */
671     },
672     {
673         241, 0x00e6,  889, PSDRV_AGLGlyphNames +  503,
674                 {   36,  -15,  847,  538 }, NULL        /* ae */
675     },
676     {
677          -1, 0x00e7,  500, PSDRV_AGLGlyphNames +  818,
678                 {   30, -225,  477,  538 }, NULL        /* ccedilla */
679     },
680     {
681          -1, 0x00e8,  556, PSDRV_AGLGlyphNames +  885,
682                 {   40,  -15,  516,  734 }, NULL        /* egrave */
683     },
684     {
685          -1, 0x00e9,  556, PSDRV_AGLGlyphNames +  879,
686                 {   40,  -15,  516,  734 }, NULL        /* eacute */
687     },
688     {
689          -1, 0x00ea,  556, PSDRV_AGLGlyphNames +  882,
690                 {   40,  -15,  516,  734 }, NULL        /* ecircumflex */
691     },
692     {
693          -1, 0x00eb,  556, PSDRV_AGLGlyphNames +  883,
694                 {   40,  -15,  516,  706 }, NULL        /* edieresis */
695     },
696     {
697          -1, 0x00ec,  278, PSDRV_AGLGlyphNames +  969,
698                 {  -13,    0,  184,  734 }, NULL        /* igrave */
699     },
700     {
701          -1, 0x00ed,  278, PSDRV_AGLGlyphNames +  965,
702                 {   95,    0,  292,  734 }, NULL        /* iacute */
703     },
704     {
705          -1, 0x00ee,  278, PSDRV_AGLGlyphNames +  967,
706                 {   -6,    0,  285,  734 }, NULL        /* icircumflex */
707     },
708     {
709          -1, 0x00ef,  278, PSDRV_AGLGlyphNames +  968,
710                 {   13,    0,  266,  706 }, NULL        /* idieresis */
711     },
712     {
713          -1, 0x00f0,  556, PSDRV_AGLGlyphNames +  906,
714                 {   35,  -15,  522,  737 }, NULL        /* eth */
715     },
716     {
717          -1, 0x00f1,  556, PSDRV_AGLGlyphNames + 1041,
718                 {   65,    0,  491,  722 }, NULL        /* ntilde */
719     },
720     {
721          -1, 0x00f2,  556, PSDRV_AGLGlyphNames + 1051,
722                 {   35,  -14,  521,  734 }, NULL        /* ograve */
723     },
724     {
725          -1, 0x00f3,  556, PSDRV_AGLGlyphNames + 1045,
726                 {   35,  -14,  521,  734 }, NULL        /* oacute */
727     },
728     {
729          -1, 0x00f4,  556, PSDRV_AGLGlyphNames + 1047,
730                 {   35,  -14,  521,  734 }, NULL        /* ocircumflex */
731     },
732     {
733          -1, 0x00f5,  556, PSDRV_AGLGlyphNames + 1077,
734                 {   35,  -14,  521,  722 }, NULL        /* otilde */
735     },
736     {
737          -1, 0x00f6,  556, PSDRV_AGLGlyphNames + 1048,
738                 {   35,  -14,  521,  706 }, NULL        /* odieresis */
739     },
740     {
741          -1, 0x00f7,  584, PSDRV_AGLGlyphNames +  863,
742                 {   39,  -19,  545,  524 }, NULL        /* divide */
743     },
744     {
745         249, 0x00f8,  611, PSDRV_AGLGlyphNames + 1074,
746                 {   28,  -22,  537,  545 }, NULL        /* oslash */
747     },
748     {
749          -1, 0x00f9,  556, PSDRV_AGLGlyphNames + 1217,
750                 {   68,  -15,  489,  734 }, NULL        /* ugrave */
751     },
752     {
753          -1, 0x00fa,  556, PSDRV_AGLGlyphNames + 1213,
754                 {   68,  -15,  489,  734 }, NULL        /* uacute */
755     },
756     {
757          -1, 0x00fb,  556, PSDRV_AGLGlyphNames + 1215,
758                 {   68,  -15,  489,  734 }, NULL        /* ucircumflex */
759     },
760     {
761          -1, 0x00fc,  556, PSDRV_AGLGlyphNames + 1216,
762                 {   68,  -15,  489,  706 }, NULL        /* udieresis */
763     },
764     {
765          -1, 0x00fd,  500, PSDRV_AGLGlyphNames + 1244,
766                 {   11, -214,  489,  734 }, NULL        /* yacute */
767     },
768     {
769          -1, 0x00fe,  556, PSDRV_AGLGlyphNames + 1187,
770                 {   58, -207,  517,  718 }, NULL        /* thorn */
771     },
772     {
773          -1, 0x00ff,  500, PSDRV_AGLGlyphNames + 1246,
774                 {   11, -214,  489,  706 }, NULL        /* ydieresis */
775     },
776     {
777         245, 0x0131,  278, PSDRV_AGLGlyphNames +  873,
778                 {   95,    0,  183,  523 }, NULL        /* dotlessi */
779     },
780     {
781         232, 0x0141,  556, PSDRV_AGLGlyphNames +  132,
782                 {  -20,    0,  537,  718 }, NULL        /* Lslash */
783     },
784     {
785         248, 0x0142,  222, PSDRV_AGLGlyphNames + 1013,
786                 {  -20,    0,  242,  718 }, NULL        /* lslash */
787     },
788     {
789         234, 0x0152, 1000, PSDRV_AGLGlyphNames +  149,
790                 {   36,  -19,  965,  737 }, NULL        /* OE */
791     },
792     {
793         250, 0x0153,  944, PSDRV_AGLGlyphNames + 1049,
794                 {   35,  -15,  902,  538 }, NULL        /* oe */
795     },
796     {
797          -1, 0x0160,  667, PSDRV_AGLGlyphNames +  231,
798                 {   49,  -19,  620,  929 }, NULL        /* Scaron */
799     },
800     {
801          -1, 0x0161,  500, PSDRV_AGLGlyphNames + 1147,
802                 {   32,  -15,  464,  734 }, NULL        /* scaron */
803     },
804     {
805          -1, 0x0178,  667, PSDRV_AGLGlyphNames +  284,
806                 {   14,    0,  653,  901 }, NULL        /* Ydieresis */
807     },
808     {
809          -1, 0x017d,  611, PSDRV_AGLGlyphNames +  290,
810                 {   23,    0,  588,  929 }, NULL        /* Zcaron */
811     },
812     {
813          -1, 0x017e,  500, PSDRV_AGLGlyphNames + 1251,
814                 {   31,    0,  469,  734 }, NULL        /* zcaron */
815     },
816     {
817         166, 0x0192,  556, PSDRV_AGLGlyphNames +  928,
818                 {  -11, -207,  501,  737 }, NULL        /* florin */
819     },
820     {
821         195, 0x02c6,  333, PSDRV_AGLGlyphNames +  831,
822                 {   21,  593,  312,  734 }, NULL        /* circumflex */
823     },
824     {
825         207, 0x02c7,  333, PSDRV_AGLGlyphNames +  815,
826                 {   21,  593,  312,  734 }, NULL        /* caron */
827     },
828     {
829         197, 0x02c9,  333, PSDRV_AGLGlyphNames + 1017,
830                 {   10,  627,  323,  684 }, NULL        /* macron */
831     },
832     {
833         198, 0x02d8,  333, PSDRV_AGLGlyphNames +  809,
834                 {   13,  595,  321,  731 }, NULL        /* breve */
835     },
836     {
837         199, 0x02d9,  333, PSDRV_AGLGlyphNames +  871,
838                 {  121,  604,  212,  706 }, NULL        /* dotaccent */
839     },
840     {
841         202, 0x02da,  333, PSDRV_AGLGlyphNames + 1141,
842                 {   75,  572,  259,  756 }, NULL        /* ring */
843     },
844     {
845         206, 0x02db,  333, PSDRV_AGLGlyphNames + 1050,
846                 {   73, -225,  287,    0 }, NULL        /* ogonek */
847     },
848     {
849         196, 0x02dc,  333, PSDRV_AGLGlyphNames + 1195,
850                 {   -4,  606,  337,  722 }, NULL        /* tilde */
851     },
852     {
853         205, 0x02dd,  333, PSDRV_AGLGlyphNames +  960,
854                 {   31,  593,  409,  734 }, NULL        /* hungarumlaut */
855     },
856     {
857          -1, 0x03bc,  556, PSDRV_AGLGlyphNames + 1023,
858                 {   68, -207,  489,  523 }, NULL        /* mu */
859     },
860     {
861         177, 0x2013,  556, PSDRV_AGLGlyphNames +  895,
862                 {    0,  240,  556,  313 }, NULL        /* endash */
863     },
864     {
865         208, 0x2014, 1000, PSDRV_AGLGlyphNames +  893,
866                 {    0,  240, 1000,  313 }, NULL        /* emdash */
867     },
868     {
869          96, 0x2018,  222, PSDRV_AGLGlyphNames + 1122,
870                 {   65,  470,  169,  725 }, NULL        /* quoteleft */
871     },
872     {
873          39, 0x2019,  222, PSDRV_AGLGlyphNames + 1124,
874                 {   53,  463,  157,  718 }, NULL        /* quoteright */
875     },
876     {
877         184, 0x201a,  222, PSDRV_AGLGlyphNames + 1125,
878                 {   53, -149,  157,  106 }, NULL        /* quotesinglbase */
879     },
880     {
881         170, 0x201c,  333, PSDRV_AGLGlyphNames + 1120,
882                 {   38,  470,  307,  725 }, NULL        /* quotedblleft */
883     },
884     {
885         186, 0x201d,  333, PSDRV_AGLGlyphNames + 1121,
886                 {   26,  463,  295,  718 }, NULL        /* quotedblright */
887     },
888     {
889         185, 0x201e,  333, PSDRV_AGLGlyphNames + 1119,
890                 {   26, -149,  295,  106 }, NULL        /* quotedblbase */
891     },
892     {
893         178, 0x2020,  556, PSDRV_AGLGlyphNames +  849,
894                 {   43, -159,  514,  718 }, NULL        /* dagger */
895     },
896     {
897         179, 0x2021,  556, PSDRV_AGLGlyphNames +  850,
898                 {   43, -159,  514,  718 }, NULL        /* daggerdbl */
899     },
900     {
901         183, 0x2022,  350, PSDRV_AGLGlyphNames +  812,
902                 {   18,  202,  333,  517 }, NULL        /* bullet */
903     },
904     {
905         188, 0x2026, 1000, PSDRV_AGLGlyphNames +  891,
906                 {  115,    0,  885,  106 }, NULL        /* ellipsis */
907     },
908     {
909         189, 0x2030, 1000, PSDRV_AGLGlyphNames + 1100,
910                 {    7,  -19,  994,  703 }, NULL        /* perthousand */
911     },
912     {
913         172, 0x2039,  333, PSDRV_AGLGlyphNames +  952,
914                 {   88,  108,  245,  446 }, NULL        /* guilsinglleft */
915     },
916     {
917         173, 0x203a,  333, PSDRV_AGLGlyphNames +  953,
918                 {   88,  108,  245,  446 }, NULL        /* guilsinglright */
919     },
920     {
921          -1, 0x2122, 1000, PSDRV_AGLGlyphNames + 1198,
922                 {   46,  306,  903,  718 }, NULL        /* trademark */
923     },
924     {
925          -1, 0x2212,  584, PSDRV_AGLGlyphNames + 1020,
926                 {   39,  216,  545,  289 }, NULL        /* minus */
927     },
928     {
929         164, 0x2215,  167, PSDRV_AGLGlyphNames +  934,
930                 { -166,  -19,  333,  703 }, NULL        /* fraction */
931     },
932     {
933         174, 0xfb01,  500, PSDRV_AGLGlyphNames +  918,
934                 {   14,    0,  434,  728 }, NULL        /* fi */
935     },
936     {
937         175, 0xfb02,  500, PSDRV_AGLGlyphNames +  927,
938                 {   14,    0,  432,  728 }, NULL        /* fl */
939     }
940 };
941
942
943 /*
944  *  Font metrics
945  */
946
947 AFM PSDRV_Helvetica =
948 {
949     "Helvetica",                                /* FontName */
950     "Helvetica",                                /* FullName */
951     "Helvetica",                                /* FamilyName */
952     "AdobeStandardEncoding",                    /* EncodingScheme */
953     FW_NORMAL,                                  /* Weight */
954     0,                                          /* ItalicAngle */
955     FALSE,                                      /* IsFixedPitch */
956     -100,                                       /* UnderlinePosition */
957     50,                                         /* UnderlineThickness */
958     { -166, -225, 1000, 931 },                  /* FontBBox */
959     718,                                        /* CapHeight */
960     523,                                        /* XHeight */
961     718,                                        /* Ascender */
962     -207,                                       /* Descender */
963     931,                                        /* FullAscender */
964     {
965         1000,                           /* WinMetrics.usUnitsPerEm */
966         905,                            /* WinMetrics.sAscender */
967         -212,                           /* WinMetrics.sDescender */
968         33,                             /* WinMetrics.sLineGap */
969         441,                            /* WinMetrics.sAvgCharWidth */
970         728,                            /* WinMetrics.sTypoAscender */
971         -210,                           /* WinMetrics.sTypoDescender */
972         150,                            /* WinMetrics.sTypoLineGap */
973         905,                            /* WinMetrics.usWinAscent */
974         212                             /* WinMetrics.usWinDescent */
975     },
976     {
977         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   /* CharWidths[0] - CharWidths[9] */
978         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   /* CharWidths[10] - CharWidths[19] */
979         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   /* CharWidths[20] - CharWidths[29] */
980         0, 0, 278, 278, 355, 556, 556,  /* CharWidths[30] - CharWidths[36] */
981         889, 667, 191, 333, 333, 389,   /* CharWidths[37] - CharWidths[42] */
982         584, 278, 333, 278, 278, 556,   /* CharWidths[43] - CharWidths[48] */
983         556, 556, 556, 556, 556, 556,   /* CharWidths[49] - CharWidths[54] */
984         556, 556, 556, 278, 278, 584,   /* CharWidths[55] - CharWidths[60] */
985         584, 584, 556, 1015, 667, 667,  /* CharWidths[61] - CharWidths[66] */
986         722, 722, 667, 611, 778, 722,   /* CharWidths[67] - CharWidths[72] */
987         278, 500, 667, 556, 833, 722,   /* CharWidths[73] - CharWidths[78] */
988         778, 667, 778, 722, 667, 611,   /* CharWidths[79] - CharWidths[84] */
989         722, 667, 944, 667, 667, 611,   /* CharWidths[85] - CharWidths[90] */
990         278, 278, 278, 469, 556, 333,   /* CharWidths[91] - CharWidths[96] */
991         556, 556, 500, 556, 556, 278,   /* CharWidths[97] - CharWidths[102] */
992         556, 556, 222, 222, 500, 222,   /* CharWidths[103] - CharWidths[108] */
993         833, 556, 556, 556, 556, 333,   /* CharWidths[109] - CharWidths[114] */
994         500, 278, 556, 500, 722, 500,   /* CharWidths[115] - CharWidths[120] */
995         500, 500, 334, 260, 334, 584,   /* CharWidths[121] - CharWidths[126] */
996         0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   /* CharWidths[127] - CharWidths[136] */
997         0, 0, 0, 0, 0, 0, 0, 0, 222,    /* CharWidths[137] - CharWidths[145] */
998         222, 333, 333, 350, 556, 1000,  /* CharWidths[146] - CharWidths[151] */
999         0, 0, 0, 0, 0, 0, 0, 0, 278,    /* CharWidths[152] - CharWidths[160] */
1000         333, 556, 556, 556, 556, 260,   /* CharWidths[161] - CharWidths[166] */
1001         556, 333, 737, 333, 556, 584,   /* CharWidths[167] - CharWidths[172] */
1002         333, 737, 333, 400, 584, 333,   /* CharWidths[173] - CharWidths[178] */
1003         333, 333, 0, 537, 278, 333,     /* CharWidths[179] - CharWidths[184] */
1004         333, 333, 556, 834, 834, 834,   /* CharWidths[185] - CharWidths[190] */
1005         611, 0, 333, 333, 333, 333,     /* CharWidths[191] - CharWidths[196] */
1006         333, 333, 333, 333, 0, 333,     /* CharWidths[197] - CharWidths[202] */
1007         333, 0, 333, 333, 333, 1000,    /* CharWidths[203] - CharWidths[208] */
1008         0, 0, 0, 0, 0, 0, 584, 0, 0,    /* CharWidths[209] - CharWidths[217] */
1009         0, 0, 0, 0, 0, 0, 0, 1000, 0,   /* CharWidths[218] - CharWidths[226] */
1010         370, 0, 0, 0, 0, 556, 778,      /* CharWidths[227] - CharWidths[233] */
1011         1000, 365, 0, 0, 0, 0, 0, 889,  /* CharWidths[234] - CharWidths[241] */
1012         0, 0, 0, 278, 0, 584, 222,      /* CharWidths[242] - CharWidths[248] */
1013         611, 944, 611, 0, 0, 0, 0       /* CharWidths[249] - CharWidths[255] */
1014     },
1015     228,                                        /* NumofMetrics */
1016     met_Helvetica                               /* Metrics */
1017 };