1 /*
2  * << Haru Free PDF Library >> -- hpdf_fontdef_base14.c
3  *
4  * URL: http://libharu.org
5  *
6  * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
7  * Copyright (c) 2007-2009 Antony Dovgal <tony@daylessday.org>
8  *
9  * Permission to use, copy, modify, distribute and sell this software
10  * and its documentation for any purpose is hereby granted without fee,
11  * provided that the above copyright notice appear in all copies and
12  * that both that copyright notice and this permission notice appear
13  * in supporting documentation.
14  * It is provided "as is" without express or implied warranty.
15  *
16  */
17 
18 #include "hpdf_conf.h"
19 #include "hpdf_utils.h"
20 #include "hpdf_fontdef.h"
21 
22 static const HPDF_CharData CHAR_DATA_COURIER[316] = {
23     {32, 0x0020, 600},
24     {33, 0x0021, 600},
25     {34, 0x0022, 600},
26     {35, 0x0023, 600},
27     {36, 0x0024, 600},
28     {37, 0x0025, 600},
29     {38, 0x0026, 600},
30     {39, 0x2019, 600},
31     {40, 0x0028, 600},
32     {41, 0x0029, 600},
33     {42, 0x002A, 600},
34     {43, 0x002B, 600},
35     {44, 0x002C, 600},
36     {45, 0x002D, 600},
37     {46, 0x002E, 600},
38     {47, 0x002F, 600},
39     {48, 0x0030, 600},
40     {49, 0x0031, 600},
41     {50, 0x0032, 600},
42     {51, 0x0033, 600},
43     {52, 0x0034, 600},
44     {53, 0x0035, 600},
45     {54, 0x0036, 600},
46     {55, 0x0037, 600},
47     {56, 0x0038, 600},
48     {57, 0x0039, 600},
49     {58, 0x003A, 600},
50     {59, 0x003B, 600},
51     {60, 0x003C, 600},
52     {61, 0x003D, 600},
53     {62, 0x003E, 600},
54     {63, 0x003F, 600},
55     {64, 0x0040, 600},
56     {65, 0x0041, 600},
57     {66, 0x0042, 600},
58     {67, 0x0043, 600},
59     {68, 0x0044, 600},
60     {69, 0x0045, 600},
61     {70, 0x0046, 600},
62     {71, 0x0047, 600},
63     {72, 0x0048, 600},
64     {73, 0x0049, 600},
65     {74, 0x004A, 600},
66     {75, 0x004B, 600},
67     {76, 0x004C, 600},
68     {77, 0x004D, 600},
69     {78, 0x004E, 600},
70     {79, 0x004F, 600},
71     {80, 0x0050, 600},
72     {81, 0x0051, 600},
73     {82, 0x0052, 600},
74     {83, 0x0053, 600},
75     {84, 0x0054, 600},
76     {85, 0x0055, 600},
77     {86, 0x0056, 600},
78     {87, 0x0057, 600},
79     {88, 0x0058, 600},
80     {89, 0x0059, 600},
81     {90, 0x005A, 600},
82     {91, 0x005B, 600},
83     {92, 0x005C, 600},
84     {93, 0x005D, 600},
85     {94, 0x005E, 600},
86     {95, 0x005F, 600},
87     {96, 0x2018, 600},
88     {97, 0x0061, 600},
89     {98, 0x0062, 600},
90     {99, 0x0063, 600},
91     {100, 0x0064, 600},
92     {101, 0x0065, 600},
93     {102, 0x0066, 600},
94     {103, 0x0067, 600},
95     {104, 0x0068, 600},
96     {105, 0x0069, 600},
97     {106, 0x006A, 600},
98     {107, 0x006B, 600},
99     {108, 0x006C, 600},
100     {109, 0x006D, 600},
101     {110, 0x006E, 600},
102     {111, 0x006F, 600},
103     {112, 0x0070, 600},
104     {113, 0x0071, 600},
105     {114, 0x0072, 600},
106     {115, 0x0073, 600},
107     {116, 0x0074, 600},
108     {117, 0x0075, 600},
109     {118, 0x0076, 600},
110     {119, 0x0077, 600},
111     {120, 0x0078, 600},
112     {121, 0x0079, 600},
113     {122, 0x007A, 600},
114     {123, 0x007B, 600},
115     {124, 0x007C, 600},
116     {125, 0x007D, 600},
117     {126, 0x007E, 600},
118     {161, 0x00A1, 600},
119     {162, 0x00A2, 600},
120     {163, 0x00A3, 600},
121     {164, 0x2044, 600},
122     {165, 0x00A5, 600},
123     {166, 0x0192, 600},
124     {167, 0x00A7, 600},
125     {168, 0x00A4, 600},
126     {169, 0x0027, 600},
127     {170, 0x201C, 600},
128     {171, 0x00AB, 600},
129     {172, 0x2039, 600},
130     {173, 0x203A, 600},
131     {174, 0xFB01, 600},
132     {175, 0xFB02, 600},
133     {177, 0x2013, 600},
134     {178, 0x2020, 600},
135     {179, 0x2021, 600},
136     {180, 0x00B7, 600},
137     {182, 0x00B6, 600},
138     {183, 0x2022, 600},
139     {184, 0x201A, 600},
140     {185, 0x201E, 600},
141     {186, 0x201D, 600},
142     {187, 0x00BB, 600},
143     {188, 0x2026, 600},
144     {189, 0x2030, 600},
145     {191, 0x00BF, 600},
146     {193, 0x0060, 600},
147     {194, 0x00B4, 600},
148     {195, 0x02C6, 600},
149     {196, 0x02DC, 600},
150     {197, 0x00AF, 600},
151     {198, 0x02D8, 600},
152     {199, 0x02D9, 600},
153     {200, 0x00A8, 600},
154     {202, 0x02DA, 600},
155     {203, 0x00B8, 600},
156     {205, 0x02DD, 600},
157     {206, 0x02DB, 600},
158     {207, 0x02C7, 600},
159     {208, 0x2014, 600},
160     {225, 0x00C6, 600},
161     {227, 0x00AA, 600},
162     {232, 0x0141, 600},
163     {233, 0x00D8, 600},
164     {234, 0x0152, 600},
165     {235, 0x00BA, 600},
166     {241, 0x00E6, 600},
167     {245, 0x0131, 600},
168     {248, 0x0142, 600},
169     {249, 0x00F8, 600},
170     {250, 0x0153, 600},
171     {251, 0x00DF, 600},
172     {-1, 0x00CF, 600},
173     {-1, 0x00E9, 600},
174     {-1, 0x0103, 600},
175     {-1, 0x0171, 600},
176     {-1, 0x011B, 600},
177     {-1, 0x0178, 600},
178     {-1, 0x00F7, 600},
179     {-1, 0x00DD, 600},
180     {-1, 0x00C2, 600},
181     {-1, 0x00E1, 600},
182     {-1, 0x00DB, 600},
183     {-1, 0x00FD, 600},
184     {-1, 0x0219, 600},
185     {-1, 0x00EA, 600},
186     {-1, 0x016E, 600},
187     {-1, 0x00DC, 600},
188     {-1, 0x0105, 600},
189     {-1, 0x00DA, 600},
190     {-1, 0x0173, 600},
191     {-1, 0x00CB, 600},
192     {-1, 0x0110, 600},
193     {-1, 0xF6C3, 600},
194     {-1, 0x00A9, 600},
195     {-1, 0x0112, 600},
196     {-1, 0x010D, 600},
197     {-1, 0x00E5, 600},
198     {-1, 0x0145, 600},
199     {-1, 0x013A, 600},
200     {-1, 0x00E0, 600},
201     {-1, 0x0162, 600},
202     {-1, 0x0106, 600},
203     {-1, 0x00E3, 600},
204     {-1, 0x0116, 600},
205     {-1, 0x0161, 600},
206     {-1, 0x015F, 600},
207     {-1, 0x00ED, 600},
208     {-1, 0x25CA, 600},
209     {-1, 0x0158, 600},
210     {-1, 0x0122, 600},
211     {-1, 0x00FB, 600},
212     {-1, 0x00E2, 600},
213     {-1, 0x0100, 600},
214     {-1, 0x0159, 600},
215     {-1, 0x00E7, 600},
216     {-1, 0x017B, 600},
217     {-1, 0x00DE, 600},
218     {-1, 0x014C, 600},
219     {-1, 0x0154, 600},
220     {-1, 0x015A, 600},
221     {-1, 0x010F, 600},
222     {-1, 0x016A, 600},
223     {-1, 0x016F, 600},
224     {-1, 0x00B3, 600},
225     {-1, 0x00D2, 600},
226     {-1, 0x00C0, 600},
227     {-1, 0x0102, 600},
228     {-1, 0x00D7, 600},
229     {-1, 0x00FA, 600},
230     {-1, 0x0164, 600},
231     {-1, 0x2202, 600},
232     {-1, 0x00FF, 600},
233     {-1, 0x0143, 600},
234     {-1, 0x00EE, 600},
235     {-1, 0x00CA, 600},
236     {-1, 0x00E4, 600},
237     {-1, 0x00EB, 600},
238     {-1, 0x0107, 600},
239     {-1, 0x0144, 600},
240     {-1, 0x016B, 600},
241     {-1, 0x0147, 600},
242     {-1, 0x00CD, 600},
243     {-1, 0x00B1, 600},
244     {-1, 0x00A6, 600},
245     {-1, 0x00AE, 600},
246     {-1, 0x011E, 600},
247     {-1, 0x0130, 600},
248     {-1, 0x2211, 600},
249     {-1, 0x00C8, 600},
250     {-1, 0x0155, 600},
251     {-1, 0x014D, 600},
252     {-1, 0x0179, 600},
253     {-1, 0x017D, 600},
254     {-1, 0x2265, 600},
255     {-1, 0x00D0, 600},
256     {-1, 0x00C7, 600},
257     {-1, 0x013C, 600},
258     {-1, 0x0165, 600},
259     {-1, 0x0119, 600},
260     {-1, 0x0172, 600},
261     {-1, 0x00C1, 600},
262     {-1, 0x00C4, 600},
263     {-1, 0x00E8, 600},
264     {-1, 0x017A, 600},
265     {-1, 0x012F, 600},
266     {-1, 0x00D3, 600},
267     {-1, 0x00F3, 600},
268     {-1, 0x0101, 600},
269     {-1, 0x015B, 600},
270     {-1, 0x00EF, 600},
271     {-1, 0x00D4, 600},
272     {-1, 0x00D9, 600},
273     {-1, 0x0394, 600},
274     {-1, 0x00FE, 600},
275     {-1, 0x00B2, 600},
276     {-1, 0x00D6, 600},
277     {-1, 0x00B5, 600},
278     {-1, 0x00EC, 600},
279     {-1, 0x0151, 600},
280     {-1, 0x0118, 600},
281     {-1, 0x0111, 600},
282     {-1, 0x00BE, 600},
283     {-1, 0x015E, 600},
284     {-1, 0x013E, 600},
285     {-1, 0x0136, 600},
286     {-1, 0x0139, 600},
287     {-1, 0x2122, 600},
288     {-1, 0x0117, 600},
289     {-1, 0x00CC, 600},
290     {-1, 0x012A, 600},
291     {-1, 0x013D, 600},
292     {-1, 0x00BD, 600},
293     {-1, 0x2264, 600},
294     {-1, 0x00F4, 600},
295     {-1, 0x00F1, 600},
296     {-1, 0x0170, 600},
297     {-1, 0x00C9, 600},
298     {-1, 0x0113, 600},
299     {-1, 0x011F, 600},
300     {-1, 0x00BC, 600},
301     {-1, 0x0160, 600},
302     {-1, 0x0218, 600},
303     {-1, 0x0150, 600},
304     {-1, 0x00B0, 600},
305     {-1, 0x00F2, 600},
306     {-1, 0x010C, 600},
307     {-1, 0x00F9, 600},
308     {-1, 0x221A, 600},
309     {-1, 0x010E, 600},
310     {-1, 0x0157, 600},
311     {-1, 0x00D1, 600},
312     {-1, 0x00F5, 600},
313     {-1, 0x0156, 600},
314     {-1, 0x013B, 600},
315     {-1, 0x00C3, 600},
316     {-1, 0x0104, 600},
317     {-1, 0x00C5, 600},
318     {-1, 0x00D5, 600},
319     {-1, 0x017C, 600},
320     {-1, 0x011A, 600},
321     {-1, 0x012E, 600},
322     {-1, 0x0137, 600},
323     {-1, 0x2212, 600},
324     {-1, 0x00CE, 600},
325     {-1, 0x0148, 600},
326     {-1, 0x0163, 600},
327     {-1, 0x00AC, 600},
328     {-1, 0x00F6, 600},
329     {-1, 0x00FC, 600},
330     {-1, 0x2260, 600},
331     {-1, 0x0123, 600},
332     {-1, 0x00F0, 600},
333     {-1, 0x017E, 600},
334     {-1, 0x0146, 600},
335     {-1, 0x00B9, 600},
336     {-1, 0x012B, 600},
337     {-1, 0x20AC, 600},
338     {-1, 0xFFFF, 0}
339     };
340 
341 static const HPDF_CharData CHAR_DATA_COURIER_BOLD[316] = {
342     {32, 0x0020, 600},
343     {33, 0x0021, 600},
344     {34, 0x0022, 600},
345     {35, 0x0023, 600},
346     {36, 0x0024, 600},
347     {37, 0x0025, 600},
348     {38, 0x0026, 600},
349     {39, 0x2019, 600},
350     {40, 0x0028, 600},
351     {41, 0x0029, 600},
352     {42, 0x002A, 600},
353     {43, 0x002B, 600},
354     {44, 0x002C, 600},
355     {45, 0x002D, 600},
356     {46, 0x002E, 600},
357     {47, 0x002F, 600},
358     {48, 0x0030, 600},
359     {49, 0x0031, 600},
360     {50, 0x0032, 600},
361     {51, 0x0033, 600},
362     {52, 0x0034, 600},
363     {53, 0x0035, 600},
364     {54, 0x0036, 600},
365     {55, 0x0037, 600},
366     {56, 0x0038, 600},
367     {57, 0x0039, 600},
368     {58, 0x003A, 600},
369     {59, 0x003B, 600},
370     {60, 0x003C, 600},
371     {61, 0x003D, 600},
372     {62, 0x003E, 600},
373     {63, 0x003F, 600},
374     {64, 0x0040, 600},
375     {65, 0x0041, 600},
376     {66, 0x0042, 600},
377     {67, 0x0043, 600},
378     {68, 0x0044, 600},
379     {69, 0x0045, 600},
380     {70, 0x0046, 600},
381     {71, 0x0047, 600},
382     {72, 0x0048, 600},
383     {73, 0x0049, 600},
384     {74, 0x004A, 600},
385     {75, 0x004B, 600},
386     {76, 0x004C, 600},
387     {77, 0x004D, 600},
388     {78, 0x004E, 600},
389     {79, 0x004F, 600},
390     {80, 0x0050, 600},
391     {81, 0x0051, 600},
392     {82, 0x0052, 600},
393     {83, 0x0053, 600},
394     {84, 0x0054, 600},
395     {85, 0x0055, 600},
396     {86, 0x0056, 600},
397     {87, 0x0057, 600},
398     {88, 0x0058, 600},
399     {89, 0x0059, 600},
400     {90, 0x005A, 600},
401     {91, 0x005B, 600},
402     {92, 0x005C, 600},
403     {93, 0x005D, 600},
404     {94, 0x005E, 600},
405     {95, 0x005F, 600},
406     {96, 0x2018, 600},
407     {97, 0x0061, 600},
408     {98, 0x0062, 600},
409     {99, 0x0063, 600},
410     {100, 0x0064, 600},
411     {101, 0x0065, 600},
412     {102, 0x0066, 600},
413     {103, 0x0067, 600},
414     {104, 0x0068, 600},
415     {105, 0x0069, 600},
416     {106, 0x006A, 600},
417     {107, 0x006B, 600},
418     {108, 0x006C, 600},
419     {109, 0x006D, 600},
420     {110, 0x006E, 600},
421     {111, 0x006F, 600},
422     {112, 0x0070, 600},
423     {113, 0x0071, 600},
424     {114, 0x0072, 600},
425     {115, 0x0073, 600},
426     {116, 0x0074, 600},
427     {117, 0x0075, 600},
428     {118, 0x0076, 600},
429     {119, 0x0077, 600},
430     {120, 0x0078, 600},
431     {121, 0x0079, 600},
432     {122, 0x007A, 600},
433     {123, 0x007B, 600},
434     {124, 0x007C, 600},
435     {125, 0x007D, 600},
436     {126, 0x007E, 600},
437     {161, 0x00A1, 600},
438     {162, 0x00A2, 600},
439     {163, 0x00A3, 600},
440     {164, 0x2044, 600},
441     {165, 0x00A5, 600},
442     {166, 0x0192, 600},
443     {167, 0x00A7, 600},
444     {168, 0x00A4, 600},
445     {169, 0x0027, 600},
446     {170, 0x201C, 600},
447     {171, 0x00AB, 600},
448     {172, 0x2039, 600},
449     {173, 0x203A, 600},
450     {174, 0xFB01, 600},
451     {175, 0xFB02, 600},
452     {177, 0x2013, 600},
453     {178, 0x2020, 600},
454     {179, 0x2021, 600},
455     {180, 0x00B7, 600},
456     {182, 0x00B6, 600},
457     {183, 0x2022, 600},
458     {184, 0x201A, 600},
459     {185, 0x201E, 600},
460     {186, 0x201D, 600},
461     {187, 0x00BB, 600},
462     {188, 0x2026, 600},
463     {189, 0x2030, 600},
464     {191, 0x00BF, 600},
465     {193, 0x0060, 600},
466     {194, 0x00B4, 600},
467     {195, 0x02C6, 600},
468     {196, 0x02DC, 600},
469     {197, 0x00AF, 600},
470     {198, 0x02D8, 600},
471     {199, 0x02D9, 600},
472     {200, 0x00A8, 600},
473     {202, 0x02DA, 600},
474     {203, 0x00B8, 600},
475     {205, 0x02DD, 600},
476     {206, 0x02DB, 600},
477     {207, 0x02C7, 600},
478     {208, 0x2014, 600},
479     {225, 0x00C6, 600},
480     {227, 0x00AA, 600},
481     {232, 0x0141, 600},
482     {233, 0x00D8, 600},
483     {234, 0x0152, 600},
484     {235, 0x00BA, 600},
485     {241, 0x00E6, 600},
486     {245, 0x0131, 600},
487     {248, 0x0142, 600},
488     {249, 0x00F8, 600},
489     {250, 0x0153, 600},
490     {251, 0x00DF, 600},
491     {-1, 0x00CF, 600},
492     {-1, 0x00E9, 600},
493     {-1, 0x0103, 600},
494     {-1, 0x0171, 600},
495     {-1, 0x011B, 600},
496     {-1, 0x0178, 600},
497     {-1, 0x00F7, 600},
498     {-1, 0x00DD, 600},
499     {-1, 0x00C2, 600},
500     {-1, 0x00E1, 600},
501     {-1, 0x00DB, 600},
502     {-1, 0x00FD, 600},
503     {-1, 0x0219, 600},
504     {-1, 0x00EA, 600},
505     {-1, 0x016E, 600},
506     {-1, 0x00DC, 600},
507     {-1, 0x0105, 600},
508     {-1, 0x00DA, 600},
509     {-1, 0x0173, 600},
510     {-1, 0x00CB, 600},
511     {-1, 0x0110, 600},
512     {-1, 0xF6C3, 600},
513     {-1, 0x00A9, 600},
514     {-1, 0x0112, 600},
515     {-1, 0x010D, 600},
516     {-1, 0x00E5, 600},
517     {-1, 0x0145, 600},
518     {-1, 0x013A, 600},
519     {-1, 0x00E0, 600},
520     {-1, 0x0162, 600},
521     {-1, 0x0106, 600},
522     {-1, 0x00E3, 600},
523     {-1, 0x0116, 600},
524     {-1, 0x0161, 600},
525     {-1, 0x015F, 600},
526     {-1, 0x00ED, 600},
527     {-1, 0x25CA, 600},
528     {-1, 0x0158, 600},
529     {-1, 0x0122, 600},
530     {-1, 0x00FB, 600},
531     {-1, 0x00E2, 600},
532     {-1, 0x0100, 600},
533     {-1, 0x0159, 600},
534     {-1, 0x00E7, 600},
535     {-1, 0x017B, 600},
536     {-1, 0x00DE, 600},
537     {-1, 0x014C, 600},
538     {-1, 0x0154, 600},
539     {-1, 0x015A, 600},
540     {-1, 0x010F, 600},
541     {-1, 0x016A, 600},
542     {-1, 0x016F, 600},
543     {-1, 0x00B3, 600},
544     {-1, 0x00D2, 600},
545     {-1, 0x00C0, 600},
546     {-1, 0x0102, 600},
547     {-1, 0x00D7, 600},
548     {-1, 0x00FA, 600},
549     {-1, 0x0164, 600},
550     {-1, 0x2202, 600},
551     {-1, 0x00FF, 600},
552     {-1, 0x0143, 600},
553     {-1, 0x00EE, 600},
554     {-1, 0x00CA, 600},
555     {-1, 0x00E4, 600},
556     {-1, 0x00EB, 600},
557     {-1, 0x0107, 600},
558     {-1, 0x0144, 600},
559     {-1, 0x016B, 600},
560     {-1, 0x0147, 600},
561     {-1, 0x00CD, 600},
562     {-1, 0x00B1, 600},
563     {-1, 0x00A6, 600},
564     {-1, 0x00AE, 600},
565     {-1, 0x011E, 600},
566     {-1, 0x0130, 600},
567     {-1, 0x2211, 600},
568     {-1, 0x00C8, 600},
569     {-1, 0x0155, 600},
570     {-1, 0x014D, 600},
571     {-1, 0x0179, 600},
572     {-1, 0x017D, 600},
573     {-1, 0x2265, 600},
574     {-1, 0x00D0, 600},
575     {-1, 0x00C7, 600},
576     {-1, 0x013C, 600},
577     {-1, 0x0165, 600},
578     {-1, 0x0119, 600},
579     {-1, 0x0172, 600},
580     {-1, 0x00C1, 600},
581     {-1, 0x00C4, 600},
582     {-1, 0x00E8, 600},
583     {-1, 0x017A, 600},
584     {-1, 0x012F, 600},
585     {-1, 0x00D3, 600},
586     {-1, 0x00F3, 600},
587     {-1, 0x0101, 600},
588     {-1, 0x015B, 600},
589     {-1, 0x00EF, 600},
590     {-1, 0x00D4, 600},
591     {-1, 0x00D9, 600},
592     {-1, 0x0394, 600},
593     {-1, 0x00FE, 600},
594     {-1, 0x00B2, 600},
595     {-1, 0x00D6, 600},
596     {-1, 0x00B5, 600},
597     {-1, 0x00EC, 600},
598     {-1, 0x0151, 600},
599     {-1, 0x0118, 600},
600     {-1, 0x0111, 600},
601     {-1, 0x00BE, 600},
602     {-1, 0x015E, 600},
603     {-1, 0x013E, 600},
604     {-1, 0x0136, 600},
605     {-1, 0x0139, 600},
606     {-1, 0x2122, 600},
607     {-1, 0x0117, 600},
608     {-1, 0x00CC, 600},
609     {-1, 0x012A, 600},
610     {-1, 0x013D, 600},
611     {-1, 0x00BD, 600},
612     {-1, 0x2264, 600},
613     {-1, 0x00F4, 600},
614     {-1, 0x00F1, 600},
615     {-1, 0x0170, 600},
616     {-1, 0x00C9, 600},
617     {-1, 0x0113, 600},
618     {-1, 0x011F, 600},
619     {-1, 0x00BC, 600},
620     {-1, 0x0160, 600},
621     {-1, 0x0218, 600},
622     {-1, 0x0150, 600},
623     {-1, 0x00B0, 600},
624     {-1, 0x00F2, 600},
625     {-1, 0x010C, 600},
626     {-1, 0x00F9, 600},
627     {-1, 0x221A, 600},
628     {-1, 0x010E, 600},
629     {-1, 0x0157, 600},
630     {-1, 0x00D1, 600},
631     {-1, 0x00F5, 600},
632     {-1, 0x0156, 600},
633     {-1, 0x013B, 600},
634     {-1, 0x00C3, 600},
635     {-1, 0x0104, 600},
636     {-1, 0x00C5, 600},
637     {-1, 0x00D5, 600},
638     {-1, 0x017C, 600},
639     {-1, 0x011A, 600},
640     {-1, 0x012E, 600},
641     {-1, 0x0137, 600},
642     {-1, 0x2212, 600},
643     {-1, 0x00CE, 600},
644     {-1, 0x0148, 600},
645     {-1, 0x0163, 600},
646     {-1, 0x00AC, 600},
647     {-1, 0x00F6, 600},
648     {-1, 0x00FC, 600},
649     {-1, 0x2260, 600},
650     {-1, 0x0123, 600},
651     {-1, 0x00F0, 600},
652     {-1, 0x017E, 600},
653     {-1, 0x0146, 600},
654     {-1, 0x00B9, 600},
655     {-1, 0x012B, 600},
656     {-1, 0x20AC, 600},
657     {-1, 0xFFFF, 0}
658     };
659 
660 static const HPDF_CharData CHAR_DATA_COURIER_BOLD_OBLIQUE[316] = {
661     {32, 0x0020, 600},
662     {33, 0x0021, 600},
663     {34, 0x0022, 600},
664     {35, 0x0023, 600},
665     {36, 0x0024, 600},
666     {37, 0x0025, 600},
667     {38, 0x0026, 600},
668     {39, 0x2019, 600},
669     {40, 0x0028, 600},
670     {41, 0x0029, 600},
671     {42, 0x002A, 600},
672     {43, 0x002B, 600},
673     {44, 0x002C, 600},
674     {45, 0x002D, 600},
675     {46, 0x002E, 600},
676     {47, 0x002F, 600},
677     {48, 0x0030, 600},
678     {49, 0x0031, 600},
679     {50, 0x0032, 600},
680     {51, 0x0033, 600},
681     {52, 0x0034, 600},
682     {53, 0x0035, 600},
683     {54, 0x0036, 600},
684     {55, 0x0037, 600},
685     {56, 0x0038, 600},
686     {57, 0x0039, 600},
687     {58, 0x003A, 600},
688     {59, 0x003B, 600},
689     {60, 0x003C, 600},
690     {61, 0x003D, 600},
691     {62, 0x003E, 600},
692     {63, 0x003F, 600},
693     {64, 0x0040, 600},
694     {65, 0x0041, 600},
695     {66, 0x0042, 600},
696     {67, 0x0043, 600},
697     {68, 0x0044, 600},
698     {69, 0x0045, 600},
699     {70, 0x0046, 600},
700     {71, 0x0047, 600},
701     {72, 0x0048, 600},
702     {73, 0x0049, 600},
703     {74, 0x004A, 600},
704     {75, 0x004B, 600},
705     {76, 0x004C, 600},
706     {77, 0x004D, 600},
707     {78, 0x004E, 600},
708     {79, 0x004F, 600},
709     {80, 0x0050, 600},
710     {81, 0x0051, 600},
711     {82, 0x0052, 600},
712     {83, 0x0053, 600},
713     {84, 0x0054, 600},
714     {85, 0x0055, 600},
715     {86, 0x0056, 600},
716     {87, 0x0057, 600},
717     {88, 0x0058, 600},
718     {89, 0x0059, 600},
719     {90, 0x005A, 600},
720     {91, 0x005B, 600},
721     {92, 0x005C, 600},
722     {93, 0x005D, 600},
723     {94, 0x005E, 600},
724     {95, 0x005F, 600},
725     {96, 0x2018, 600},
726     {97, 0x0061, 600},
727     {98, 0x0062, 600},
728     {99, 0x0063, 600},
729     {100, 0x0064, 600},
730     {101, 0x0065, 600},
731     {102, 0x0066, 600},
732     {103, 0x0067, 600},
733     {104, 0x0068, 600},
734     {105, 0x0069, 600},
735     {106, 0x006A, 600},
736     {107, 0x006B, 600},
737     {108, 0x006C, 600},
738     {109, 0x006D, 600},
739     {110, 0x006E, 600},
740     {111, 0x006F, 600},
741     {112, 0x0070, 600},
742     {113, 0x0071, 600},
743     {114, 0x0072, 600},
744     {115, 0x0073, 600},
745     {116, 0x0074, 600},
746     {117, 0x0075, 600},
747     {118, 0x0076, 600},
748     {119, 0x0077, 600},
749     {120, 0x0078, 600},
750     {121, 0x0079, 600},
751     {122, 0x007A, 600},
752     {123, 0x007B, 600},
753     {124, 0x007C, 600},
754     {125, 0x007D, 600},
755     {126, 0x007E, 600},
756     {161, 0x00A1, 600},
757     {162, 0x00A2, 600},
758     {163, 0x00A3, 600},
759     {164, 0x2044, 600},
760     {165, 0x00A5, 600},
761     {166, 0x0192, 600},
762     {167, 0x00A7, 600},
763     {168, 0x00A4, 600},
764     {169, 0x0027, 600},
765     {170, 0x201C, 600},
766     {171, 0x00AB, 600},
767     {172, 0x2039, 600},
768     {173, 0x203A, 600},
769     {174, 0xFB01, 600},
770     {175, 0xFB02, 600},
771     {177, 0x2013, 600},
772     {178, 0x2020, 600},
773     {179, 0x2021, 600},
774     {180, 0x00B7, 600},
775     {182, 0x00B6, 600},
776     {183, 0x2022, 600},
777     {184, 0x201A, 600},
778     {185, 0x201E, 600},
779     {186, 0x201D, 600},
780     {187, 0x00BB, 600},
781     {188, 0x2026, 600},
782     {189, 0x2030, 600},
783     {191, 0x00BF, 600},
784     {193, 0x0060, 600},
785     {194, 0x00B4, 600},
786     {195, 0x02C6, 600},
787     {196, 0x02DC, 600},
788     {197, 0x00AF, 600},
789     {198, 0x02D8, 600},
790     {199, 0x02D9, 600},
791     {200, 0x00A8, 600},
792     {202, 0x02DA, 600},
793     {203, 0x00B8, 600},
794     {205, 0x02DD, 600},
795     {206, 0x02DB, 600},
796     {207, 0x02C7, 600},
797     {208, 0x2014, 600},
798     {225, 0x00C6, 600},
799     {227, 0x00AA, 600},
800     {232, 0x0141, 600},
801     {233, 0x00D8, 600},
802     {234, 0x0152, 600},
803     {235, 0x00BA, 600},
804     {241, 0x00E6, 600},
805     {245, 0x0131, 600},
806     {248, 0x0142, 600},
807     {249, 0x00F8, 600},
808     {250, 0x0153, 600},
809     {251, 0x00DF, 600},
810     {-1, 0x00CF, 600},
811     {-1, 0x00E9, 600},
812     {-1, 0x0103, 600},
813     {-1, 0x0171, 600},
814     {-1, 0x011B, 600},
815     {-1, 0x0178, 600},
816     {-1, 0x00F7, 600},
817     {-1, 0x00DD, 600},
818     {-1, 0x00C2, 600},
819     {-1, 0x00E1, 600},
820     {-1, 0x00DB, 600},
821     {-1, 0x00FD, 600},
822     {-1, 0x0219, 600},
823     {-1, 0x00EA, 600},
824     {-1, 0x016E, 600},
825     {-1, 0x00DC, 600},
826     {-1, 0x0105, 600},
827     {-1, 0x00DA, 600},
828     {-1, 0x0173, 600},
829     {-1, 0x00CB, 600},
830     {-1, 0x0110, 600},
831     {-1, 0xF6C3, 600},
832     {-1, 0x00A9, 600},
833     {-1, 0x0112, 600},
834     {-1, 0x010D, 600},
835     {-1, 0x00E5, 600},
836     {-1, 0x0145, 600},
837     {-1, 0x013A, 600},
838     {-1, 0x00E0, 600},
839     {-1, 0x0162, 600},
840     {-1, 0x0106, 600},
841     {-1, 0x00E3, 600},
842     {-1, 0x0116, 600},
843     {-1, 0x0161, 600},
844     {-1, 0x015F, 600},
845     {-1, 0x00ED, 600},
846     {-1, 0x25CA, 600},
847     {-1, 0x0158, 600},
848     {-1, 0x0122, 600},
849     {-1, 0x00FB, 600},
850     {-1, 0x00E2, 600},
851     {-1, 0x0100, 600},
852     {-1, 0x0159, 600},
853     {-1, 0x00E7, 600},
854     {-1, 0x017B, 600},
855     {-1, 0x00DE, 600},
856     {-1, 0x014C, 600},
857     {-1, 0x0154, 600},
858     {-1, 0x015A, 600},
859     {-1, 0x010F, 600},
860     {-1, 0x016A, 600},
861     {-1, 0x016F, 600},
862     {-1, 0x00B3, 600},
863     {-1, 0x00D2, 600},
864     {-1, 0x00C0, 600},
865     {-1, 0x0102, 600},
866     {-1, 0x00D7, 600},
867     {-1, 0x00FA, 600},
868     {-1, 0x0164, 600},
869     {-1, 0x2202, 600},
870     {-1, 0x00FF, 600},
871     {-1, 0x0143, 600},
872     {-1, 0x00EE, 600},
873     {-1, 0x00CA, 600},
874     {-1, 0x00E4, 600},
875     {-1, 0x00EB, 600},
876     {-1, 0x0107, 600},
877     {-1, 0x0144, 600},
878     {-1, 0x016B, 600},
879     {-1, 0x0147, 600},
880     {-1, 0x00CD, 600},
881     {-1, 0x00B1, 600},
882     {-1, 0x00A6, 600},
883     {-1, 0x00AE, 600},
884     {-1, 0x011E, 600},
885     {-1, 0x0130, 600},
886     {-1, 0x2211, 600},
887     {-1, 0x00C8, 600},
888     {-1, 0x0155, 600},
889     {-1, 0x014D, 600},
890     {-1, 0x0179, 600},
891     {-1, 0x017D, 600},
892     {-1, 0x2265, 600},
893     {-1, 0x00D0, 600},
894     {-1, 0x00C7, 600},
895     {-1, 0x013C, 600},
896     {-1, 0x0165, 600},
897     {-1, 0x0119, 600},
898     {-1, 0x0172, 600},
899     {-1, 0x00C1, 600},
900     {-1, 0x00C4, 600},
901     {-1, 0x00E8, 600},
902     {-1, 0x017A, 600},
903     {-1, 0x012F, 600},
904     {-1, 0x00D3, 600},
905     {-1, 0x00F3, 600},
906     {-1, 0x0101, 600},
907     {-1, 0x015B, 600},
908     {-1, 0x00EF, 600},
909     {-1, 0x00D4, 600},
910     {-1, 0x00D9, 600},
911     {-1, 0x0394, 600},
912     {-1, 0x00FE, 600},
913     {-1, 0x00B2, 600},
914     {-1, 0x00D6, 600},
915     {-1, 0x00B5, 600},
916     {-1, 0x00EC, 600},
917     {-1, 0x0151, 600},
918     {-1, 0x0118, 600},
919     {-1, 0x0111, 600},
920     {-1, 0x00BE, 600},
921     {-1, 0x015E, 600},
922     {-1, 0x013E, 600},
923     {-1, 0x0136, 600},
924     {-1, 0x0139, 600},
925     {-1, 0x2122, 600},
926     {-1, 0x0117, 600},
927     {-1, 0x00CC, 600},
928     {-1, 0x012A, 600},
929     {-1, 0x013D, 600},
930     {-1, 0x00BD, 600},
931     {-1, 0x2264, 600},
932     {-1, 0x00F4, 600},
933     {-1, 0x00F1, 600},
934     {-1, 0x0170, 600},
935     {-1, 0x00C9, 600},
936     {-1, 0x0113, 600},
937     {-1, 0x011F, 600},
938     {-1, 0x00BC, 600},
939     {-1, 0x0160, 600},
940     {-1, 0x0218, 600},
941     {-1, 0x0150, 600},
942     {-1, 0x00B0, 600},
943     {-1, 0x00F2, 600},
944     {-1, 0x010C, 600},
945     {-1, 0x00F9, 600},
946     {-1, 0x221A, 600},
947     {-1, 0x010E, 600},
948     {-1, 0x0157, 600},
949     {-1, 0x00D1, 600},
950     {-1, 0x00F5, 600},
951     {-1, 0x0156, 600},
952     {-1, 0x013B, 600},
953     {-1, 0x00C3, 600},
954     {-1, 0x0104, 600},
955     {-1, 0x00C5, 600},
956     {-1, 0x00D5, 600},
957     {-1, 0x017C, 600},
958     {-1, 0x011A, 600},
959     {-1, 0x012E, 600},
960     {-1, 0x0137, 600},
961     {-1, 0x2212, 600},
962     {-1, 0x00CE, 600},
963     {-1, 0x0148, 600},
964     {-1, 0x0163, 600},
965     {-1, 0x00AC, 600},
966     {-1, 0x00F6, 600},
967     {-1, 0x00FC, 600},
968     {-1, 0x2260, 600},
969     {-1, 0x0123, 600},
970     {-1, 0x00F0, 600},
971     {-1, 0x017E, 600},
972     {-1, 0x0146, 600},
973     {-1, 0x00B9, 600},
974     {-1, 0x012B, 600},
975     {-1, 0x20AC, 600},
976     {-1, 0xFFFF, 0}
977     };
978 
979 static const HPDF_CharData CHAR_DATA_COURIER_OBLIQUE[316] = {
980     {32, 0x0020, 600},
981     {33, 0x0021, 600},
982     {34, 0x0022, 600},
983     {35, 0x0023, 600},
984     {36, 0x0024, 600},
985     {37, 0x0025, 600},
986     {38, 0x0026, 600},
987     {39, 0x2019, 600},
988     {40, 0x0028, 600},
989     {41, 0x0029, 600},
990     {42, 0x002A, 600},
991     {43, 0x002B, 600},
992     {44, 0x002C, 600},
993     {45, 0x002D, 600},
994     {46, 0x002E, 600},
995     {47, 0x002F, 600},
996     {48, 0x0030, 600},
997     {49, 0x0031, 600},
998     {50, 0x0032, 600},
999     {51, 0x0033, 600},
1000     {52, 0x0034, 600},
1001     {53, 0x0035, 600},
1002     {54, 0x0036, 600},
1003     {55, 0x0037, 600},
1004     {56, 0x0038, 600},
1005     {57, 0x0039, 600},
1006     {58, 0x003A, 600},
1007     {59, 0x003B, 600},
1008     {60, 0x003C, 600},
1009     {61, 0x003D, 600},
1010     {62, 0x003E, 600},
1011     {63, 0x003F, 600},
1012     {64, 0x0040, 600},
1013     {65, 0x0041, 600},
1014     {66, 0x0042, 600},
1015     {67, 0x0043, 600},
1016     {68, 0x0044, 600},
1017     {69, 0x0045, 600},
1018     {70, 0x0046, 600},
1019     {71, 0x0047, 600},
1020     {72, 0x0048, 600},
1021     {73, 0x0049, 600},
1022     {74, 0x004A, 600},
1023     {75, 0x004B, 600},
1024     {76, 0x004C, 600},
1025     {77, 0x004D, 600},
1026     {78, 0x004E, 600},
1027     {79, 0x004F, 600},
1028     {80, 0x0050, 600},
1029     {81, 0x0051, 600},
1030     {82, 0x0052, 600},
1031     {83, 0x0053, 600},
1032     {84, 0x0054, 600},
1033     {85, 0x0055, 600},
1034     {86, 0x0056, 600},
1035     {87, 0x0057, 600},
1036     {88, 0x0058, 600},
1037     {89, 0x0059, 600},
1038     {90, 0x005A, 600},
1039     {91, 0x005B, 600},
1040     {92, 0x005C, 600},
1041     {93, 0x005D, 600},
1042     {94, 0x005E, 600},
1043     {95, 0x005F, 600},
1044     {96, 0x2018, 600},
1045     {97, 0x0061, 600},
1046     {98, 0x0062, 600},
1047     {99, 0x0063, 600},
1048     {100, 0x0064, 600},
1049     {101, 0x0065, 600},
1050     {102, 0x0066, 600},
1051     {103, 0x0067, 600},
1052     {104, 0x0068, 600},
1053     {105, 0x0069, 600},
1054     {106, 0x006A, 600},
1055     {107, 0x006B, 600},
1056     {108, 0x006C, 600},
1057     {109, 0x006D, 600},
1058     {110, 0x006E, 600},
1059     {111, 0x006F, 600},
1060     {112, 0x0070, 600},
1061     {113, 0x0071, 600},
1062     {114, 0x0072, 600},
1063     {115, 0x0073, 600},
1064     {116, 0x0074, 600},
1065     {117, 0x0075, 600},
1066     {118, 0x0076, 600},
1067     {119, 0x0077, 600},
1068     {120, 0x0078, 600},
1069     {121, 0x0079, 600},
1070     {122, 0x007A, 600},
1071     {123, 0x007B, 600},
1072     {124, 0x007C, 600},
1073     {125, 0x007D, 600},
1074     {126, 0x007E, 600},
1075     {161, 0x00A1, 600},
1076     {162, 0x00A2, 600},
1077     {163, 0x00A3, 600},
1078     {164, 0x2044, 600},
1079     {165, 0x00A5, 600},
1080     {166, 0x0192, 600},
1081     {167, 0x00A7, 600},
1082     {168, 0x00A4, 600},
1083     {169, 0x0027, 600},
1084     {170, 0x201C, 600},
1085     {171, 0x00AB, 600},
1086     {172, 0x2039, 600},
1087     {173, 0x203A, 600},
1088     {174, 0xFB01, 600},
1089     {175, 0xFB02, 600},
1090     {177, 0x2013, 600},
1091     {178, 0x2020, 600},
1092     {179, 0x2021, 600},
1093     {180, 0x00B7, 600},
1094     {182, 0x00B6, 600},
1095     {183, 0x2022, 600},
1096     {184, 0x201A, 600},
1097     {185, 0x201E, 600},
1098     {186, 0x201D, 600},
1099     {187, 0x00BB, 600},
1100     {188, 0x2026, 600},
1101     {189, 0x2030, 600},
1102     {191, 0x00BF, 600},
1103     {193, 0x0060, 600},
1104     {194, 0x00B4, 600},
1105     {195, 0x02C6, 600},
1106     {196, 0x02DC, 600},
1107     {197, 0x00AF, 600},
1108     {198, 0x02D8, 600},
1109     {199, 0x02D9, 600},
1110     {200, 0x00A8, 600},
1111     {202, 0x02DA, 600},
1112     {203, 0x00B8, 600},
1113     {205, 0x02DD, 600},
1114     {206, 0x02DB, 600},
1115     {207, 0x02C7, 600},
1116     {208, 0x2014, 600},
1117     {225, 0x00C6, 600},
1118     {227, 0x00AA, 600},
1119     {232, 0x0141, 600},
1120     {233, 0x00D8, 600},
1121     {234, 0x0152, 600},
1122     {235, 0x00BA, 600},
1123     {241, 0x00E6, 600},
1124     {245, 0x0131, 600},
1125     {248, 0x0142, 600},
1126     {249, 0x00F8, 600},
1127     {250, 0x0153, 600},
1128     {251, 0x00DF, 600},
1129     {-1, 0x00CF, 600},
1130     {-1, 0x00E9, 600},
1131     {-1, 0x0103, 600},
1132     {-1, 0x0171, 600},
1133     {-1, 0x011B, 600},
1134     {-1, 0x0178, 600},
1135     {-1, 0x00F7, 600},
1136     {-1, 0x00DD, 600},
1137     {-1, 0x00C2, 600},
1138     {-1, 0x00E1, 600},
1139     {-1, 0x00DB, 600},
1140     {-1, 0x00FD, 600},
1141     {-1, 0x0219, 600},
1142     {-1, 0x00EA, 600},
1143     {-1, 0x016E, 600},
1144     {-1, 0x00DC, 600},
1145     {-1, 0x0105, 600},
1146     {-1, 0x00DA, 600},
1147     {-1, 0x0173, 600},
1148     {-1, 0x00CB, 600},
1149     {-1, 0x0110, 600},
1150     {-1, 0xF6C3, 600},
1151     {-1, 0x00A9, 600},
1152     {-1, 0x0112, 600},
1153     {-1, 0x010D, 600},
1154     {-1, 0x00E5, 600},
1155     {-1, 0x0145, 600},
1156     {-1, 0x013A, 600},
1157     {-1, 0x00E0, 600},
1158     {-1, 0x0162, 600},
1159     {-1, 0x0106, 600},
1160     {-1, 0x00E3, 600},
1161     {-1, 0x0116, 600},
1162     {-1, 0x0161, 600},
1163     {-1, 0x015F, 600},
1164     {-1, 0x00ED, 600},
1165     {-1, 0x25CA, 600},
1166     {-1, 0x0158, 600},
1167     {-1, 0x0122, 600},
1168     {-1, 0x00FB, 600},
1169     {-1, 0x00E2, 600},
1170     {-1, 0x0100, 600},
1171     {-1, 0x0159, 600},
1172     {-1, 0x00E7, 600},
1173     {-1, 0x017B, 600},
1174     {-1, 0x00DE, 600},
1175     {-1, 0x014C, 600},
1176     {-1, 0x0154, 600},
1177     {-1, 0x015A, 600},
1178     {-1, 0x010F, 600},
1179     {-1, 0x016A, 600},
1180     {-1, 0x016F, 600},
1181     {-1, 0x00B3, 600},
1182     {-1, 0x00D2, 600},
1183     {-1, 0x00C0, 600},
1184     {-1, 0x0102, 600},
1185     {-1, 0x00D7, 600},
1186     {-1, 0x00FA, 600},
1187     {-1, 0x0164, 600},
1188     {-1, 0x2202, 600},
1189     {-1, 0x00FF, 600},
1190     {-1, 0x0143, 600},
1191     {-1, 0x00EE, 600},
1192     {-1, 0x00CA, 600},
1193     {-1, 0x00E4, 600},
1194     {-1, 0x00EB, 600},
1195     {-1, 0x0107, 600},
1196     {-1, 0x0144, 600},
1197     {-1, 0x016B, 600},
1198     {-1, 0x0147, 600},
1199     {-1, 0x00CD, 600},
1200     {-1, 0x00B1, 600},
1201     {-1, 0x00A6, 600},
1202     {-1, 0x00AE, 600},
1203     {-1, 0x011E, 600},
1204     {-1, 0x0130, 600},
1205     {-1, 0x2211, 600},
1206     {-1, 0x00C8, 600},
1207     {-1, 0x0155, 600},
1208     {-1, 0x014D, 600},
1209     {-1, 0x0179, 600},
1210     {-1, 0x017D, 600},
1211     {-1, 0x2265, 600},
1212     {-1, 0x00D0, 600},
1213     {-1, 0x00C7, 600},
1214     {-1, 0x013C, 600},
1215     {-1, 0x0165, 600},
1216     {-1, 0x0119, 600},
1217     {-1, 0x0172, 600},
1218     {-1, 0x00C1, 600},
1219     {-1, 0x00C4, 600},
1220     {-1, 0x00E8, 600},
1221     {-1, 0x017A, 600},
1222     {-1, 0x012F, 600},
1223     {-1, 0x00D3, 600},
1224     {-1, 0x00F3, 600},
1225     {-1, 0x0101, 600},
1226     {-1, 0x015B, 600},
1227     {-1, 0x00EF, 600},
1228     {-1, 0x00D4, 600},
1229     {-1, 0x00D9, 600},
1230     {-1, 0x0394, 600},
1231     {-1, 0x00FE, 600},
1232     {-1, 0x00B2, 600},
1233     {-1, 0x00D6, 600},
1234     {-1, 0x00B5, 600},
1235     {-1, 0x00EC, 600},
1236     {-1, 0x0151, 600},
1237     {-1, 0x0118, 600},
1238     {-1, 0x0111, 600},
1239     {-1, 0x00BE, 600},
1240     {-1, 0x015E, 600},
1241     {-1, 0x013E, 600},
1242     {-1, 0x0136, 600},
1243     {-1, 0x0139, 600},
1244     {-1, 0x2122, 600},
1245     {-1, 0x0117, 600},
1246     {-1, 0x00CC, 600},
1247     {-1, 0x012A, 600},
1248     {-1, 0x013D, 600},
1249     {-1, 0x00BD, 600},
1250     {-1, 0x2264, 600},
1251     {-1, 0x00F4, 600},
1252     {-1, 0x00F1, 600},
1253     {-1, 0x0170, 600},
1254     {-1, 0x00C9, 600},
1255     {-1, 0x0113, 600},
1256     {-1, 0x011F, 600},
1257     {-1, 0x00BC, 600},
1258     {-1, 0x0160, 600},
1259     {-1, 0x0218, 600},
1260     {-1, 0x0150, 600},
1261     {-1, 0x00B0, 600},
1262     {-1, 0x00F2, 600},
1263     {-1, 0x010C, 600},
1264     {-1, 0x00F9, 600},
1265     {-1, 0x221A, 600},
1266     {-1, 0x010E, 600},
1267     {-1, 0x0157, 600},
1268     {-1, 0x00D1, 600},
1269     {-1, 0x00F5, 600},
1270     {-1, 0x0156, 600},
1271     {-1, 0x013B, 600},
1272     {-1, 0x00C3, 600},
1273     {-1, 0x0104, 600},
1274     {-1, 0x00C5, 600},
1275     {-1, 0x00D5, 600},
1276     {-1, 0x017C, 600},
1277     {-1, 0x011A, 600},
1278     {-1, 0x012E, 600},
1279     {-1, 0x0137, 600},
1280     {-1, 0x2212, 600},
1281     {-1, 0x00CE, 600},
1282     {-1, 0x0148, 600},
1283     {-1, 0x0163, 600},
1284     {-1, 0x00AC, 600},
1285     {-1, 0x00F6, 600},
1286     {-1, 0x00FC, 600},
1287     {-1, 0x2260, 600},
1288     {-1, 0x0123, 600},
1289     {-1, 0x00F0, 600},
1290     {-1, 0x017E, 600},
1291     {-1, 0x0146, 600},
1292     {-1, 0x00B9, 600},
1293     {-1, 0x012B, 600},
1294     {-1, 0x20AC, 600},
1295     {-1, 0xFFFF, 0}
1296     };
1297 
1298 static const HPDF_CharData CHAR_DATA_HELVETICA[316] = {
1299     {32, 0x0020, 278},
1300     {33, 0x0021, 278},
1301     {34, 0x0022, 355},
1302     {35, 0x0023, 556},
1303     {36, 0x0024, 556},
1304     {37, 0x0025, 889},
1305     {38, 0x0026, 667},
1306     {39, 0x2019, 222},
1307     {40, 0x0028, 333},
1308     {41, 0x0029, 333},
1309     {42, 0x002A, 389},
1310     {43, 0x002B, 584},
1311     {44, 0x002C, 278},
1312     {45, 0x002D, 333},
1313     {46, 0x002E, 278},
1314     {47, 0x002F, 278},
1315     {48, 0x0030, 556},
1316     {49, 0x0031, 556},
1317     {50, 0x0032, 556},
1318     {51, 0x0033, 556},
1319     {52, 0x0034, 556},
1320     {53, 0x0035, 556},
1321     {54, 0x0036, 556},
1322     {55, 0x0037, 556},
1323     {56, 0x0038, 556},
1324     {57, 0x0039, 556},
1325     {58, 0x003A, 278},
1326     {59, 0x003B, 278},
1327     {60, 0x003C, 584},
1328     {61, 0x003D, 584},
1329     {62, 0x003E, 584},
1330     {63, 0x003F, 556},
1331     {64, 0x0040, 1015},
1332     {65, 0x0041, 667},
1333     {66, 0x0042, 667},
1334     {67, 0x0043, 722},
1335     {68, 0x0044, 722},
1336     {69, 0x0045, 667},
1337     {70, 0x0046, 611},
1338     {71, 0x0047, 778},
1339     {72, 0x0048, 722},
1340     {73, 0x0049, 278},
1341     {74, 0x004A, 500},
1342     {75, 0x004B, 667},
1343     {76, 0x004C, 556},
1344     {77, 0x004D, 833},
1345     {78, 0x004E, 722},
1346     {79, 0x004F, 778},
1347     {80, 0x0050, 667},
1348     {81, 0x0051, 778},
1349     {82, 0x0052, 722},
1350     {83, 0x0053, 667},
1351     {84, 0x0054, 611},
1352     {85, 0x0055, 722},
1353     {86, 0x0056, 667},
1354     {87, 0x0057, 944},
1355     {88, 0x0058, 667},
1356     {89, 0x0059, 667},
1357     {90, 0x005A, 611},
1358     {91, 0x005B, 278},
1359     {92, 0x005C, 278},
1360     {93, 0x005D, 278},
1361     {94, 0x005E, 469},
1362     {95, 0x005F, 556},
1363     {96, 0x2018, 222},
1364     {97, 0x0061, 556},
1365     {98, 0x0062, 556},
1366     {99, 0x0063, 500},
1367     {100, 0x0064, 556},
1368     {101, 0x0065, 556},
1369     {102, 0x0066, 278},
1370     {103, 0x0067, 556},
1371     {104, 0x0068, 556},
1372     {105, 0x0069, 222},
1373     {106, 0x006A, 222},
1374     {107, 0x006B, 500},
1375     {108, 0x006C, 222},
1376     {109, 0x006D, 833},
1377     {110, 0x006E, 556},
1378     {111, 0x006F, 556},
1379     {112, 0x0070, 556},
1380     {113, 0x0071, 556},
1381     {114, 0x0072, 333},
1382     {115, 0x0073, 500},
1383     {116, 0x0074, 278},
1384     {117, 0x0075, 556},
1385     {118, 0x0076, 500},
1386     {119, 0x0077, 722},
1387     {120, 0x0078, 500},
1388     {121, 0x0079, 500},
1389     {122, 0x007A, 500},
1390     {123, 0x007B, 334},
1391     {124, 0x007C, 260},
1392     {125, 0x007D, 334},
1393     {126, 0x007E, 584},
1394     {161, 0x00A1, 333},
1395     {162, 0x00A2, 556},
1396     {163, 0x00A3, 556},
1397     {164, 0x2044, 167},
1398     {165, 0x00A5, 556},
1399     {166, 0x0192, 556},
1400     {167, 0x00A7, 556},
1401     {168, 0x00A4, 556},
1402     {169, 0x0027, 191},
1403     {170, 0x201C, 333},
1404     {171, 0x00AB, 556},
1405     {172, 0x2039, 333},
1406     {173, 0x203A, 333},
1407     {174, 0xFB01, 500},
1408     {175, 0xFB02, 500},
1409     {177, 0x2013, 556},
1410     {178, 0x2020, 556},
1411     {179, 0x2021, 556},
1412     {180, 0x00B7, 278},
1413     {182, 0x00B6, 537},
1414     {183, 0x2022, 350},
1415     {184, 0x201A, 222},
1416     {185, 0x201E, 333},
1417     {186, 0x201D, 333},
1418     {187, 0x00BB, 556},
1419     {188, 0x2026, 1000},
1420     {189, 0x2030, 1000},
1421     {191, 0x00BF, 611},
1422     {193, 0x0060, 333},
1423     {194, 0x00B4, 333},
1424     {195, 0x02C6, 333},
1425     {196, 0x02DC, 333},
1426     {197, 0x00AF, 333},
1427     {198, 0x02D8, 333},
1428     {199, 0x02D9, 333},
1429     {200, 0x00A8, 333},
1430     {202, 0x02DA, 333},
1431     {203, 0x00B8, 333},
1432     {205, 0x02DD, 333},
1433     {206, 0x02DB, 333},
1434     {207, 0x02C7, 333},
1435     {208, 0x2014, 1000},
1436     {225, 0x00C6, 1000},
1437     {227, 0x00AA, 370},
1438     {232, 0x0141, 556},
1439     {233, 0x00D8, 778},
1440     {234, 0x0152, 1000},
1441     {235, 0x00BA, 365},
1442     {241, 0x00E6, 889},
1443     {245, 0x0131, 278},
1444     {248, 0x0142, 222},
1445     {249, 0x00F8, 611},
1446     {250, 0x0153, 944},
1447     {251, 0x00DF, 611},
1448     {-1, 0x00CF, 278},
1449     {-1, 0x00E9, 556},
1450     {-1, 0x0103, 556},
1451     {-1, 0x0171, 556},
1452     {-1, 0x011B, 556},
1453     {-1, 0x0178, 667},
1454     {-1, 0x00F7, 584},
1455     {-1, 0x00DD, 667},
1456     {-1, 0x00C2, 667},
1457     {-1, 0x00E1, 556},
1458     {-1, 0x00DB, 722},
1459     {-1, 0x00FD, 500},
1460     {-1, 0x0219, 500},
1461     {-1, 0x00EA, 556},
1462     {-1, 0x016E, 722},
1463     {-1, 0x00DC, 722},
1464     {-1, 0x0105, 556},
1465     {-1, 0x00DA, 722},
1466     {-1, 0x0173, 556},
1467     {-1, 0x00CB, 667},
1468     {-1, 0x0110, 722},
1469     {-1, 0xF6C3, 250},
1470     {-1, 0x00A9, 737},
1471     {-1, 0x0112, 667},
1472     {-1, 0x010D, 500},
1473     {-1, 0x00E5, 556},
1474     {-1, 0x0145, 722},
1475     {-1, 0x013A, 222},
1476     {-1, 0x00E0, 556},
1477     {-1, 0x0162, 611},
1478     {-1, 0x0106, 722},
1479     {-1, 0x00E3, 556},
1480     {-1, 0x0116, 667},
1481     {-1, 0x0161, 500},
1482     {-1, 0x015F, 500},
1483     {-1, 0x00ED, 278},
1484     {-1, 0x25CA, 471},
1485     {-1, 0x0158, 722},
1486     {-1, 0x0122, 778},
1487     {-1, 0x00FB, 556},
1488     {-1, 0x00E2, 556},
1489     {-1, 0x0100, 667},
1490     {-1, 0x0159, 333},
1491     {-1, 0x00E7, 500},
1492     {-1, 0x017B, 611},
1493     {-1, 0x00DE, 667},
1494     {-1, 0x014C, 778},
1495     {-1, 0x0154, 722},
1496     {-1, 0x015A, 667},
1497     {-1, 0x010F, 643},
1498     {-1, 0x016A, 722},
1499     {-1, 0x016F, 556},
1500     {-1, 0x00B3, 333},
1501     {-1, 0x00D2, 778},
1502     {-1, 0x00C0, 667},
1503     {-1, 0x0102, 667},
1504     {-1, 0x00D7, 584},
1505     {-1, 0x00FA, 556},
1506     {-1, 0x0164, 611},
1507     {-1, 0x2202, 476},
1508     {-1, 0x00FF, 500},
1509     {-1, 0x0143, 722},
1510     {-1, 0x00EE, 278},
1511     {-1, 0x00CA, 667},
1512     {-1, 0x00E4, 556},
1513     {-1, 0x00EB, 556},
1514     {-1, 0x0107, 500},
1515     {-1, 0x0144, 556},
1516     {-1, 0x016B, 556},
1517     {-1, 0x0147, 722},
1518     {-1, 0x00CD, 278},
1519     {-1, 0x00B1, 584},
1520     {-1, 0x00A6, 260},
1521     {-1, 0x00AE, 737},
1522     {-1, 0x011E, 778},
1523     {-1, 0x0130, 278},
1524     {-1, 0x2211, 600},
1525     {-1, 0x00C8, 667},
1526     {-1, 0x0155, 333},
1527     {-1, 0x014D, 556},
1528     {-1, 0x0179, 611},
1529     {-1, 0x017D, 611},
1530     {-1, 0x2265, 549},
1531     {-1, 0x00D0, 722},
1532     {-1, 0x00C7, 722},
1533     {-1, 0x013C, 222},
1534     {-1, 0x0165, 316},
1535     {-1, 0x0119, 556},
1536     {-1, 0x0172, 722},
1537     {-1, 0x00C1, 667},
1538     {-1, 0x00C4, 667},
1539     {-1, 0x00E8, 556},
1540     {-1, 0x017A, 500},
1541     {-1, 0x012F, 222},
1542     {-1, 0x00D3, 778},
1543     {-1, 0x00F3, 556},
1544     {-1, 0x0101, 556},
1545     {-1, 0x015B, 500},
1546     {-1, 0x00EF, 278},
1547     {-1, 0x00D4, 778},
1548     {-1, 0x00D9, 722},
1549     {-1, 0x0394, 612},
1550     {-1, 0x00FE, 556},
1551     {-1, 0x00B2, 333},
1552     {-1, 0x00D6, 778},
1553     {-1, 0x00B5, 556},
1554     {-1, 0x00EC, 278},
1555     {-1, 0x0151, 556},
1556     {-1, 0x0118, 667},
1557     {-1, 0x0111, 556},
1558     {-1, 0x00BE, 834},
1559     {-1, 0x015E, 667},
1560     {-1, 0x013E, 299},
1561     {-1, 0x0136, 667},
1562     {-1, 0x0139, 556},
1563     {-1, 0x2122, 1000},
1564     {-1, 0x0117, 556},
1565     {-1, 0x00CC, 278},
1566     {-1, 0x012A, 278},
1567     {-1, 0x013D, 556},
1568     {-1, 0x00BD, 834},
1569     {-1, 0x2264, 549},
1570     {-1, 0x00F4, 556},
1571     {-1, 0x00F1, 556},
1572     {-1, 0x0170, 722},
1573     {-1, 0x00C9, 667},
1574     {-1, 0x0113, 556},
1575     {-1, 0x011F, 556},
1576     {-1, 0x00BC, 834},
1577     {-1, 0x0160, 667},
1578     {-1, 0x0218, 667},
1579     {-1, 0x0150, 778},
1580     {-1, 0x00B0, 400},
1581     {-1, 0x00F2, 556},
1582     {-1, 0x010C, 722},
1583     {-1, 0x00F9, 556},
1584     {-1, 0x221A, 453},
1585     {-1, 0x010E, 722},
1586     {-1, 0x0157, 333},
1587     {-1, 0x00D1, 722},
1588     {-1, 0x00F5, 556},
1589     {-1, 0x0156, 722},
1590     {-1, 0x013B, 556},
1591     {-1, 0x00C3, 667},
1592     {-1, 0x0104, 667},
1593     {-1, 0x00C5, 667},
1594     {-1, 0x00D5, 778},
1595     {-1, 0x017C, 500},
1596     {-1, 0x011A, 667},
1597     {-1, 0x012E, 278},
1598     {-1, 0x0137, 500},
1599     {-1, 0x2212, 584},
1600     {-1, 0x00CE, 278},
1601     {-1, 0x0148, 556},
1602     {-1, 0x0163, 278},
1603     {-1, 0x00AC, 584},
1604     {-1, 0x00F6, 556},
1605     {-1, 0x00FC, 556},
1606     {-1, 0x2260, 549},
1607     {-1, 0x0123, 556},
1608     {-1, 0x00F0, 556},
1609     {-1, 0x017E, 500},
1610     {-1, 0x0146, 556},
1611     {-1, 0x00B9, 333},
1612     {-1, 0x012B, 278},
1613     {-1, 0x20AC, 556},
1614     {-1, 0xFFFF, 0}
1615     };
1616 
1617 static const HPDF_CharData CHAR_DATA_HELVETICA_BOLD[316] = {
1618     {32, 0x0020, 278},
1619     {33, 0x0021, 333},
1620     {34, 0x0022, 474},
1621     {35, 0x0023, 556},
1622     {36, 0x0024, 556},
1623     {37, 0x0025, 889},
1624     {38, 0x0026, 722},
1625     {39, 0x2019, 278},
1626     {40, 0x0028, 333},
1627     {41, 0x0029, 333},
1628     {42, 0x002A, 389},
1629     {43, 0x002B, 584},
1630     {44, 0x002C, 278},
1631     {45, 0x002D, 333},
1632     {46, 0x002E, 278},
1633     {47, 0x002F, 278},
1634     {48, 0x0030, 556},
1635     {49, 0x0031, 556},
1636     {50, 0x0032, 556},
1637     {51, 0x0033, 556},
1638     {52, 0x0034, 556},
1639     {53, 0x0035, 556},
1640     {54, 0x0036, 556},
1641     {55, 0x0037, 556},
1642     {56, 0x0038, 556},
1643     {57, 0x0039, 556},
1644     {58, 0x003A, 333},
1645     {59, 0x003B, 333},
1646     {60, 0x003C, 584},
1647     {61, 0x003D, 584},
1648     {62, 0x003E, 584},
1649     {63, 0x003F, 611},
1650     {64, 0x0040, 975},
1651     {65, 0x0041, 722},
1652     {66, 0x0042, 722},
1653     {67, 0x0043, 722},
1654     {68, 0x0044, 722},
1655     {69, 0x0045, 667},
1656     {70, 0x0046, 611},
1657     {71, 0x0047, 778},
1658     {72, 0x0048, 722},
1659     {73, 0x0049, 278},
1660     {74, 0x004A, 556},
1661     {75, 0x004B, 722},
1662     {76, 0x004C, 611},
1663     {77, 0x004D, 833},
1664     {78, 0x004E, 722},
1665     {79, 0x004F, 778},
1666     {80, 0x0050, 667},
1667     {81, 0x0051, 778},
1668     {82, 0x0052, 722},
1669     {83, 0x0053, 667},
1670     {84, 0x0054, 611},
1671     {85, 0x0055, 722},
1672     {86, 0x0056, 667},
1673     {87, 0x0057, 944},
1674     {88, 0x0058, 667},
1675     {89, 0x0059, 667},
1676     {90, 0x005A, 611},
1677     {91, 0x005B, 333},
1678     {92, 0x005C, 278},
1679     {93, 0x005D, 333},
1680     {94, 0x005E, 584},
1681     {95, 0x005F, 556},
1682     {96, 0x2018, 278},
1683     {97, 0x0061, 556},
1684     {98, 0x0062, 611},
1685     {99, 0x0063, 556},
1686     {100, 0x0064, 611},
1687     {101, 0x0065, 556},
1688     {102, 0x0066, 333},
1689     {103, 0x0067, 611},
1690     {104, 0x0068, 611},
1691     {105, 0x0069, 278},
1692     {106, 0x006A, 278},
1693     {107, 0x006B, 556},
1694     {108, 0x006C, 278},
1695     {109, 0x006D, 889},
1696     {110, 0x006E, 611},
1697     {111, 0x006F, 611},
1698     {112, 0x0070, 611},
1699     {113, 0x0071, 611},
1700     {114, 0x0072, 389},
1701     {115, 0x0073, 556},
1702     {116, 0x0074, 333},
1703     {117, 0x0075, 611},
1704     {118, 0x0076, 556},
1705     {119, 0x0077, 778},
1706     {120, 0x0078, 556},
1707     {121, 0x0079, 556},
1708     {122, 0x007A, 500},
1709     {123, 0x007B, 389},
1710     {124, 0x007C, 280},
1711     {125, 0x007D, 389},
1712     {126, 0x007E, 584},
1713     {161, 0x00A1, 333},
1714     {162, 0x00A2, 556},
1715     {163, 0x00A3, 556},
1716     {164, 0x2044, 167},
1717     {165, 0x00A5, 556},
1718     {166, 0x0192, 556},
1719     {167, 0x00A7, 556},
1720     {168, 0x00A4, 556},
1721     {169, 0x0027, 238},
1722     {170, 0x201C, 500},
1723     {171, 0x00AB, 556},
1724     {172, 0x2039, 333},
1725     {173, 0x203A, 333},
1726     {174, 0xFB01, 611},
1727     {175, 0xFB02, 611},
1728     {177, 0x2013, 556},
1729     {178, 0x2020, 556},
1730     {179, 0x2021, 556},
1731     {180, 0x00B7, 278},
1732     {182, 0x00B6, 556},
1733     {183, 0x2022, 350},
1734     {184, 0x201A, 278},
1735     {185, 0x201E, 500},
1736     {186, 0x201D, 500},
1737     {187, 0x00BB, 556},
1738     {188, 0x2026, 1000},
1739     {189, 0x2030, 1000},
1740     {191, 0x00BF, 611},
1741     {193, 0x0060, 333},
1742     {194, 0x00B4, 333},
1743     {195, 0x02C6, 333},
1744     {196, 0x02DC, 333},
1745     {197, 0x00AF, 333},
1746     {198, 0x02D8, 333},
1747     {199, 0x02D9, 333},
1748     {200, 0x00A8, 333},
1749     {202, 0x02DA, 333},
1750     {203, 0x00B8, 333},
1751     {205, 0x02DD, 333},
1752     {206, 0x02DB, 333},
1753     {207, 0x02C7, 333},
1754     {208, 0x2014, 1000},
1755     {225, 0x00C6, 1000},
1756     {227, 0x00AA, 370},
1757     {232, 0x0141, 611},
1758     {233, 0x00D8, 778},
1759     {234, 0x0152, 1000},
1760     {235, 0x00BA, 365},
1761     {241, 0x00E6, 889},
1762     {245, 0x0131, 278},
1763     {248, 0x0142, 278},
1764     {249, 0x00F8, 611},
1765     {250, 0x0153, 944},
1766     {251, 0x00DF, 611},
1767     {-1, 0x00CF, 278},
1768     {-1, 0x00E9, 556},
1769     {-1, 0x0103, 556},
1770     {-1, 0x0171, 611},
1771     {-1, 0x011B, 556},
1772     {-1, 0x0178, 667},
1773     {-1, 0x00F7, 584},
1774     {-1, 0x00DD, 667},
1775     {-1, 0x00C2, 722},
1776     {-1, 0x00E1, 556},
1777     {-1, 0x00DB, 722},
1778     {-1, 0x00FD, 556},
1779     {-1, 0x0219, 556},
1780     {-1, 0x00EA, 556},
1781     {-1, 0x016E, 722},
1782     {-1, 0x00DC, 722},
1783     {-1, 0x0105, 556},
1784     {-1, 0x00DA, 722},
1785     {-1, 0x0173, 611},
1786     {-1, 0x00CB, 667},
1787     {-1, 0x0110, 722},
1788     {-1, 0xF6C3, 250},
1789     {-1, 0x00A9, 737},
1790     {-1, 0x0112, 667},
1791     {-1, 0x010D, 556},
1792     {-1, 0x00E5, 556},
1793     {-1, 0x0145, 722},
1794     {-1, 0x013A, 278},
1795     {-1, 0x00E0, 556},
1796     {-1, 0x0162, 611},
1797     {-1, 0x0106, 722},
1798     {-1, 0x00E3, 556},
1799     {-1, 0x0116, 667},
1800     {-1, 0x0161, 556},
1801     {-1, 0x015F, 556},
1802     {-1, 0x00ED, 278},
1803     {-1, 0x25CA, 494},
1804     {-1, 0x0158, 722},
1805     {-1, 0x0122, 778},
1806     {-1, 0x00FB, 611},
1807     {-1, 0x00E2, 556},
1808     {-1, 0x0100, 722},
1809     {-1, 0x0159, 389},
1810     {-1, 0x00E7, 556},
1811     {-1, 0x017B, 611},
1812     {-1, 0x00DE, 667},
1813     {-1, 0x014C, 778},
1814     {-1, 0x0154, 722},
1815     {-1, 0x015A, 667},
1816     {-1, 0x010F, 743},
1817     {-1, 0x016A, 722},
1818     {-1, 0x016F, 611},
1819     {-1, 0x00B3, 333},
1820     {-1, 0x00D2, 778},
1821     {-1, 0x00C0, 722},
1822     {-1, 0x0102, 722},
1823     {-1, 0x00D7, 584},
1824     {-1, 0x00FA, 611},
1825     {-1, 0x0164, 611},
1826     {-1, 0x2202, 494},
1827     {-1, 0x00FF, 556},
1828     {-1, 0x0143, 722},
1829     {-1, 0x00EE, 278},
1830     {-1, 0x00CA, 667},
1831     {-1, 0x00E4, 556},
1832     {-1, 0x00EB, 556},
1833     {-1, 0x0107, 556},
1834     {-1, 0x0144, 611},
1835     {-1, 0x016B, 611},
1836     {-1, 0x0147, 722},
1837     {-1, 0x00CD, 278},
1838     {-1, 0x00B1, 584},
1839     {-1, 0x00A6, 280},
1840     {-1, 0x00AE, 737},
1841     {-1, 0x011E, 778},
1842     {-1, 0x0130, 278},
1843     {-1, 0x2211, 600},
1844     {-1, 0x00C8, 667},
1845     {-1, 0x0155, 389},
1846     {-1, 0x014D, 611},
1847     {-1, 0x0179, 611},
1848     {-1, 0x017D, 611},
1849     {-1, 0x2265, 549},
1850     {-1, 0x00D0, 722},
1851     {-1, 0x00C7, 722},
1852     {-1, 0x013C, 278},
1853     {-1, 0x0165, 389},
1854     {-1, 0x0119, 556},
1855     {-1, 0x0172, 722},
1856     {-1, 0x00C1, 722},
1857     {-1, 0x00C4, 722},
1858     {-1, 0x00E8, 556},
1859     {-1, 0x017A, 500},
1860     {-1, 0x012F, 278},
1861     {-1, 0x00D3, 778},
1862     {-1, 0x00F3, 611},
1863     {-1, 0x0101, 556},
1864     {-1, 0x015B, 556},
1865     {-1, 0x00EF, 278},
1866     {-1, 0x00D4, 778},
1867     {-1, 0x00D9, 722},
1868     {-1, 0x0394, 612},
1869     {-1, 0x00FE, 611},
1870     {-1, 0x00B2, 333},
1871     {-1, 0x00D6, 778},
1872     {-1, 0x00B5, 611},
1873     {-1, 0x00EC, 278},
1874     {-1, 0x0151, 611},
1875     {-1, 0x0118, 667},
1876     {-1, 0x0111, 611},
1877     {-1, 0x00BE, 834},
1878     {-1, 0x015E, 667},
1879     {-1, 0x013E, 400},
1880     {-1, 0x0136, 722},
1881     {-1, 0x0139, 611},
1882     {-1, 0x2122, 1000},
1883     {-1, 0x0117, 556},
1884     {-1, 0x00CC, 278},
1885     {-1, 0x012A, 278},
1886     {-1, 0x013D, 611},
1887     {-1, 0x00BD, 834},
1888     {-1, 0x2264, 549},
1889     {-1, 0x00F4, 611},
1890     {-1, 0x00F1, 611},
1891     {-1, 0x0170, 722},
1892     {-1, 0x00C9, 667},
1893     {-1, 0x0113, 556},
1894     {-1, 0x011F, 611},
1895     {-1, 0x00BC, 834},
1896     {-1, 0x0160, 667},
1897     {-1, 0x0218, 667},
1898     {-1, 0x0150, 778},
1899     {-1, 0x00B0, 400},
1900     {-1, 0x00F2, 611},
1901     {-1, 0x010C, 722},
1902     {-1, 0x00F9, 611},
1903     {-1, 0x221A, 549},
1904     {-1, 0x010E, 722},
1905     {-1, 0x0157, 389},
1906     {-1, 0x00D1, 722},
1907     {-1, 0x00F5, 611},
1908     {-1, 0x0156, 722},
1909     {-1, 0x013B, 611},
1910     {-1, 0x00C3, 722},
1911     {-1, 0x0104, 722},
1912     {-1, 0x00C5, 722},
1913     {-1, 0x00D5, 778},
1914     {-1, 0x017C, 500},
1915     {-1, 0x011A, 667},
1916     {-1, 0x012E, 278},
1917     {-1, 0x0137, 556},
1918     {-1, 0x2212, 584},
1919     {-1, 0x00CE, 278},
1920     {-1, 0x0148, 611},
1921     {-1, 0x0163, 333},
1922     {-1, 0x00AC, 584},
1923     {-1, 0x00F6, 611},
1924     {-1, 0x00FC, 611},
1925     {-1, 0x2260, 549},
1926     {-1, 0x0123, 611},
1927     {-1, 0x00F0, 611},
1928     {-1, 0x017E, 500},
1929     {-1, 0x0146, 611},
1930     {-1, 0x00B9, 333},
1931     {-1, 0x012B, 278},
1932     {-1, 0x20AC, 556},
1933     {-1, 0xFFFF, 0}
1934     };
1935 
1936 static const HPDF_CharData CHAR_DATA_HELVETICA_BOLD_OBLIQUE[316] = {
1937     {32, 0x0020, 278},
1938     {33, 0x0021, 333},
1939     {34, 0x0022, 474},
1940     {35, 0x0023, 556},
1941     {36, 0x0024, 556},
1942     {37, 0x0025, 889},
1943     {38, 0x0026, 722},
1944     {39, 0x2019, 278},
1945     {40, 0x0028, 333},
1946     {41, 0x0029, 333},
1947     {42, 0x002A, 389},
1948     {43, 0x002B, 584},
1949     {44, 0x002C, 278},
1950     {45, 0x002D, 333},
1951     {46, 0x002E, 278},
1952     {47, 0x002F, 278},
1953     {48, 0x0030, 556},
1954     {49, 0x0031, 556},
1955     {50, 0x0032, 556},
1956     {51, 0x0033, 556},
1957     {52, 0x0034, 556},
1958     {53, 0x0035, 556},
1959     {54, 0x0036, 556},
1960     {55, 0x0037, 556},
1961     {56, 0x0038, 556},
1962     {57, 0x0039, 556},
1963     {58, 0x003A, 333},
1964     {59, 0x003B, 333},
1965     {60, 0x003C, 584},
1966     {61, 0x003D, 584},
1967     {62, 0x003E, 584},
1968     {63, 0x003F, 611},
1969     {64, 0x0040, 975},
1970     {65, 0x0041, 722},
1971     {66, 0x0042, 722},
1972     {67, 0x0043, 722},
1973     {68, 0x0044, 722},
1974     {69, 0x0045, 667},
1975     {70, 0x0046, 611},
1976     {71, 0x0047, 778},
1977     {72, 0x0048, 722},
1978     {73, 0x0049, 278},
1979     {74, 0x004A, 556},
1980     {75, 0x004B, 722},
1981     {76, 0x004C, 611},
1982     {77, 0x004D, 833},
1983     {78, 0x004E, 722},
1984     {79, 0x004F, 778},
1985     {80, 0x0050, 667},
1986     {81, 0x0051, 778},
1987     {82, 0x0052, 722},
1988     {83, 0x0053, 667},
1989     {84, 0x0054, 611},
1990     {85, 0x0055, 722},
1991     {86, 0x0056, 667},
1992     {87, 0x0057, 944},
1993     {88, 0x0058, 667},
1994     {89, 0x0059, 667},
1995     {90, 0x005A, 611},
1996     {91, 0x005B, 333},
1997     {92, 0x005C, 278},
1998     {93, 0x005D, 333},
1999     {94, 0x005E, 584},
2000     {95, 0x005F, 556},
2001     {96, 0x2018, 278},
2002     {97, 0x0061, 556},
2003     {98, 0x0062, 611},
2004     {99, 0x0063, 556},
2005     {100, 0x0064, 611},
2006     {101, 0x0065, 556},
2007     {102, 0x0066, 333},
2008     {103, 0x0067, 611},
2009     {104, 0x0068, 611},
2010     {105, 0x0069, 278},
2011     {106, 0x006A, 278},
2012     {107, 0x006B, 556},
2013     {108, 0x006C, 278},
2014     {109, 0x006D, 889},
2015     {110, 0x006E, 611},
2016     {111, 0x006F, 611},
2017     {112, 0x0070, 611},
2018     {113, 0x0071, 611},
2019     {114, 0x0072, 389},
2020     {115, 0x0073, 556},
2021     {116, 0x0074, 333},
2022     {117, 0x0075, 611},
2023     {118, 0x0076, 556},
2024     {119, 0x0077, 778},
2025     {120, 0x0078, 556},
2026     {121, 0x0079, 556},
2027     {122, 0x007A, 500},
2028     {123, 0x007B, 389},
2029     {124, 0x007C, 280},
2030     {125, 0x007D, 389},
2031     {126, 0x007E, 584},
2032     {161, 0x00A1, 333},
2033     {162, 0x00A2, 556},
2034     {163, 0x00A3, 556},
2035     {164, 0x2044, 167},
2036     {165, 0x00A5, 556},
2037     {166, 0x0192, 556},
2038     {167, 0x00A7, 556},
2039     {168, 0x00A4, 556},
2040     {169, 0x0027, 238},
2041     {170, 0x201C, 500},
2042     {171, 0x00AB, 556},
2043     {172, 0x2039, 333},
2044     {173, 0x203A, 333},
2045     {174, 0xFB01, 611},
2046     {175, 0xFB02, 611},
2047     {177, 0x2013, 556},
2048     {178, 0x2020, 556},
2049     {179, 0x2021, 556},
2050     {180, 0x00B7, 278},
2051     {182, 0x00B6, 556},
2052     {183, 0x2022, 350},
2053     {184, 0x201A, 278},
2054     {185, 0x201E, 500},
2055     {186, 0x201D, 500},
2056     {187, 0x00BB, 556},
2057     {188, 0x2026, 1000},
2058     {189, 0x2030, 1000},
2059     {191, 0x00BF, 611},
2060     {193, 0x0060, 333},
2061     {194, 0x00B4, 333},
2062     {195, 0x02C6, 333},
2063     {196, 0x02DC, 333},
2064     {197, 0x00AF, 333},
2065     {198, 0x02D8, 333},
2066     {199, 0x02D9, 333},
2067     {200, 0x00A8, 333},
2068     {202, 0x02DA, 333},
2069     {203, 0x00B8, 333},
2070     {205, 0x02DD, 333},
2071     {206, 0x02DB, 333},
2072     {207, 0x02C7, 333},
2073     {208, 0x2014, 1000},
2074     {225, 0x00C6, 1000},
2075     {227, 0x00AA, 370},
2076     {232, 0x0141, 611},
2077     {233, 0x00D8, 778},
2078     {234, 0x0152, 1000},
2079     {235, 0x00BA, 365},
2080     {241, 0x00E6, 889},
2081     {245, 0x0131, 278},
2082     {248, 0x0142, 278},
2083     {249, 0x00F8, 611},
2084     {250, 0x0153, 944},
2085     {251, 0x00DF, 611},
2086     {-1, 0x00CF, 278},
2087     {-1, 0x00E9, 556},
2088     {-1, 0x0103, 556},
2089     {-1, 0x0171, 611},
2090     {-1, 0x011B, 556},
2091     {-1, 0x0178, 667},
2092     {-1, 0x00F7, 584},
2093     {-1, 0x00DD, 667},
2094     {-1, 0x00C2, 722},
2095     {-1, 0x00E1, 556},
2096     {-1, 0x00DB, 722},
2097     {-1, 0x00FD, 556},
2098     {-1, 0x0219, 556},
2099     {-1, 0x00EA, 556},
2100     {-1, 0x016E, 722},
2101     {-1, 0x00DC, 722},
2102     {-1, 0x0105, 556},
2103     {-1, 0x00DA, 722},
2104     {-1, 0x0173, 611},
2105     {-1, 0x00CB, 667},
2106     {-1, 0x0110, 722},
2107     {-1, 0xF6C3, 250},
2108     {-1, 0x00A9, 737},
2109     {-1, 0x0112, 667},
2110     {-1, 0x010D, 556},
2111     {-1, 0x00E5, 556},
2112     {-1, 0x0145, 722},
2113     {-1, 0x013A, 278},
2114     {-1, 0x00E0, 556},
2115     {-1, 0x0162, 611},
2116     {-1, 0x0106, 722},
2117     {-1, 0x00E3, 556},
2118     {-1, 0x0116, 667},
2119     {-1, 0x0161, 556},
2120     {-1, 0x015F, 556},
2121     {-1, 0x00ED, 278},
2122     {-1, 0x25CA, 494},
2123     {-1, 0x0158, 722},
2124     {-1, 0x0122, 778},
2125     {-1, 0x00FB, 611},
2126     {-1, 0x00E2, 556},
2127     {-1, 0x0100, 722},
2128     {-1, 0x0159, 389},
2129     {-1, 0x00E7, 556},
2130     {-1, 0x017B, 611},
2131     {-1, 0x00DE, 667},
2132     {-1, 0x014C, 778},
2133     {-1, 0x0154, 722},
2134     {-1, 0x015A, 667},
2135     {-1, 0x010F, 743},
2136     {-1, 0x016A, 722},
2137     {-1, 0x016F, 611},
2138     {-1, 0x00B3, 333},
2139     {-1, 0x00D2, 778},
2140     {-1, 0x00C0, 722},
2141     {-1, 0x0102, 722},
2142     {-1, 0x00D7, 584},
2143     {-1, 0x00FA, 611},
2144     {-1, 0x0164, 611},
2145     {-1, 0x2202, 494},
2146     {-1, 0x00FF, 556},
2147     {-1, 0x0143, 722},
2148     {-1, 0x00EE, 278},
2149     {-1, 0x00CA, 667},
2150     {-1, 0x00E4, 556},
2151     {-1, 0x00EB, 556},
2152     {-1, 0x0107, 556},
2153     {-1, 0x0144, 611},
2154     {-1, 0x016B, 611},
2155     {-1, 0x0147, 722},
2156     {-1, 0x00CD, 278},
2157     {-1, 0x00B1, 584},
2158     {-1, 0x00A6, 280},
2159     {-1, 0x00AE, 737},
2160     {-1, 0x011E, 778},
2161     {-1, 0x0130, 278},
2162     {-1, 0x2211, 600},
2163     {-1, 0x00C8, 667},
2164     {-1, 0x0155, 389},
2165     {-1, 0x014D, 611},
2166     {-1, 0x0179, 611},
2167     {-1, 0x017D, 611},
2168     {-1, 0x2265, 549},
2169     {-1, 0x00D0, 722},
2170     {-1, 0x00C7, 722},
2171     {-1, 0x013C, 278},
2172     {-1, 0x0165, 389},
2173     {-1, 0x0119, 556},
2174     {-1, 0x0172, 722},
2175     {-1, 0x00C1, 722},
2176     {-1, 0x00C4, 722},
2177     {-1, 0x00E8, 556},
2178     {-1, 0x017A, 500},
2179     {-1, 0x012F, 278},
2180     {-1, 0x00D3, 778},
2181     {-1, 0x00F3, 611},
2182     {-1, 0x0101, 556},
2183     {-1, 0x015B, 556},
2184     {-1, 0x00EF, 278},
2185     {-1, 0x00D4, 778},
2186     {-1, 0x00D9, 722},
2187     {-1, 0x0394, 612},
2188     {-1, 0x00FE, 611},
2189     {-1, 0x00B2, 333},
2190     {-1, 0x00D6, 778},
2191     {-1, 0x00B5, 611},
2192     {-1, 0x00EC, 278},
2193     {-1, 0x0151, 611},
2194     {-1, 0x0118, 667},
2195     {-1, 0x0111, 611},
2196     {-1, 0x00BE, 834},
2197     {-1, 0x015E, 667},
2198     {-1, 0x013E, 400},
2199     {-1, 0x0136, 722},
2200     {-1, 0x0139, 611},
2201     {-1, 0x2122, 1000},
2202     {-1, 0x0117, 556},
2203     {-1, 0x00CC, 278},
2204     {-1, 0x012A, 278},
2205     {-1, 0x013D, 611},
2206     {-1, 0x00BD, 834},
2207     {-1, 0x2264, 549},
2208     {-1, 0x00F4, 611},
2209     {-1, 0x00F1, 611},
2210     {-1, 0x0170, 722},
2211     {-1, 0x00C9, 667},
2212     {-1, 0x0113, 556},
2213     {-1, 0x011F, 611},
2214     {-1, 0x00BC, 834},
2215     {-1, 0x0160, 667},
2216     {-1, 0x0218, 667},
2217     {-1, 0x0150, 778},
2218     {-1, 0x00B0, 400},
2219     {-1, 0x00F2, 611},
2220     {-1, 0x010C, 722},
2221     {-1, 0x00F9, 611},
2222     {-1, 0x221A, 549},
2223     {-1, 0x010E, 722},
2224     {-1, 0x0157, 389},
2225     {-1, 0x00D1, 722},
2226     {-1, 0x00F5, 611},
2227     {-1, 0x0156, 722},
2228     {-1, 0x013B, 611},
2229     {-1, 0x00C3, 722},
2230     {-1, 0x0104, 722},
2231     {-1, 0x00C5, 722},
2232     {-1, 0x00D5, 778},
2233     {-1, 0x017C, 500},
2234     {-1, 0x011A, 667},
2235     {-1, 0x012E, 278},
2236     {-1, 0x0137, 556},
2237     {-1, 0x2212, 584},
2238     {-1, 0x00CE, 278},
2239     {-1, 0x0148, 611},
2240     {-1, 0x0163, 333},
2241     {-1, 0x00AC, 584},
2242     {-1, 0x00F6, 611},
2243     {-1, 0x00FC, 611},
2244     {-1, 0x2260, 549},
2245     {-1, 0x0123, 611},
2246     {-1, 0x00F0, 611},
2247     {-1, 0x017E, 500},
2248     {-1, 0x0146, 611},
2249     {-1, 0x00B9, 333},
2250     {-1, 0x012B, 278},
2251     {-1, 0x20AC, 556},
2252     {-1, 0xFFFF, 0}
2253     };
2254 
2255 static const HPDF_CharData CHAR_DATA_HELVETICA_OBLIQUE[316] = {
2256     {32, 0x0020, 278},
2257     {33, 0x0021, 278},
2258     {34, 0x0022, 355},
2259     {35, 0x0023, 556},
2260     {36, 0x0024, 556},
2261     {37, 0x0025, 889},
2262     {38, 0x0026, 667},
2263     {39, 0x2019, 222},
2264     {40, 0x0028, 333},
2265     {41, 0x0029, 333},
2266     {42, 0x002A, 389},
2267     {43, 0x002B, 584},
2268     {44, 0x002C, 278},
2269     {45, 0x002D, 333},
2270     {46, 0x002E, 278},
2271     {47, 0x002F, 278},
2272     {48, 0x0030, 556},
2273     {49, 0x0031, 556},
2274     {50, 0x0032, 556},
2275     {51, 0x0033, 556},
2276     {52, 0x0034, 556},
2277     {53, 0x0035, 556},
2278     {54, 0x0036, 556},
2279     {55, 0x0037, 556},
2280     {56, 0x0038, 556},
2281     {57, 0x0039, 556},
2282     {58, 0x003A, 278},
2283     {59, 0x003B, 278},
2284     {60, 0x003C, 584},
2285     {61, 0x003D, 584},
2286     {62, 0x003E, 584},
2287     {63, 0x003F, 556},
2288     {64, 0x0040, 1015},
2289     {65, 0x0041, 667},
2290     {66, 0x0042, 667},
2291     {67, 0x0043, 722},
2292     {68, 0x0044, 722},
2293     {69, 0x0045, 667},
2294     {70, 0x0046, 611},
2295     {71, 0x0047, 778},
2296     {72, 0x0048, 722},
2297     {73, 0x0049, 278},
2298     {74, 0x004A, 500},
2299     {75, 0x004B, 667},
2300     {76, 0x004C, 556},
2301     {77, 0x004D, 833},
2302     {78, 0x004E, 722},
2303     {79, 0x004F, 778},
2304     {80, 0x0050, 667},
2305     {81, 0x0051, 778},
2306     {82, 0x0052, 722},
2307     {83, 0x0053, 667},
2308     {84, 0x0054, 611},
2309     {85, 0x0055, 722},
2310     {86, 0x0056, 667},
2311     {87, 0x0057, 944},
2312     {88, 0x0058, 667},
2313     {89, 0x0059, 667},
2314     {90, 0x005A, 611},
2315     {91, 0x005B, 278},
2316     {92, 0x005C, 278},
2317     {93, 0x005D, 278},
2318     {94, 0x005E, 469},
2319     {95, 0x005F, 556},
2320     {96, 0x2018, 222},
2321     {97, 0x0061, 556},
2322     {98, 0x0062, 556},
2323     {99, 0x0063, 500},
2324     {100, 0x0064, 556},
2325     {101, 0x0065, 556},
2326     {102, 0x0066, 278},
2327     {103, 0x0067, 556},
2328     {104, 0x0068, 556},
2329     {105, 0x0069, 222},
2330     {106, 0x006A, 222},
2331     {107, 0x006B, 500},
2332     {108, 0x006C, 222},
2333     {109, 0x006D, 833},
2334     {110, 0x006E, 556},
2335     {111, 0x006F, 556},
2336     {112, 0x0070, 556},
2337     {113, 0x0071, 556},
2338     {114, 0x0072, 333},
2339     {115, 0x0073, 500},
2340     {116, 0x0074, 278},
2341     {117, 0x0075, 556},
2342     {118, 0x0076, 500},
2343     {119, 0x0077, 722},
2344     {120, 0x0078, 500},
2345     {121, 0x0079, 500},
2346     {122, 0x007A, 500},
2347     {123, 0x007B, 334},
2348     {124, 0x007C, 260},
2349     {125, 0x007D, 334},
2350     {126, 0x007E, 584},
2351     {161, 0x00A1, 333},
2352     {162, 0x00A2, 556},
2353     {163, 0x00A3, 556},
2354     {164, 0x2044, 167},
2355     {165, 0x00A5, 556},
2356     {166, 0x0192, 556},
2357     {167, 0x00A7, 556},
2358     {168, 0x00A4, 556},
2359     {169, 0x0027, 191},
2360     {170, 0x201C, 333},
2361     {171, 0x00AB, 556},
2362     {172, 0x2039, 333},
2363     {173, 0x203A, 333},
2364     {174, 0xFB01, 500},
2365     {175, 0xFB02, 500},
2366     {177, 0x2013, 556},
2367     {178, 0x2020, 556},
2368     {179, 0x2021, 556},
2369     {180, 0x00B7, 278},
2370     {182, 0x00B6, 537},
2371     {183, 0x2022, 350},
2372     {184, 0x201A, 222},
2373     {185, 0x201E, 333},
2374     {186, 0x201D, 333},
2375     {187, 0x00BB, 556},
2376     {188, 0x2026, 1000},
2377     {189, 0x2030, 1000},
2378     {191, 0x00BF, 611},
2379     {193, 0x0060, 333},
2380     {194, 0x00B4, 333},
2381     {195, 0x02C6, 333},
2382     {196, 0x02DC, 333},
2383     {197, 0x00AF, 333},
2384     {198, 0x02D8, 333},
2385     {199, 0x02D9, 333},
2386     {200, 0x00A8, 333},
2387     {202, 0x02DA, 333},
2388     {203, 0x00B8, 333},
2389     {205, 0x02DD, 333},
2390     {206, 0x02DB, 333},
2391     {207, 0x02C7, 333},
2392     {208, 0x2014, 1000},
2393     {225, 0x00C6, 1000},
2394     {227, 0x00AA, 370},
2395     {232, 0x0141, 556},
2396     {233, 0x00D8, 778},
2397     {234, 0x0152, 1000},
2398     {235, 0x00BA, 365},
2399     {241, 0x00E6, 889},
2400     {245, 0x0131, 278},
2401     {248, 0x0142, 222},
2402     {249, 0x00F8, 611},
2403     {250, 0x0153, 944},
2404     {251, 0x00DF, 611},
2405     {-1, 0x00CF, 278},
2406     {-1, 0x00E9, 556},
2407     {-1, 0x0103, 556},
2408     {-1, 0x0171, 556},
2409     {-1, 0x011B, 556},
2410     {-1, 0x0178, 667},
2411     {-1, 0x00F7, 584},
2412     {-1, 0x00DD, 667},
2413     {-1, 0x00C2, 667},
2414     {-1, 0x00E1, 556},
2415     {-1, 0x00DB, 722},
2416     {-1, 0x00FD, 500},
2417     {-1, 0x0219, 500},
2418     {-1, 0x00EA, 556},
2419     {-1, 0x016E, 722},
2420     {-1, 0x00DC, 722},
2421     {-1, 0x0105, 556},
2422     {-1, 0x00DA, 722},
2423     {-1, 0x0173, 556},
2424     {-1, 0x00CB, 667},
2425     {-1, 0x0110, 722},
2426     {-1, 0xF6C3, 250},
2427     {-1, 0x00A9, 737},
2428     {-1, 0x0112, 667},
2429     {-1, 0x010D, 500},
2430     {-1, 0x00E5, 556},
2431     {-1, 0x0145, 722},
2432     {-1, 0x013A, 222},
2433     {-1, 0x00E0, 556},
2434     {-1, 0x0162, 611},
2435     {-1, 0x0106, 722},
2436     {-1, 0x00E3, 556},
2437     {-1, 0x0116, 667},
2438     {-1, 0x0161, 500},
2439     {-1, 0x015F, 500},
2440     {-1, 0x00ED, 278},
2441     {-1, 0x25CA, 471},
2442     {-1, 0x0158, 722},
2443     {-1, 0x0122, 778},
2444     {-1, 0x00FB, 556},
2445     {-1, 0x00E2, 556},
2446     {-1, 0x0100, 667},
2447     {-1, 0x0159, 333},
2448     {-1, 0x00E7, 500},
2449     {-1, 0x017B, 611},
2450     {-1, 0x00DE, 667},
2451     {-1, 0x014C, 778},
2452     {-1, 0x0154, 722},
2453     {-1, 0x015A, 667},
2454     {-1, 0x010F, 643},
2455     {-1, 0x016A, 722},
2456     {-1, 0x016F, 556},
2457     {-1, 0x00B3, 333},
2458     {-1, 0x00D2, 778},
2459     {-1, 0x00C0, 667},
2460     {-1, 0x0102, 667},
2461     {-1, 0x00D7, 584},
2462     {-1, 0x00FA, 556},
2463     {-1, 0x0164, 611},
2464     {-1, 0x2202, 476},
2465     {-1, 0x00FF, 500},
2466     {-1, 0x0143, 722},
2467     {-1, 0x00EE, 278},
2468     {-1, 0x00CA, 667},
2469     {-1, 0x00E4, 556},
2470     {-1, 0x00EB, 556},
2471     {-1, 0x0107, 500},
2472     {-1, 0x0144, 556},
2473     {-1, 0x016B, 556},
2474     {-1, 0x0147, 722},
2475     {-1, 0x00CD, 278},
2476     {-1, 0x00B1, 584},
2477     {-1, 0x00A6, 260},
2478     {-1, 0x00AE, 737},
2479     {-1, 0x011E, 778},
2480     {-1, 0x0130, 278},
2481     {-1, 0x2211, 600},
2482     {-1, 0x00C8, 667},
2483     {-1, 0x0155, 333},
2484     {-1, 0x014D, 556},
2485     {-1, 0x0179, 611},
2486     {-1, 0x017D, 611},
2487     {-1, 0x2265, 549},
2488     {-1, 0x00D0, 722},
2489     {-1, 0x00C7, 722},
2490     {-1, 0x013C, 222},
2491     {-1, 0x0165, 316},
2492     {-1, 0x0119, 556},
2493     {-1, 0x0172, 722},
2494     {-1, 0x00C1, 667},
2495     {-1, 0x00C4, 667},
2496     {-1, 0x00E8, 556},
2497     {-1, 0x017A, 500},
2498     {-1, 0x012F, 222},
2499     {-1, 0x00D3, 778},
2500     {-1, 0x00F3, 556},
2501     {-1, 0x0101, 556},
2502     {-1, 0x015B, 500},
2503     {-1, 0x00EF, 278},
2504     {-1, 0x00D4, 778},
2505     {-1, 0x00D9, 722},
2506     {-1, 0x0394, 612},
2507     {-1, 0x00FE, 556},
2508     {-1, 0x00B2, 333},
2509     {-1, 0x00D6, 778},
2510     {-1, 0x00B5, 556},
2511     {-1, 0x00EC, 278},
2512     {-1, 0x0151, 556},
2513     {-1, 0x0118, 667},
2514     {-1, 0x0111, 556},
2515     {-1, 0x00BE, 834},
2516     {-1, 0x015E, 667},
2517     {-1, 0x013E, 299},
2518     {-1, 0x0136, 667},
2519     {-1, 0x0139, 556},
2520     {-1, 0x2122, 1000},
2521     {-1, 0x0117, 556},
2522     {-1, 0x00CC, 278},
2523     {-1, 0x012A, 278},
2524     {-1, 0x013D, 556},
2525     {-1, 0x00BD, 834},
2526     {-1, 0x2264, 549},
2527     {-1, 0x00F4, 556},
2528     {-1, 0x00F1, 556},
2529     {-1, 0x0170, 722},
2530     {-1, 0x00C9, 667},
2531     {-1, 0x0113, 556},
2532     {-1, 0x011F, 556},
2533     {-1, 0x00BC, 834},
2534     {-1, 0x0160, 667},
2535     {-1, 0x0218, 667},
2536     {-1, 0x0150, 778},
2537     {-1, 0x00B0, 400},
2538     {-1, 0x00F2, 556},
2539     {-1, 0x010C, 722},
2540     {-1, 0x00F9, 556},
2541     {-1, 0x221A, 453},
2542     {-1, 0x010E, 722},
2543     {-1, 0x0157, 333},
2544     {-1, 0x00D1, 722},
2545     {-1, 0x00F5, 556},
2546     {-1, 0x0156, 722},
2547     {-1, 0x013B, 556},
2548     {-1, 0x00C3, 667},
2549     {-1, 0x0104, 667},
2550     {-1, 0x00C5, 667},
2551     {-1, 0x00D5, 778},
2552     {-1, 0x017C, 500},
2553     {-1, 0x011A, 667},
2554     {-1, 0x012E, 278},
2555     {-1, 0x0137, 500},
2556     {-1, 0x2212, 584},
2557     {-1, 0x00CE, 278},
2558     {-1, 0x0148, 556},
2559     {-1, 0x0163, 278},
2560     {-1, 0x00AC, 584},
2561     {-1, 0x00F6, 556},
2562     {-1, 0x00FC, 556},
2563     {-1, 0x2260, 549},
2564     {-1, 0x0123, 556},
2565     {-1, 0x00F0, 556},
2566     {-1, 0x017E, 500},
2567     {-1, 0x0146, 556},
2568     {-1, 0x00B9, 333},
2569     {-1, 0x012B, 278},
2570     {-1, 0x20AC, 556},
2571     {-1, 0xFFFF, 0}
2572     };
2573 
2574 static const HPDF_CharData CHAR_DATA_TIMES_ROMAN[316] = {
2575     {32, 0x0020, 250},
2576     {33, 0x0021, 333},
2577     {34, 0x0022, 408},
2578     {35, 0x0023, 500},
2579     {36, 0x0024, 500},
2580     {37, 0x0025, 833},
2581     {38, 0x0026, 778},
2582     {39, 0x2019, 333},
2583     {40, 0x0028, 333},
2584     {41, 0x0029, 333},
2585     {42, 0x002A, 500},
2586     {43, 0x002B, 564},
2587     {44, 0x002C, 250},
2588     {45, 0x002D, 333},
2589     {46, 0x002E, 250},
2590     {47, 0x002F, 278},
2591     {48, 0x0030, 500},
2592     {49, 0x0031, 500},
2593     {50, 0x0032, 500},
2594     {51, 0x0033, 500},
2595     {52, 0x0034, 500},
2596     {53, 0x0035, 500},
2597     {54, 0x0036, 500},
2598     {55, 0x0037, 500},
2599     {56, 0x0038, 500},
2600     {57, 0x0039, 500},
2601     {58, 0x003A, 278},
2602     {59, 0x003B, 278},
2603     {60, 0x003C, 564},
2604     {61, 0x003D, 564},
2605     {62, 0x003E, 564},
2606     {63, 0x003F, 444},
2607     {64, 0x0040, 921},
2608     {65, 0x0041, 722},
2609     {66, 0x0042, 667},
2610     {67, 0x0043, 667},
2611     {68, 0x0044, 722},
2612     {69, 0x0045, 611},
2613     {70, 0x0046, 556},
2614     {71, 0x0047, 722},
2615     {72, 0x0048, 722},
2616     {73, 0x0049, 333},
2617     {74, 0x004A, 389},
2618     {75, 0x004B, 722},
2619     {76, 0x004C, 611},
2620     {77, 0x004D, 889},
2621     {78, 0x004E, 722},
2622     {79, 0x004F, 722},
2623     {80, 0x0050, 556},
2624     {81, 0x0051, 722},
2625     {82, 0x0052, 667},
2626     {83, 0x0053, 556},
2627     {84, 0x0054, 611},
2628     {85, 0x0055, 722},
2629     {86, 0x0056, 722},
2630     {87, 0x0057, 944},
2631     {88, 0x0058, 722},
2632     {89, 0x0059, 722},
2633     {90, 0x005A, 611},
2634     {91, 0x005B, 333},
2635     {92, 0x005C, 278},
2636     {93, 0x005D, 333},
2637     {94, 0x005E, 469},
2638     {95, 0x005F, 500},
2639     {96, 0x2018, 333},
2640     {97, 0x0061, 444},
2641     {98, 0x0062, 500},
2642     {99, 0x0063, 444},
2643     {100, 0x0064, 500},
2644     {101, 0x0065, 444},
2645     {102, 0x0066, 333},
2646     {103, 0x0067, 500},
2647     {104, 0x0068, 500},
2648     {105, 0x0069, 278},
2649     {106, 0x006A, 278},
2650     {107, 0x006B, 500},
2651     {108, 0x006C, 278},
2652     {109, 0x006D, 778},
2653     {110, 0x006E, 500},
2654     {111, 0x006F, 500},
2655     {112, 0x0070, 500},
2656     {113, 0x0071, 500},
2657     {114, 0x0072, 333},
2658     {115, 0x0073, 389},
2659     {116, 0x0074, 278},
2660     {117, 0x0075, 500},
2661     {118, 0x0076, 500},
2662     {119, 0x0077, 722},
2663     {120, 0x0078, 500},
2664     {121, 0x0079, 500},
2665     {122, 0x007A, 444},
2666     {123, 0x007B, 480},
2667     {124, 0x007C, 200},
2668     {125, 0x007D, 480},
2669     {126, 0x007E, 541},
2670     {161, 0x00A1, 333},
2671     {162, 0x00A2, 500},
2672     {163, 0x00A3, 500},
2673     {164, 0x2044, 167},
2674     {165, 0x00A5, 500},
2675     {166, 0x0192, 500},
2676     {167, 0x00A7, 500},
2677     {168, 0x00A4, 500},
2678     {169, 0x0027, 180},
2679     {170, 0x201C, 444},
2680     {171, 0x00AB, 500},
2681     {172, 0x2039, 333},
2682     {173, 0x203A, 333},
2683     {174, 0xFB01, 556},
2684     {175, 0xFB02, 556},
2685     {177, 0x2013, 500},
2686     {178, 0x2020, 500},
2687     {179, 0x2021, 500},
2688     {180, 0x00B7, 250},
2689     {182, 0x00B6, 453},
2690     {183, 0x2022, 350},
2691     {184, 0x201A, 333},
2692     {185, 0x201E, 444},
2693     {186, 0x201D, 444},
2694     {187, 0x00BB, 500},
2695     {188, 0x2026, 1000},
2696     {189, 0x2030, 1000},
2697     {191, 0x00BF, 444},
2698     {193, 0x0060, 333},
2699     {194, 0x00B4, 333},
2700     {195, 0x02C6, 333},
2701     {196, 0x02DC, 333},
2702     {197, 0x00AF, 333},
2703     {198, 0x02D8, 333},
2704     {199, 0x02D9, 333},
2705     {200, 0x00A8, 333},
2706     {202, 0x02DA, 333},
2707     {203, 0x00B8, 333},
2708     {205, 0x02DD, 333},
2709     {206, 0x02DB, 333},
2710     {207, 0x02C7, 333},
2711     {208, 0x2014, 1000},
2712     {225, 0x00C6, 889},
2713     {227, 0x00AA, 276},
2714     {232, 0x0141, 611},
2715     {233, 0x00D8, 722},
2716     {234, 0x0152, 889},
2717     {235, 0x00BA, 310},
2718     {241, 0x00E6, 667},
2719     {245, 0x0131, 278},
2720     {248, 0x0142, 278},
2721     {249, 0x00F8, 500},
2722     {250, 0x0153, 722},
2723     {251, 0x00DF, 500},
2724     {-1, 0x00CF, 333},
2725     {-1, 0x00E9, 444},
2726     {-1, 0x0103, 444},
2727     {-1, 0x0171, 500},
2728     {-1, 0x011B, 444},
2729     {-1, 0x0178, 722},
2730     {-1, 0x00F7, 564},
2731     {-1, 0x00DD, 722},
2732     {-1, 0x00C2, 722},
2733     {-1, 0x00E1, 444},
2734     {-1, 0x00DB, 722},
2735     {-1, 0x00FD, 500},
2736     {-1, 0x0219, 389},
2737     {-1, 0x00EA, 444},
2738     {-1, 0x016E, 722},
2739     {-1, 0x00DC, 722},
2740     {-1, 0x0105, 444},
2741     {-1, 0x00DA, 722},
2742     {-1, 0x0173, 500},
2743     {-1, 0x00CB, 611},
2744     {-1, 0x0110, 722},
2745     {-1, 0xF6C3, 250},
2746     {-1, 0x00A9, 760},
2747     {-1, 0x0112, 611},
2748     {-1, 0x010D, 444},
2749     {-1, 0x00E5, 444},
2750     {-1, 0x0145, 722},
2751     {-1, 0x013A, 278},
2752     {-1, 0x00E0, 444},
2753     {-1, 0x0162, 611},
2754     {-1, 0x0106, 667},
2755     {-1, 0x00E3, 444},
2756     {-1, 0x0116, 611},
2757     {-1, 0x0161, 389},
2758     {-1, 0x015F, 389},
2759     {-1, 0x00ED, 278},
2760     {-1, 0x25CA, 471},
2761     {-1, 0x0158, 667},
2762     {-1, 0x0122, 722},
2763     {-1, 0x00FB, 500},
2764     {-1, 0x00E2, 444},
2765     {-1, 0x0100, 722},
2766     {-1, 0x0159, 333},
2767     {-1, 0x00E7, 444},
2768     {-1, 0x017B, 611},
2769     {-1, 0x00DE, 556},
2770     {-1, 0x014C, 722},
2771     {-1, 0x0154, 667},
2772     {-1, 0x015A, 556},
2773     {-1, 0x010F, 588},
2774     {-1, 0x016A, 722},
2775     {-1, 0x016F, 500},
2776     {-1, 0x00B3, 300},
2777     {-1, 0x00D2, 722},
2778     {-1, 0x00C0, 722},
2779     {-1, 0x0102, 722},
2780     {-1, 0x00D7, 564},
2781     {-1, 0x00FA, 500},
2782     {-1, 0x0164, 611},
2783     {-1, 0x2202, 476},
2784     {-1, 0x00FF, 500},
2785     {-1, 0x0143, 722},
2786     {-1, 0x00EE, 278},
2787     {-1, 0x00CA, 611},
2788     {-1, 0x00E4, 444},
2789     {-1, 0x00EB, 444},
2790     {-1, 0x0107, 444},
2791     {-1, 0x0144, 500},
2792     {-1, 0x016B, 500},
2793     {-1, 0x0147, 722},
2794     {-1, 0x00CD, 333},
2795     {-1, 0x00B1, 564},
2796     {-1, 0x00A6, 200},
2797     {-1, 0x00AE, 760},
2798     {-1, 0x011E, 722},
2799     {-1, 0x0130, 333},
2800     {-1, 0x2211, 600},
2801     {-1, 0x00C8, 611},
2802     {-1, 0x0155, 333},
2803     {-1, 0x014D, 500},
2804     {-1, 0x0179, 611},
2805     {-1, 0x017D, 611},
2806     {-1, 0x2265, 549},
2807     {-1, 0x00D0, 722},
2808     {-1, 0x00C7, 667},
2809     {-1, 0x013C, 278},
2810     {-1, 0x0165, 326},
2811     {-1, 0x0119, 444},
2812     {-1, 0x0172, 722},
2813     {-1, 0x00C1, 722},
2814     {-1, 0x00C4, 722},
2815     {-1, 0x00E8, 444},
2816     {-1, 0x017A, 444},
2817     {-1, 0x012F, 278},
2818     {-1, 0x00D3, 722},
2819     {-1, 0x00F3, 500},
2820     {-1, 0x0101, 444},
2821     {-1, 0x015B, 389},
2822     {-1, 0x00EF, 278},
2823     {-1, 0x00D4, 722},
2824     {-1, 0x00D9, 722},
2825     {-1, 0x0394, 612},
2826     {-1, 0x00FE, 500},
2827     {-1, 0x00B2, 300},
2828     {-1, 0x00D6, 722},
2829     {-1, 0x00B5, 500},
2830     {-1, 0x00EC, 278},
2831     {-1, 0x0151, 500},
2832     {-1, 0x0118, 611},
2833     {-1, 0x0111, 500},
2834     {-1, 0x00BE, 750},
2835     {-1, 0x015E, 556},
2836     {-1, 0x013E, 344},
2837     {-1, 0x0136, 722},
2838     {-1, 0x0139, 611},
2839     {-1, 0x2122, 980},
2840     {-1, 0x0117, 444},
2841     {-1, 0x00CC, 333},
2842     {-1, 0x012A, 333},
2843     {-1, 0x013D, 611},
2844     {-1, 0x00BD, 750},
2845     {-1, 0x2264, 549},
2846     {-1, 0x00F4, 500},
2847     {-1, 0x00F1, 500},
2848     {-1, 0x0170, 722},
2849     {-1, 0x00C9, 611},
2850     {-1, 0x0113, 444},
2851     {-1, 0x011F, 500},
2852     {-1, 0x00BC, 750},
2853     {-1, 0x0160, 556},
2854     {-1, 0x0218, 556},
2855     {-1, 0x0150, 722},
2856     {-1, 0x00B0, 400},
2857     {-1, 0x00F2, 500},
2858     {-1, 0x010C, 667},
2859     {-1, 0x00F9, 500},
2860     {-1, 0x221A, 453},
2861     {-1, 0x010E, 722},
2862     {-1, 0x0157, 333},
2863     {-1, 0x00D1, 722},
2864     {-1, 0x00F5, 500},
2865     {-1, 0x0156, 667},
2866     {-1, 0x013B, 611},
2867     {-1, 0x00C3, 722},
2868     {-1, 0x0104, 722},
2869     {-1, 0x00C5, 722},
2870     {-1, 0x00D5, 722},
2871     {-1, 0x017C, 444},
2872     {-1, 0x011A, 611},
2873     {-1, 0x012E, 333},
2874     {-1, 0x0137, 500},
2875     {-1, 0x2212, 564},
2876     {-1, 0x00CE, 333},
2877     {-1, 0x0148, 500},
2878     {-1, 0x0163, 278},
2879     {-1, 0x00AC, 564},
2880     {-1, 0x00F6, 500},
2881     {-1, 0x00FC, 500},
2882     {-1, 0x2260, 549},
2883     {-1, 0x0123, 500},
2884     {-1, 0x00F0, 500},
2885     {-1, 0x017E, 444},
2886     {-1, 0x0146, 500},
2887     {-1, 0x00B9, 300},
2888     {-1, 0x012B, 278},
2889     {-1, 0x20AC, 500},
2890     {-1, 0xFFFF, 0}
2891     };
2892 
2893 static const HPDF_CharData CHAR_DATA_TIMES_BOLD[316] = {
2894     {32, 0x0020, 250},
2895     {33, 0x0021, 333},
2896     {34, 0x0022, 555},
2897     {35, 0x0023, 500},
2898     {36, 0x0024, 500},
2899     {37, 0x0025, 1000},
2900     {38, 0x0026, 833},
2901     {39, 0x2019, 333},
2902     {40, 0x0028, 333},
2903     {41, 0x0029, 333},
2904     {42, 0x002A, 500},
2905     {43, 0x002B, 570},
2906     {44, 0x002C, 250},
2907     {45, 0x002D, 333},
2908     {46, 0x002E, 250},
2909     {47, 0x002F, 278},
2910     {48, 0x0030, 500},
2911     {49, 0x0031, 500},
2912     {50, 0x0032, 500},
2913     {51, 0x0033, 500},
2914     {52, 0x0034, 500},
2915     {53, 0x0035, 500},
2916     {54, 0x0036, 500},
2917     {55, 0x0037, 500},
2918     {56, 0x0038, 500},
2919     {57, 0x0039, 500},
2920     {58, 0x003A, 333},
2921     {59, 0x003B, 333},
2922     {60, 0x003C, 570},
2923     {61, 0x003D, 570},
2924     {62, 0x003E, 570},
2925     {63, 0x003F, 500},
2926     {64, 0x0040, 930},
2927     {65, 0x0041, 722},
2928     {66, 0x0042, 667},
2929     {67, 0x0043, 722},
2930     {68, 0x0044, 722},
2931     {69, 0x0045, 667},
2932     {70, 0x0046, 611},
2933     {71, 0x0047, 778},
2934     {72, 0x0048, 778},
2935     {73, 0x0049, 389},
2936     {74, 0x004A, 500},
2937     {75, 0x004B, 778},
2938     {76, 0x004C, 667},
2939     {77, 0x004D, 944},
2940     {78, 0x004E, 722},
2941     {79, 0x004F, 778},
2942     {80, 0x0050, 611},
2943     {81, 0x0051, 778},
2944     {82, 0x0052, 722},
2945     {83, 0x0053, 556},
2946     {84, 0x0054, 667},
2947     {85, 0x0055, 722},
2948     {86, 0x0056, 722},
2949     {87, 0x0057, 1000},
2950     {88, 0x0058, 722},
2951     {89, 0x0059, 722},
2952     {90, 0x005A, 667},
2953     {91, 0x005B, 333},
2954     {92, 0x005C, 278},
2955     {93, 0x005D, 333},
2956     {94, 0x005E, 581},
2957     {95, 0x005F, 500},
2958     {96, 0x2018, 333},
2959     {97, 0x0061, 500},
2960     {98, 0x0062, 556},
2961     {99, 0x0063, 444},
2962     {100, 0x0064, 556},
2963     {101, 0x0065, 444},
2964     {102, 0x0066, 333},
2965     {103, 0x0067, 500},
2966     {104, 0x0068, 556},
2967     {105, 0x0069, 278},
2968     {106, 0x006A, 333},
2969     {107, 0x006B, 556},
2970     {108, 0x006C, 278},
2971     {109, 0x006D, 833},
2972     {110, 0x006E, 556},
2973     {111, 0x006F, 500},
2974     {112, 0x0070, 556},
2975     {113, 0x0071, 556},
2976     {114, 0x0072, 444},
2977     {115, 0x0073, 389},
2978     {116, 0x0074, 333},
2979     {117, 0x0075, 556},
2980     {118, 0x0076, 500},
2981     {119, 0x0077, 722},
2982     {120, 0x0078, 500},
2983     {121, 0x0079, 500},
2984     {122, 0x007A, 444},
2985     {123, 0x007B, 394},
2986     {124, 0x007C, 220},
2987     {125, 0x007D, 394},
2988     {126, 0x007E, 520},
2989     {161, 0x00A1, 333},
2990     {162, 0x00A2, 500},
2991     {163, 0x00A3, 500},
2992     {164, 0x2044, 167},
2993     {165, 0x00A5, 500},
2994     {166, 0x0192, 500},
2995     {167, 0x00A7, 500},
2996     {168, 0x00A4, 500},
2997     {169, 0x0027, 278},
2998     {170, 0x201C, 500},
2999     {171, 0x00AB, 500},
3000     {172, 0x2039, 333},
3001     {173, 0x203A, 333},
3002     {174, 0xFB01, 556},
3003     {175, 0xFB02, 556},
3004     {177, 0x2013, 500},
3005     {178, 0x2020, 500},
3006     {179, 0x2021, 500},
3007     {180, 0x00B7, 250},
3008     {182, 0x00B6, 540},
3009     {183, 0x2022, 350},
3010     {184, 0x201A, 333},
3011     {185, 0x201E, 500},
3012     {186, 0x201D, 500},
3013     {187, 0x00BB, 500},
3014     {188, 0x2026, 1000},
3015     {189, 0x2030, 1000},
3016     {191, 0x00BF, 500},
3017     {193, 0x0060, 333},
3018     {194, 0x00B4, 333},
3019     {195, 0x02C6, 333},
3020     {196, 0x02DC, 333},
3021     {197, 0x00AF, 333},
3022     {198, 0x02D8, 333},
3023     {199, 0x02D9, 333},
3024     {200, 0x00A8, 333},
3025     {202, 0x02DA, 333},
3026     {203, 0x00B8, 333},
3027     {205, 0x02DD, 333},
3028     {206, 0x02DB, 333},
3029     {207, 0x02C7, 333},
3030     {208, 0x2014, 1000},
3031     {225, 0x00C6, 1000},
3032     {227, 0x00AA, 300},
3033     {232, 0x0141, 667},
3034     {233, 0x00D8, 778},
3035     {234, 0x0152, 1000},
3036     {235, 0x00BA, 330},
3037     {241, 0x00E6, 722},
3038     {245, 0x0131, 278},
3039     {248, 0x0142, 278},
3040     {249, 0x00F8, 500},
3041     {250, 0x0153, 722},
3042     {251, 0x00DF, 556},
3043     {-1, 0x00CF, 389},
3044     {-1, 0x00E9, 444},
3045     {-1, 0x0103, 500},
3046     {-1, 0x0171, 556},
3047     {-1, 0x011B, 444},
3048     {-1, 0x0178, 722},
3049     {-1, 0x00F7, 570},
3050     {-1, 0x00DD, 722},
3051     {-1, 0x00C2, 722},
3052     {-1, 0x00E1, 500},
3053     {-1, 0x00DB, 722},
3054     {-1, 0x00FD, 500},
3055     {-1, 0x0219, 389},
3056     {-1, 0x00EA, 444},
3057     {-1, 0x016E, 722},
3058     {-1, 0x00DC, 722},
3059     {-1, 0x0105, 500},
3060     {-1, 0x00DA, 722},
3061     {-1, 0x0173, 556},
3062     {-1, 0x00CB, 667},
3063     {-1, 0x0110, 722},
3064     {-1, 0xF6C3, 250},
3065     {-1, 0x00A9, 747},
3066     {-1, 0x0112, 667},
3067     {-1, 0x010D, 444},
3068     {-1, 0x00E5, 500},
3069     {-1, 0x0145, 722},
3070     {-1, 0x013A, 278},
3071     {-1, 0x00E0, 500},
3072     {-1, 0x0162, 667},
3073     {-1, 0x0106, 722},
3074     {-1, 0x00E3, 500},
3075     {-1, 0x0116, 667},
3076     {-1, 0x0161, 389},
3077     {-1, 0x015F, 389},
3078     {-1, 0x00ED, 278},
3079     {-1, 0x25CA, 494},
3080     {-1, 0x0158, 722},
3081     {-1, 0x0122, 778},
3082     {-1, 0x00FB, 556},
3083     {-1, 0x00E2, 500},
3084     {-1, 0x0100, 722},
3085     {-1, 0x0159, 444},
3086     {-1, 0x00E7, 444},
3087     {-1, 0x017B, 667},
3088     {-1, 0x00DE, 611},
3089     {-1, 0x014C, 778},
3090     {-1, 0x0154, 722},
3091     {-1, 0x015A, 556},
3092     {-1, 0x010F, 672},
3093     {-1, 0x016A, 722},
3094     {-1, 0x016F, 556},
3095     {-1, 0x00B3, 300},
3096     {-1, 0x00D2, 778},
3097     {-1, 0x00C0, 722},
3098     {-1, 0x0102, 722},
3099     {-1, 0x00D7, 570},
3100     {-1, 0x00FA, 556},
3101     {-1, 0x0164, 667},
3102     {-1, 0x2202, 494},
3103     {-1, 0x00FF, 500},
3104     {-1, 0x0143, 722},
3105     {-1, 0x00EE, 278},
3106     {-1, 0x00CA, 667},
3107     {-1, 0x00E4, 500},
3108     {-1, 0x00EB, 444},
3109     {-1, 0x0107, 444},
3110     {-1, 0x0144, 556},
3111     {-1, 0x016B, 556},
3112     {-1, 0x0147, 722},
3113     {-1, 0x00CD, 389},
3114     {-1, 0x00B1, 570},
3115     {-1, 0x00A6, 220},
3116     {-1, 0x00AE, 747},
3117     {-1, 0x011E, 778},
3118     {-1, 0x0130, 389},
3119     {-1, 0x2211, 600},
3120     {-1, 0x00C8, 667},
3121     {-1, 0x0155, 444},
3122     {-1, 0x014D, 500},
3123     {-1, 0x0179, 667},
3124     {-1, 0x017D, 667},
3125     {-1, 0x2265, 549},
3126     {-1, 0x00D0, 722},
3127     {-1, 0x00C7, 722},
3128     {-1, 0x013C, 278},
3129     {-1, 0x0165, 416},
3130     {-1, 0x0119, 444},
3131     {-1, 0x0172, 722},
3132     {-1, 0x00C1, 722},
3133     {-1, 0x00C4, 722},
3134     {-1, 0x00E8, 444},
3135     {-1, 0x017A, 444},
3136     {-1, 0x012F, 278},
3137     {-1, 0x00D3, 778},
3138     {-1, 0x00F3, 500},
3139     {-1, 0x0101, 500},
3140     {-1, 0x015B, 389},
3141     {-1, 0x00EF, 278},
3142     {-1, 0x00D4, 778},
3143     {-1, 0x00D9, 722},
3144     {-1, 0x0394, 612},
3145     {-1, 0x00FE, 556},
3146     {-1, 0x00B2, 300},
3147     {-1, 0x00D6, 778},
3148     {-1, 0x00B5, 556},
3149     {-1, 0x00EC, 278},
3150     {-1, 0x0151, 500},
3151     {-1, 0x0118, 667},
3152     {-1, 0x0111, 556},
3153     {-1, 0x00BE, 750},
3154     {-1, 0x015E, 556},
3155     {-1, 0x013E, 394},
3156     {-1, 0x0136, 778},
3157     {-1, 0x0139, 667},
3158     {-1, 0x2122, 1000},
3159     {-1, 0x0117, 444},
3160     {-1, 0x00CC, 389},
3161     {-1, 0x012A, 389},
3162     {-1, 0x013D, 667},
3163     {-1, 0x00BD, 750},
3164     {-1, 0x2264, 549},
3165     {-1, 0x00F4, 500},
3166     {-1, 0x00F1, 556},
3167     {-1, 0x0170, 722},
3168     {-1, 0x00C9, 667},
3169     {-1, 0x0113, 444},
3170     {-1, 0x011F, 500},
3171     {-1, 0x00BC, 750},
3172     {-1, 0x0160, 556},
3173     {-1, 0x0218, 556},
3174     {-1, 0x0150, 778},
3175     {-1, 0x00B0, 400},
3176     {-1, 0x00F2, 500},
3177     {-1, 0x010C, 722},
3178     {-1, 0x00F9, 556},
3179     {-1, 0x221A, 549},
3180     {-1, 0x010E, 722},
3181     {-1, 0x0157, 444},
3182     {-1, 0x00D1, 722},
3183     {-1, 0x00F5, 500},
3184     {-1, 0x0156, 722},
3185     {-1, 0x013B, 667},
3186     {-1, 0x00C3, 722},
3187     {-1, 0x0104, 722},
3188     {-1, 0x00C5, 722},
3189     {-1, 0x00D5, 778},
3190     {-1, 0x017C, 444},
3191     {-1, 0x011A, 667},
3192     {-1, 0x012E, 389},
3193     {-1, 0x0137, 556},
3194     {-1, 0x2212, 570},
3195     {-1, 0x00CE, 389},
3196     {-1, 0x0148, 556},
3197     {-1, 0x0163, 333},
3198     {-1, 0x00AC, 570},
3199     {-1, 0x00F6, 500},
3200     {-1, 0x00FC, 556},
3201     {-1, 0x2260, 549},
3202     {-1, 0x0123, 500},
3203     {-1, 0x00F0, 500},
3204     {-1, 0x017E, 444},
3205     {-1, 0x0146, 556},
3206     {-1, 0x00B9, 300},
3207     {-1, 0x012B, 278},
3208     {-1, 0x20AC, 500},
3209     {-1, 0xFFFF, 0}
3210     };
3211 
3212 static const HPDF_CharData CHAR_DATA_TIMES_BOLD_ITALIC[316] = {
3213     {32, 0x0020, 250},
3214     {33, 0x0021, 389},
3215     {34, 0x0022, 555},
3216     {35, 0x0023, 500},
3217     {36, 0x0024, 500},
3218     {37, 0x0025, 833},
3219     {38, 0x0026, 778},
3220     {39, 0x2019, 333},
3221     {40, 0x0028, 333},
3222     {41, 0x0029, 333},
3223     {42, 0x002A, 500},
3224     {43, 0x002B, 570},
3225     {44, 0x002C, 250},
3226     {45, 0x002D, 333},
3227     {46, 0x002E, 250},
3228     {47, 0x002F, 278},
3229     {48, 0x0030, 500},
3230     {49, 0x0031, 500},
3231     {50, 0x0032, 500},
3232     {51, 0x0033, 500},
3233     {52, 0x0034, 500},
3234     {53, 0x0035, 500},
3235     {54, 0x0036, 500},
3236     {55, 0x0037, 500},
3237     {56, 0x0038, 500},
3238     {57, 0x0039, 500},
3239     {58, 0x003A, 333},
3240     {59, 0x003B, 333},
3241     {60, 0x003C, 570},
3242     {61, 0x003D, 570},
3243     {62, 0x003E, 570},
3244     {63, 0x003F, 500},
3245     {64, 0x0040, 832},
3246     {65, 0x0041, 667},
3247     {66, 0x0042, 667},
3248     {67, 0x0043, 667},
3249     {68, 0x0044, 722},
3250     {69, 0x0045, 667},
3251     {70, 0x0046, 667},
3252     {71, 0x0047, 722},
3253     {72, 0x0048, 778},
3254     {73, 0x0049, 389},
3255     {74, 0x004A, 500},
3256     {75, 0x004B, 667},
3257     {76, 0x004C, 611},
3258     {77, 0x004D, 889},
3259     {78, 0x004E, 722},
3260     {79, 0x004F, 722},
3261     {80, 0x0050, 611},
3262     {81, 0x0051, 722},
3263     {82, 0x0052, 667},
3264     {83, 0x0053, 556},
3265     {84, 0x0054, 611},
3266     {85, 0x0055, 722},
3267     {86, 0x0056, 667},
3268     {87, 0x0057, 889},
3269     {88, 0x0058, 667},
3270     {89, 0x0059, 611},
3271     {90, 0x005A, 611},
3272     {91, 0x005B, 333},
3273     {92, 0x005C, 278},
3274     {93, 0x005D, 333},
3275     {94, 0x005E, 570},
3276     {95, 0x005F, 500},
3277     {96, 0x2018, 333},
3278     {97, 0x0061, 500},
3279     {98, 0x0062, 500},
3280     {99, 0x0063, 444},
3281     {100, 0x0064, 500},
3282     {101, 0x0065, 444},
3283     {102, 0x0066, 333},
3284     {103, 0x0067, 500},
3285     {104, 0x0068, 556},
3286     {105, 0x0069, 278},
3287     {106, 0x006A, 278},
3288     {107, 0x006B, 500},
3289     {108, 0x006C, 278},
3290     {109, 0x006D, 778},
3291     {110, 0x006E, 556},
3292     {111, 0x006F, 500},
3293     {112, 0x0070, 500},
3294     {113, 0x0071, 500},
3295     {114, 0x0072, 389},
3296     {115, 0x0073, 389},
3297     {116, 0x0074, 278},
3298     {117, 0x0075, 556},
3299     {118, 0x0076, 444},
3300     {119, 0x0077, 667},
3301     {120, 0x0078, 500},
3302     {121, 0x0079, 444},
3303     {122, 0x007A, 389},
3304     {123, 0x007B, 348},
3305     {124, 0x007C, 220},
3306     {125, 0x007D, 348},
3307     {126, 0x007E, 570},
3308     {161, 0x00A1, 389},
3309     {162, 0x00A2, 500},
3310     {163, 0x00A3, 500},
3311     {164, 0x2044, 167},
3312     {165, 0x00A5, 500},
3313     {166, 0x0192, 500},
3314     {167, 0x00A7, 500},
3315     {168, 0x00A4, 500},
3316     {169, 0x0027, 278},
3317     {170, 0x201C, 500},
3318     {171, 0x00AB, 500},
3319     {172, 0x2039, 333},
3320     {173, 0x203A, 333},
3321     {174, 0xFB01, 556},
3322     {175, 0xFB02, 556},
3323     {177, 0x2013, 500},
3324     {178, 0x2020, 500},
3325     {179, 0x2021, 500},
3326     {180, 0x00B7, 250},
3327     {182, 0x00B6, 500},
3328     {183, 0x2022, 350},
3329     {184, 0x201A, 333},
3330     {185, 0x201E, 500},
3331     {186, 0x201D, 500},
3332     {187, 0x00BB, 500},
3333     {188, 0x2026, 1000},
3334     {189, 0x2030, 1000},
3335     {191, 0x00BF, 500},
3336     {193, 0x0060, 333},
3337     {194, 0x00B4, 333},
3338     {195, 0x02C6, 333},
3339     {196, 0x02DC, 333},
3340     {197, 0x00AF, 333},
3341     {198, 0x02D8, 333},
3342     {199, 0x02D9, 333},
3343     {200, 0x00A8, 333},
3344     {202, 0x02DA, 333},
3345     {203, 0x00B8, 333},
3346     {205, 0x02DD, 333},
3347     {206, 0x02DB, 333},
3348     {207, 0x02C7, 333},
3349     {208, 0x2014, 1000},
3350     {225, 0x00C6, 944},
3351     {227, 0x00AA, 266},
3352     {232, 0x0141, 611},
3353     {233, 0x00D8, 722},
3354     {234, 0x0152, 944},
3355     {235, 0x00BA, 300},
3356     {241, 0x00E6, 722},
3357     {245, 0x0131, 278},
3358     {248, 0x0142, 278},
3359     {249, 0x00F8, 500},
3360     {250, 0x0153, 722},
3361     {251, 0x00DF, 500},
3362     {-1, 0x00CF, 389},
3363     {-1, 0x00E9, 444},
3364     {-1, 0x0103, 500},
3365     {-1, 0x0171, 556},
3366     {-1, 0x011B, 444},
3367     {-1, 0x0178, 611},
3368     {-1, 0x00F7, 570},
3369     {-1, 0x00DD, 611},
3370     {-1, 0x00C2, 667},
3371     {-1, 0x00E1, 500},
3372     {-1, 0x00DB, 722},
3373     {-1, 0x00FD, 444},
3374     {-1, 0x0219, 389},
3375     {-1, 0x00EA, 444},
3376     {-1, 0x016E, 722},
3377     {-1, 0x00DC, 722},
3378     {-1, 0x0105, 500},
3379     {-1, 0x00DA, 722},
3380     {-1, 0x0173, 556},
3381     {-1, 0x00CB, 667},
3382     {-1, 0x0110, 722},
3383     {-1, 0xF6C3, 250},
3384     {-1, 0x00A9, 747},
3385     {-1, 0x0112, 667},
3386     {-1, 0x010D, 444},
3387     {-1, 0x00E5, 500},
3388     {-1, 0x0145, 722},
3389     {-1, 0x013A, 278},
3390     {-1, 0x00E0, 500},
3391     {-1, 0x0162, 611},
3392     {-1, 0x0106, 667},
3393     {-1, 0x00E3, 500},
3394     {-1, 0x0116, 667},
3395     {-1, 0x0161, 389},
3396     {-1, 0x015F, 389},
3397     {-1, 0x00ED, 278},
3398     {-1, 0x25CA, 494},
3399     {-1, 0x0158, 667},
3400     {-1, 0x0122, 722},
3401     {-1, 0x00FB, 556},
3402     {-1, 0x00E2, 500},
3403     {-1, 0x0100, 667},
3404     {-1, 0x0159, 389},
3405     {-1, 0x00E7, 444},
3406     {-1, 0x017B, 611},
3407     {-1, 0x00DE, 611},
3408     {-1, 0x014C, 722},
3409     {-1, 0x0154, 667},
3410     {-1, 0x015A, 556},
3411     {-1, 0x010F, 608},
3412     {-1, 0x016A, 722},
3413     {-1, 0x016F, 556},
3414     {-1, 0x00B3, 300},
3415     {-1, 0x00D2, 722},
3416     {-1, 0x00C0, 667},
3417     {-1, 0x0102, 667},
3418     {-1, 0x00D7, 570},
3419     {-1, 0x00FA, 556},
3420     {-1, 0x0164, 611},
3421     {-1, 0x2202, 494},
3422     {-1, 0x00FF, 444},
3423     {-1, 0x0143, 722},
3424     {-1, 0x00EE, 278},
3425     {-1, 0x00CA, 667},
3426     {-1, 0x00E4, 500},
3427     {-1, 0x00EB, 444},
3428     {-1, 0x0107, 444},
3429     {-1, 0x0144, 556},
3430     {-1, 0x016B, 556},
3431     {-1, 0x0147, 722},
3432     {-1, 0x00CD, 389},
3433     {-1, 0x00B1, 570},
3434     {-1, 0x00A6, 220},
3435     {-1, 0x00AE, 747},
3436     {-1, 0x011E, 722},
3437     {-1, 0x0130, 389},
3438     {-1, 0x2211, 600},
3439     {-1, 0x00C8, 667},
3440     {-1, 0x0155, 389},
3441     {-1, 0x014D, 500},
3442     {-1, 0x0179, 611},
3443     {-1, 0x017D, 611},
3444     {-1, 0x2265, 549},
3445     {-1, 0x00D0, 722},
3446     {-1, 0x00C7, 667},
3447     {-1, 0x013C, 278},
3448     {-1, 0x0165, 366},
3449     {-1, 0x0119, 444},
3450     {-1, 0x0172, 722},
3451     {-1, 0x00C1, 667},
3452     {-1, 0x00C4, 667},
3453     {-1, 0x00E8, 444},
3454     {-1, 0x017A, 389},
3455     {-1, 0x012F, 278},
3456     {-1, 0x00D3, 722},
3457     {-1, 0x00F3, 500},
3458     {-1, 0x0101, 500},
3459     {-1, 0x015B, 389},
3460     {-1, 0x00EF, 278},
3461     {-1, 0x00D4, 722},
3462     {-1, 0x00D9, 722},
3463     {-1, 0x0394, 612},
3464     {-1, 0x00FE, 500},
3465     {-1, 0x00B2, 300},
3466     {-1, 0x00D6, 722},
3467     {-1, 0x00B5, 576},
3468     {-1, 0x00EC, 278},
3469     {-1, 0x0151, 500},
3470     {-1, 0x0118, 667},
3471     {-1, 0x0111, 500},
3472     {-1, 0x00BE, 750},
3473     {-1, 0x015E, 556},
3474     {-1, 0x013E, 382},
3475     {-1, 0x0136, 667},
3476     {-1, 0x0139, 611},
3477     {-1, 0x2122, 1000},
3478     {-1, 0x0117, 444},
3479     {-1, 0x00CC, 389},
3480     {-1, 0x012A, 389},
3481     {-1, 0x013D, 611},
3482     {-1, 0x00BD, 750},
3483     {-1, 0x2264, 549},
3484     {-1, 0x00F4, 500},
3485     {-1, 0x00F1, 556},
3486     {-1, 0x0170, 722},
3487     {-1, 0x00C9, 667},
3488     {-1, 0x0113, 444},
3489     {-1, 0x011F, 500},
3490     {-1, 0x00BC, 750},
3491     {-1, 0x0160, 556},
3492     {-1, 0x0218, 556},
3493     {-1, 0x0150, 722},
3494     {-1, 0x00B0, 400},
3495     {-1, 0x00F2, 500},
3496     {-1, 0x010C, 667},
3497     {-1, 0x00F9, 556},
3498     {-1, 0x221A, 549},
3499     {-1, 0x010E, 722},
3500     {-1, 0x0157, 389},
3501     {-1, 0x00D1, 722},
3502     {-1, 0x00F5, 500},
3503     {-1, 0x0156, 667},
3504     {-1, 0x013B, 611},
3505     {-1, 0x00C3, 667},
3506     {-1, 0x0104, 667},
3507     {-1, 0x00C5, 667},
3508     {-1, 0x00D5, 722},
3509     {-1, 0x017C, 389},
3510     {-1, 0x011A, 667},
3511     {-1, 0x012E, 389},
3512     {-1, 0x0137, 500},
3513     {-1, 0x2212, 606},
3514     {-1, 0x00CE, 389},
3515     {-1, 0x0148, 556},
3516     {-1, 0x0163, 278},
3517     {-1, 0x00AC, 606},
3518     {-1, 0x00F6, 500},
3519     {-1, 0x00FC, 556},
3520     {-1, 0x2260, 549},
3521     {-1, 0x0123, 500},
3522     {-1, 0x00F0, 500},
3523     {-1, 0x017E, 389},
3524     {-1, 0x0146, 556},
3525     {-1, 0x00B9, 300},
3526     {-1, 0x012B, 278},
3527     {-1, 0x20AC, 500},
3528     {-1, 0xFFFF, 0}
3529     };
3530 
3531 static const HPDF_CharData CHAR_DATA_TIMES_ITALIC[316] = {
3532     {32, 0x0020, 250},
3533     {33, 0x0021, 333},
3534     {34, 0x0022, 420},
3535     {35, 0x0023, 500},
3536     {36, 0x0024, 500},
3537     {37, 0x0025, 833},
3538     {38, 0x0026, 778},
3539     {39, 0x2019, 333},
3540     {40, 0x0028, 333},
3541     {41, 0x0029, 333},
3542     {42, 0x002A, 500},
3543     {43, 0x002B, 675},
3544     {44, 0x002C, 250},
3545     {45, 0x002D, 333},
3546     {46, 0x002E, 250},
3547     {47, 0x002F, 278},
3548     {48, 0x0030, 500},
3549     {49, 0x0031, 500},
3550     {50, 0x0032, 500},
3551     {51, 0x0033, 500},
3552     {52, 0x0034, 500},
3553     {53, 0x0035, 500},
3554     {54, 0x0036, 500},
3555     {55, 0x0037, 500},
3556     {56, 0x0038, 500},
3557     {57, 0x0039, 500},
3558     {58, 0x003A, 333},
3559     {59, 0x003B, 333},
3560     {60, 0x003C, 675},
3561     {61, 0x003D, 675},
3562     {62, 0x003E, 675},
3563     {63, 0x003F, 500},
3564     {64, 0x0040, 920},
3565     {65, 0x0041, 611},
3566     {66, 0x0042, 611},
3567     {67, 0x0043, 667},
3568     {68, 0x0044, 722},
3569     {69, 0x0045, 611},
3570     {70, 0x0046, 611},
3571     {71, 0x0047, 722},
3572     {72, 0x0048, 722},
3573     {73, 0x0049, 333},
3574     {74, 0x004A, 444},
3575     {75, 0x004B, 667},
3576     {76, 0x004C, 556},
3577     {77, 0x004D, 833},
3578     {78, 0x004E, 667},
3579     {79, 0x004F, 722},
3580     {80, 0x0050, 611},
3581     {81, 0x0051, 722},
3582     {82, 0x0052, 611},
3583     {83, 0x0053, 500},
3584     {84, 0x0054, 556},
3585     {85, 0x0055, 722},
3586     {86, 0x0056, 611},
3587     {87, 0x0057, 833},
3588     {88, 0x0058, 611},
3589     {89, 0x0059, 556},
3590     {90, 0x005A, 556},
3591     {91, 0x005B, 389},
3592     {92, 0x005C, 278},
3593     {93, 0x005D, 389},
3594     {94, 0x005E, 422},
3595     {95, 0x005F, 500},
3596     {96, 0x2018, 333},
3597     {97, 0x0061, 500},
3598     {98, 0x0062, 500},
3599     {99, 0x0063, 444},
3600     {100, 0x0064, 500},
3601     {101, 0x0065, 444},
3602     {102, 0x0066, 278},
3603     {103, 0x0067, 500},
3604     {104, 0x0068, 500},
3605     {105, 0x0069, 278},
3606     {106, 0x006A, 278},
3607     {107, 0x006B, 444},
3608     {108, 0x006C, 278},
3609     {109, 0x006D, 722},
3610     {110, 0x006E, 500},
3611     {111, 0x006F, 500},
3612     {112, 0x0070, 500},
3613     {113, 0x0071, 500},
3614     {114, 0x0072, 389},
3615     {115, 0x0073, 389},
3616     {116, 0x0074, 278},
3617     {117, 0x0075, 500},
3618     {118, 0x0076, 444},
3619     {119, 0x0077, 667},
3620     {120, 0x0078, 444},
3621     {121, 0x0079, 444},
3622     {122, 0x007A, 389},
3623     {123, 0x007B, 400},
3624     {124, 0x007C, 275},
3625     {125, 0x007D, 400},
3626     {126, 0x007E, 541},
3627     {161, 0x00A1, 389},
3628     {162, 0x00A2, 500},
3629     {163, 0x00A3, 500},
3630     {164, 0x2044, 167},
3631     {165, 0x00A5, 500},
3632     {166, 0x0192, 500},
3633     {167, 0x00A7, 500},
3634     {168, 0x00A4, 500},
3635     {169, 0x0027, 214},
3636     {170, 0x201C, 556},
3637     {171, 0x00AB, 500},
3638     {172, 0x2039, 333},
3639     {173, 0x203A, 333},
3640     {174, 0xFB01, 500},
3641     {175, 0xFB02, 500},
3642     {177, 0x2013, 500},
3643     {178, 0x2020, 500},
3644     {179, 0x2021, 500},
3645     {180, 0x00B7, 250},
3646     {182, 0x00B6, 523},
3647     {183, 0x2022, 350},
3648     {184, 0x201A, 333},
3649     {185, 0x201E, 556},
3650     {186, 0x201D, 556},
3651     {187, 0x00BB, 500},
3652     {188, 0x2026, 889},
3653     {189, 0x2030, 1000},
3654     {191, 0x00BF, 500},
3655     {193, 0x0060, 333},
3656     {194, 0x00B4, 333},
3657     {195, 0x02C6, 333},
3658     {196, 0x02DC, 333},
3659     {197, 0x00AF, 333},
3660     {198, 0x02D8, 333},
3661     {199, 0x02D9, 333},
3662     {200, 0x00A8, 333},
3663     {202, 0x02DA, 333},
3664     {203, 0x00B8, 333},
3665     {205, 0x02DD, 333},
3666     {206, 0x02DB, 333},
3667     {207, 0x02C7, 333},
3668     {208, 0x2014, 889},
3669     {225, 0x00C6, 889},
3670     {227, 0x00AA, 276},
3671     {232, 0x0141, 556},
3672     {233, 0x00D8, 722},
3673     {234, 0x0152, 944},
3674     {235, 0x00BA, 310},
3675     {241, 0x00E6, 667},
3676     {245, 0x0131, 278},
3677     {248, 0x0142, 278},
3678     {249, 0x00F8, 500},
3679     {250, 0x0153, 667},
3680     {251, 0x00DF, 500},
3681     {-1, 0x00CF, 333},
3682     {-1, 0x00E9, 444},
3683     {-1, 0x0103, 500},
3684     {-1, 0x0171, 500},
3685     {-1, 0x011B, 444},
3686     {-1, 0x0178, 556},
3687     {-1, 0x00F7, 675},
3688     {-1, 0x00DD, 556},
3689     {-1, 0x00C2, 611},
3690     {-1, 0x00E1, 500},
3691     {-1, 0x00DB, 722},
3692     {-1, 0x00FD, 444},
3693     {-1, 0x0219, 389},
3694     {-1, 0x00EA, 444},
3695     {-1, 0x016E, 722},
3696     {-1, 0x00DC, 722},
3697     {-1, 0x0105, 500},
3698     {-1, 0x00DA, 722},
3699     {-1, 0x0173, 500},
3700     {-1, 0x00CB, 611},
3701     {-1, 0x0110, 722},
3702     {-1, 0xF6C3, 250},
3703     {-1, 0x00A9, 760},
3704     {-1, 0x0112, 611},
3705     {-1, 0x010D, 444},
3706     {-1, 0x00E5, 500},
3707     {-1, 0x0145, 667},
3708     {-1, 0x013A, 278},
3709     {-1, 0x00E0, 500},
3710     {-1, 0x0162, 556},
3711     {-1, 0x0106, 667},
3712     {-1, 0x00E3, 500},
3713     {-1, 0x0116, 611},
3714     {-1, 0x0161, 389},
3715     {-1, 0x015F, 389},
3716     {-1, 0x00ED, 278},
3717     {-1, 0x25CA, 471},
3718     {-1, 0x0158, 611},
3719     {-1, 0x0122, 722},
3720     {-1, 0x00FB, 500},
3721     {-1, 0x00E2, 500},
3722     {-1, 0x0100, 611},
3723     {-1, 0x0159, 389},
3724     {-1, 0x00E7, 444},
3725     {-1, 0x017B, 556},
3726     {-1, 0x00DE, 611},
3727     {-1, 0x014C, 722},
3728     {-1, 0x0154, 611},
3729     {-1, 0x015A, 500},
3730     {-1, 0x010F, 544},
3731     {-1, 0x016A, 722},
3732     {-1, 0x016F, 500},
3733     {-1, 0x00B3, 300},
3734     {-1, 0x00D2, 722},
3735     {-1, 0x00C0, 611},
3736     {-1, 0x0102, 611},
3737     {-1, 0x00D7, 675},
3738     {-1, 0x00FA, 500},
3739     {-1, 0x0164, 556},
3740     {-1, 0x2202, 476},
3741     {-1, 0x00FF, 444},
3742     {-1, 0x0143, 667},
3743     {-1, 0x00EE, 278},
3744     {-1, 0x00CA, 611},
3745     {-1, 0x00E4, 500},
3746     {-1, 0x00EB, 444},
3747     {-1, 0x0107, 444},
3748     {-1, 0x0144, 500},
3749     {-1, 0x016B, 500},
3750     {-1, 0x0147, 667},
3751     {-1, 0x00CD, 333},
3752     {-1, 0x00B1, 675},
3753     {-1, 0x00A6, 275},
3754     {-1, 0x00AE, 760},
3755     {-1, 0x011E, 722},
3756     {-1, 0x0130, 333},
3757     {-1, 0x2211, 600},
3758     {-1, 0x00C8, 611},
3759     {-1, 0x0155, 389},
3760     {-1, 0x014D, 500},
3761     {-1, 0x0179, 556},
3762     {-1, 0x017D, 556},
3763     {-1, 0x2265, 549},
3764     {-1, 0x00D0, 722},
3765     {-1, 0x00C7, 667},
3766     {-1, 0x013C, 278},
3767     {-1, 0x0165, 300},
3768     {-1, 0x0119, 444},
3769     {-1, 0x0172, 722},
3770     {-1, 0x00C1, 611},
3771     {-1, 0x00C4, 611},
3772     {-1, 0x00E8, 444},
3773     {-1, 0x017A, 389},
3774     {-1, 0x012F, 278},
3775     {-1, 0x00D3, 722},
3776     {-1, 0x00F3, 500},
3777     {-1, 0x0101, 500},
3778     {-1, 0x015B, 389},
3779     {-1, 0x00EF, 278},
3780     {-1, 0x00D4, 722},
3781     {-1, 0x00D9, 722},
3782     {-1, 0x0394, 612},
3783     {-1, 0x00FE, 500},
3784     {-1, 0x00B2, 300},
3785     {-1, 0x00D6, 722},
3786     {-1, 0x00B5, 500},
3787     {-1, 0x00EC, 278},
3788     {-1, 0x0151, 500},
3789     {-1, 0x0118, 611},
3790     {-1, 0x0111, 500},
3791     {-1, 0x00BE, 750},
3792     {-1, 0x015E, 500},
3793     {-1, 0x013E, 300},
3794     {-1, 0x0136, 667},
3795     {-1, 0x0139, 556},
3796     {-1, 0x2122, 980},
3797     {-1, 0x0117, 444},
3798     {-1, 0x00CC, 333},
3799     {-1, 0x012A, 333},
3800     {-1, 0x013D, 611},
3801     {-1, 0x00BD, 750},
3802     {-1, 0x2264, 549},
3803     {-1, 0x00F4, 500},
3804     {-1, 0x00F1, 500},
3805     {-1, 0x0170, 722},
3806     {-1, 0x00C9, 611},
3807     {-1, 0x0113, 444},
3808     {-1, 0x011F, 500},
3809     {-1, 0x00BC, 750},
3810     {-1, 0x0160, 500},
3811     {-1, 0x0218, 500},
3812     {-1, 0x0150, 722},
3813     {-1, 0x00B0, 400},
3814     {-1, 0x00F2, 500},
3815     {-1, 0x010C, 667},
3816     {-1, 0x00F9, 500},
3817     {-1, 0x221A, 453},
3818     {-1, 0x010E, 722},
3819     {-1, 0x0157, 389},
3820     {-1, 0x00D1, 667},
3821     {-1, 0x00F5, 500},
3822     {-1, 0x0156, 611},
3823     {-1, 0x013B, 556},
3824     {-1, 0x00C3, 611},
3825     {-1, 0x0104, 611},
3826     {-1, 0x00C5, 611},
3827     {-1, 0x00D5, 722},
3828     {-1, 0x017C, 389},
3829     {-1, 0x011A, 611},
3830     {-1, 0x012E, 333},
3831     {-1, 0x0137, 444},
3832     {-1, 0x2212, 675},
3833     {-1, 0x00CE, 333},
3834     {-1, 0x0148, 500},
3835     {-1, 0x0163, 278},
3836     {-1, 0x00AC, 675},
3837     {-1, 0x00F6, 500},
3838     {-1, 0x00FC, 500},
3839     {-1, 0x2260, 549},
3840     {-1, 0x0123, 500},
3841     {-1, 0x00F0, 500},
3842     {-1, 0x017E, 389},
3843     {-1, 0x0146, 500},
3844     {-1, 0x00B9, 300},
3845     {-1, 0x012B, 278},
3846     {-1, 0x20AC, 500},
3847     {-1, 0xFFFF, 0}
3848     };
3849 
3850 static const HPDF_CharData CHAR_DATA_ZAPF_DINGBATS[203] = {
3851     {32, 0x0020, 278},
3852     {33, 0x0021, 974},
3853     {34, 0x0022, 961},
3854     {35, 0x0023, 974},
3855     {36, 0x0024, 980},
3856     {37, 0x0025, 719},
3857     {38, 0x0026, 789},
3858     {39, 0x0027, 790},
3859     {40, 0x0028, 791},
3860     {41, 0x0029, 690},
3861     {42, 0x002A, 960},
3862     {43, 0x002B, 939},
3863     {44, 0x002C, 549},
3864     {45, 0x002D, 855},
3865     {46, 0x002E, 911},
3866     {47, 0x002F, 933},
3867     {48, 0x0030, 911},
3868     {49, 0x0031, 945},
3869     {50, 0x0032, 974},
3870     {51, 0x0033, 755},
3871     {52, 0x0034, 846},
3872     {53, 0x0035, 762},
3873     {54, 0x0036, 761},
3874     {55, 0x0037, 571},
3875     {56, 0x0038, 677},
3876     {57, 0x0039, 763},
3877     {58, 0x003A, 760},
3878     {59, 0x003B, 759},
3879     {60, 0x003C, 754},
3880     {61, 0x003D, 494},
3881     {62, 0x003E, 552},
3882     {63, 0x003F, 537},
3883     {64, 0x0040, 577},
3884     {65, 0x0041, 692},
3885     {66, 0x0042, 786},
3886     {67, 0x0043, 788},
3887     {68, 0x0044, 788},
3888     {69, 0x0045, 790},
3889     {70, 0x0046, 793},
3890     {71, 0x0047, 794},
3891     {72, 0x0048, 816},
3892     {73, 0x0049, 823},
3893     {74, 0x004A, 789},
3894     {75, 0x004B, 841},
3895     {76, 0x004C, 823},
3896     {77, 0x004D, 833},
3897     {78, 0x004E, 816},
3898     {79, 0x004F, 831},
3899     {80, 0x0050, 923},
3900     {81, 0x0051, 744},
3901     {82, 0x0052, 723},
3902     {83, 0x0053, 749},
3903     {84, 0x0054, 790},
3904     {85, 0x0055, 792},
3905     {86, 0x0056, 695},
3906     {87, 0x0057, 776},
3907     {88, 0x0058, 768},
3908     {89, 0x0059, 792},
3909     {90, 0x005A, 759},
3910     {91, 0x005B, 707},
3911     {92, 0x005C, 708},
3912     {93, 0x005D, 682},
3913     {94, 0x005E, 701},
3914     {95, 0x005F, 826},
3915     {96, 0x0060, 815},
3916     {97, 0x0061, 789},
3917     {98, 0x0062, 789},
3918     {99, 0x0063, 707},
3919     {100, 0x0064, 687},
3920     {101, 0x0065, 696},
3921     {102, 0x0066, 689},
3922     {103, 0x0067, 786},
3923     {104, 0x0068, 787},
3924     {105, 0x0069, 713},
3925     {106, 0x006A, 791},
3926     {107, 0x006B, 785},
3927     {108, 0x006C, 791},
3928     {109, 0x006D, 873},
3929     {110, 0x006E, 761},
3930     {111, 0x006F, 762},
3931     {112, 0x0070, 762},
3932     {113, 0x0071, 759},
3933     {114, 0x0072, 759},
3934     {115, 0x0073, 892},
3935     {116, 0x0074, 892},
3936     {117, 0x0075, 788},
3937     {118, 0x0076, 784},
3938     {119, 0x0077, 438},
3939     {120, 0x0078, 138},
3940     {121, 0x0079, 277},
3941     {122, 0x007A, 415},
3942     {123, 0x007B, 392},
3943     {124, 0x007C, 392},
3944     {125, 0x007D, 668},
3945     {126, 0x007E, 668},
3946     {128, 0x0080, 390},
3947     {129, 0x0081, 390},
3948     {130, 0x0082, 317},
3949     {131, 0x0083, 317},
3950     {132, 0x0084, 276},
3951     {133, 0x0085, 276},
3952     {134, 0x0086, 509},
3953     {135, 0x0087, 509},
3954     {136, 0x0088, 410},
3955     {137, 0x0089, 410},
3956     {138, 0x008A, 234},
3957     {139, 0x008B, 234},
3958     {140, 0x008C, 334},
3959     {141, 0x008D, 334},
3960     {161, 0x00A1, 732},
3961     {162, 0x00A2, 544},
3962     {163, 0x00A3, 544},
3963     {164, 0x00A4, 910},
3964     {165, 0x00A5, 667},
3965     {166, 0x00A6, 760},
3966     {167, 0x00A7, 760},
3967     {168, 0x00A8, 776},
3968     {169, 0x00A9, 595},
3969     {170, 0x00AA, 694},
3970     {171, 0x00AB, 626},
3971     {172, 0x00AC, 788},
3972     {173, 0x00AD, 788},
3973     {174, 0x00AE, 788},
3974     {175, 0x00AF, 788},
3975     {176, 0x00B0, 788},
3976     {177, 0x00B1, 788},
3977     {178, 0x00B2, 788},
3978     {179, 0x00B3, 788},
3979     {180, 0x00B4, 788},
3980     {181, 0x00B5, 788},
3981     {182, 0x00B6, 788},
3982     {183, 0x00B7, 788},
3983     {184, 0x00B8, 788},
3984     {185, 0x00B9, 788},
3985     {186, 0x00BA, 788},
3986     {187, 0x00BB, 788},
3987     {188, 0x00BC, 788},
3988     {189, 0x00BD, 788},
3989     {190, 0x00BE, 788},
3990     {191, 0x00BF, 788},
3991     {192, 0x00C0, 788},
3992     {193, 0x00C1, 788},
3993     {194, 0x00C2, 788},
3994     {195, 0x00C3, 788},
3995     {196, 0x00C4, 788},
3996     {197, 0x00C5, 788},
3997     {198, 0x00C6, 788},
3998     {199, 0x00C7, 788},
3999     {200, 0x00C8, 788},
4000     {201, 0x00C9, 788},
4001     {202, 0x00CA, 788},
4002     {203, 0x00CB, 788},
4003     {204, 0x00CC, 788},
4004     {205, 0x00CD, 788},
4005     {206, 0x00CE, 788},
4006     {207, 0x00CF, 788},
4007     {208, 0x00D0, 788},
4008     {209, 0x00D1, 788},
4009     {210, 0x00D2, 788},
4010     {211, 0x00D3, 788},
4011     {212, 0x00D4, 894},
4012     {213, 0x00D5, 838},
4013     {214, 0x00D6, 1016},
4014     {215, 0x00D7, 458},
4015     {216, 0x00D8, 748},
4016     {217, 0x00D9, 924},
4017     {218, 0x00DA, 748},
4018     {219, 0x00DB, 918},
4019     {220, 0x00DC, 927},
4020     {221, 0x00DD, 928},
4021     {222, 0x00DE, 928},
4022     {223, 0x00DF, 834},
4023     {224, 0x00E0, 873},
4024     {225, 0x00E1, 828},
4025     {226, 0x00E2, 924},
4026     {227, 0x00E3, 924},
4027     {228, 0x00E4, 917},
4028     {229, 0x00E5, 930},
4029     {230, 0x00E6, 931},
4030     {231, 0x00E7, 463},
4031     {232, 0x00E8, 883},
4032     {233, 0x00E9, 836},
4033     {234, 0x00EA, 836},
4034     {235, 0x00EB, 867},
4035     {236, 0x00EC, 867},
4036     {237, 0x00ED, 696},
4037     {238, 0x00EE, 696},
4038     {239, 0x00EF, 874},
4039     {241, 0x00F1, 874},
4040     {242, 0x00F2, 760},
4041     {243, 0x00F3, 946},
4042     {244, 0x00F4, 771},
4043     {245, 0x00F5, 865},
4044     {246, 0x00F6, 771},
4045     {247, 0x00F7, 888},
4046     {248, 0x00F8, 967},
4047     {249, 0x00F9, 888},
4048     {250, 0x00FA, 831},
4049     {251, 0x00FB, 873},
4050     {252, 0x00FC, 927},
4051     {253, 0x00FD, 970},
4052     {254, 0x00FE, 918},
4053     {-1, 0xFFFF, 0}
4054     };
4055 
4056 static const HPDF_CharData CHAR_DATA_SYMBOL[190] = {
4057     {32, 0x0020, 250},
4058     {33, 0x0021, 333},
4059     {34, 0x0022, 713},
4060     {35, 0x0023, 500},
4061     {36, 0x0024, 549},
4062     {37, 0x0025, 833},
4063     {38, 0x0026, 778},
4064     {39, 0x0027, 439},
4065     {40, 0x0028, 333},
4066     {41, 0x0029, 333},
4067     {42, 0x002A, 500},
4068     {43, 0x002B, 549},
4069     {44, 0x002C, 250},
4070     {45, 0x002D, 549},
4071     {46, 0x002E, 250},
4072     {47, 0x002F, 278},
4073     {48, 0x0030, 500},
4074     {49, 0x0031, 500},
4075     {50, 0x0032, 500},
4076     {51, 0x0033, 500},
4077     {52, 0x0034, 500},
4078     {53, 0x0035, 500},
4079     {54, 0x0036, 500},
4080     {55, 0x0037, 500},
4081     {56, 0x0038, 500},
4082     {57, 0x0039, 500},
4083     {58, 0x003A, 278},
4084     {59, 0x003B, 278},
4085     {60, 0x003C, 549},
4086     {61, 0x003D, 549},
4087     {62, 0x003E, 549},
4088     {63, 0x003F, 444},
4089     {64, 0x0040, 549},
4090     {65, 0x0041, 722},
4091     {66, 0x0042, 667},
4092     {67, 0x0043, 722},
4093     {68, 0x0044, 612},
4094     {69, 0x0045, 611},
4095     {70, 0x0046, 763},
4096     {71, 0x0047, 603},
4097     {72, 0x0048, 722},
4098     {73, 0x0049, 333},
4099     {74, 0x004A, 631},
4100     {75, 0x004B, 722},
4101     {76, 0x004C, 686},
4102     {77, 0x004D, 889},
4103     {78, 0x004E, 722},
4104     {79, 0x004F, 722},
4105     {80, 0x0050, 768},
4106     {81, 0x0051, 741},
4107     {82, 0x0052, 556},
4108     {83, 0x0053, 592},
4109     {84, 0x0054, 611},
4110     {85, 0x0055, 690},
4111     {86, 0x0056, 439},
4112     {87, 0x0057, 768},
4113     {88, 0x0058, 645},
4114     {89, 0x0059, 795},
4115     {90, 0x005A, 611},
4116     {91, 0x005B, 333},
4117     {92, 0x005C, 863},
4118     {93, 0x005D, 333},
4119     {94, 0x005E, 658},
4120     {95, 0x005F, 500},
4121     {96, 0x0060, 500},
4122     {97, 0x0061, 631},
4123     {98, 0x0062, 549},
4124     {99, 0x0063, 549},
4125     {100, 0x0064, 494},
4126     {101, 0x0065, 439},
4127     {102, 0x0066, 521},
4128     {103, 0x0067, 411},
4129     {104, 0x0068, 603},
4130     {105, 0x0069, 329},
4131     {106, 0x006A, 603},
4132     {107, 0x006B, 549},
4133     {108, 0x006C, 549},
4134     {109, 0x006D, 576},
4135     {110, 0x006E, 521},
4136     {111, 0x006F, 549},
4137     {112, 0x0070, 549},
4138     {113, 0x0071, 521},
4139     {114, 0x0072, 549},
4140     {115, 0x0073, 603},
4141     {116, 0x0074, 439},
4142     {117, 0x0075, 576},
4143     {118, 0x0076, 713},
4144     {119, 0x0077, 686},
4145     {120, 0x0078, 493},
4146     {121, 0x0079, 686},
4147     {122, 0x007A, 494},
4148     {123, 0x007B, 480},
4149     {124, 0x007C, 200},
4150     {125, 0x007D, 480},
4151     {126, 0x007E, 549},
4152     {160, 0x00A0, 750},
4153     {161, 0x00A1, 620},
4154     {162, 0x00A2, 247},
4155     {163, 0x00A3, 549},
4156     {164, 0x00A4, 167},
4157     {165, 0x00A5, 713},
4158     {166, 0x00A6, 500},
4159     {167, 0x00A7, 753},
4160     {168, 0x00A8, 753},
4161     {169, 0x00A9, 753},
4162     {170, 0x00AA, 753},
4163     {171, 0x00AB, 1042},
4164     {172, 0x00AC, 987},
4165     {173, 0x00AD, 603},
4166     {174, 0x00AE, 987},
4167     {175, 0x00AF, 603},
4168     {176, 0x00B0, 400},
4169     {177, 0x00B1, 549},
4170     {178, 0x00B2, 411},
4171     {179, 0x00B3, 549},
4172     {180, 0x00B4, 549},
4173     {181, 0x00B5, 713},
4174     {182, 0x00B6, 494},
4175     {183, 0x00B7, 460},
4176     {184, 0x00B8, 549},
4177     {185, 0x00B9, 549},
4178     {186, 0x00BA, 549},
4179     {187, 0x00BB, 549},
4180     {188, 0x00BC, 1000},
4181     {189, 0x00BD, 603},
4182     {190, 0x00BE, 1000},
4183     {191, 0x00BF, 658},
4184     {192, 0x00C0, 823},
4185     {193, 0x00C1, 686},
4186     {194, 0x00C2, 795},
4187     {195, 0x00C3, 987},
4188     {196, 0x00C4, 768},
4189     {197, 0x00C5, 768},
4190     {198, 0x00C6, 823},
4191     {199, 0x00C7, 768},
4192     {200, 0x00C8, 768},
4193     {201, 0x00C9, 713},
4194     {202, 0x00CA, 713},
4195     {203, 0x00CB, 713},
4196     {204, 0x00CC, 713},
4197     {205, 0x00CD, 713},
4198     {206, 0x00CE, 713},
4199     {207, 0x00CF, 713},
4200     {208, 0x00D0, 768},
4201     {209, 0x00D1, 713},
4202     {210, 0x00D2, 790},
4203     {211, 0x00D3, 790},
4204     {212, 0x00D4, 890},
4205     {213, 0x00D5, 823},
4206     {214, 0x00D6, 549},
4207     {215, 0x00D7, 250},
4208     {216, 0x00D8, 713},
4209     {217, 0x00D9, 603},
4210     {218, 0x00DA, 603},
4211     {219, 0x00DB, 1042},
4212     {220, 0x00DC, 987},
4213     {221, 0x00DD, 603},
4214     {222, 0x00DE, 987},
4215     {223, 0x00DF, 603},
4216     {224, 0x00E0, 494},
4217     {225, 0x00E1, 329},
4218     {226, 0x00E2, 790},
4219     {227, 0x00E3, 790},
4220     {228, 0x00E4, 786},
4221     {229, 0x00E5, 713},
4222     {230, 0x00E6, 384},
4223     {231, 0x00E7, 384},
4224     {232, 0x00E8, 384},
4225     {233, 0x00E9, 384},
4226     {234, 0x00EA, 384},
4227     {235, 0x00EB, 384},
4228     {236, 0x00EC, 494},
4229     {237, 0x00ED, 494},
4230     {238, 0x00EE, 494},
4231     {239, 0x00EF, 494},
4232     {241, 0x00F1, 329},
4233     {242, 0x00F2, 274},
4234     {243, 0x00F3, 686},
4235     {244, 0x00F4, 686},
4236     {245, 0x00F5, 686},
4237     {246, 0x00F6, 384},
4238     {247, 0x00F7, 384},
4239     {248, 0x00F8, 384},
4240     {249, 0x00F9, 384},
4241     {250, 0x00FA, 384},
4242     {251, 0x00FB, 384},
4243     {252, 0x00FC, 494},
4244     {253, 0x00FD, 494},
4245     {254, 0x00FE, 494},
4246     {-1, 0xFFFF, 0}
4247     };
4248 
4249 
4250 /*----------------------------------------------------------------------------*/
4251 /*------ base14 fonts --------------------------------------------------------*/
4252 
4253 #define  HPDF_FONT_COURIER                 "Courier"
4254 #define  HPDF_FONT_COURIER_BOLD            "Courier-Bold"
4255 #define  HPDF_FONT_COURIER_OBLIQUE         "Courier-Oblique"
4256 #define  HPDF_FONT_COURIER_BOLD_OBLIQUE    "Courier-BoldOblique"
4257 #define  HPDF_FONT_HELVETICA               "Helvetica"
4258 #define  HPDF_FONT_HELVETICA_BOLD          "Helvetica-Bold"
4259 #define  HPDF_FONT_HELVETICA_OBLIQUE       "Helvetica-Oblique"
4260 #define  HPDF_FONT_HELVETICA_BOLD_OBLIQUE  "Helvetica-BoldOblique"
4261 #define  HPDF_FONT_TIMES_ROMAN             "Times-Roman"
4262 #define  HPDF_FONT_TIMES_BOLD              "Times-Bold"
4263 #define  HPDF_FONT_TIMES_ITALIC            "Times-Italic"
4264 #define  HPDF_FONT_TIMES_BOLD_ITALIC       "Times-BoldItalic"
4265 #define  HPDF_FONT_SYMBOL                  "Symbol"
4266 #define  HPDF_FONT_ZAPF_DINGBATS           "ZapfDingbats"
4267 
4268 
4269 typedef struct _HPDF_Base14FontDefData {
4270     const char      *font_name;
4271     const HPDF_CharData  *widths_table;
4272     HPDF_BOOL             is_font_specific;
4273     HPDF_INT16            ascent;
4274     HPDF_INT16            descent;
4275     HPDF_UINT16           x_height;
4276     HPDF_UINT16           cap_height;
4277     HPDF_Box              bbox;
4278 } HPDF_Base14FontDefData;
4279 
4280 
4281 static const HPDF_Base14FontDefData  HPDF_BUILTIN_FONTS[] = {
4282     {
4283         HPDF_FONT_COURIER,
4284         CHAR_DATA_COURIER,
4285         HPDF_FALSE,
4286         629,
4287         -157,
4288         426,
4289         562,
4290         {-23, -250, 715, 805}
4291     },
4292     {
4293         HPDF_FONT_COURIER_BOLD,
4294         CHAR_DATA_COURIER_BOLD,
4295         HPDF_FALSE,
4296         629,
4297         -157,
4298         439,
4299         562,
4300         {-113, -250, 749, 801}
4301     },
4302     {
4303         HPDF_FONT_COURIER_OBLIQUE,
4304         CHAR_DATA_COURIER_OBLIQUE,
4305         HPDF_FALSE,
4306         629,
4307         -157,
4308         426,
4309         562,
4310         {-27, -250, 849, 805}
4311     },
4312     {
4313         HPDF_FONT_COURIER_BOLD_OBLIQUE,
4314         CHAR_DATA_COURIER_BOLD_OBLIQUE,
4315         HPDF_FALSE,
4316         629,
4317         -157,
4318         439,
4319         562,
4320         {-57, -250, 869, 801}
4321     },
4322     {
4323         HPDF_FONT_HELVETICA,
4324         CHAR_DATA_HELVETICA,
4325         HPDF_FALSE,
4326         718,
4327         -207,
4328         523,
4329         718,
4330         {-166, -225, 1000, 931}
4331     },
4332     {
4333         HPDF_FONT_HELVETICA_BOLD,
4334         CHAR_DATA_HELVETICA_BOLD,
4335         HPDF_FALSE,
4336         718,
4337         -207,
4338         532,
4339         718,
4340         {-170, -228, 1003, 962}
4341     },
4342     {
4343         HPDF_FONT_HELVETICA_OBLIQUE,
4344         CHAR_DATA_HELVETICA_OBLIQUE,
4345         HPDF_FALSE,
4346         718,
4347         -207,
4348         532,
4349         718,
4350         {-170, -225, 1116, 931}
4351     },
4352     {
4353         HPDF_FONT_HELVETICA_BOLD_OBLIQUE,
4354         CHAR_DATA_HELVETICA_BOLD_OBLIQUE,
4355         HPDF_FALSE,
4356         718,
4357         -207,
4358         532,
4359         718,
4360         {-174, -228, 1114, 962}
4361     },
4362     {
4363         HPDF_FONT_TIMES_ROMAN,
4364         CHAR_DATA_TIMES_ROMAN,
4365         HPDF_FALSE,
4366         683,
4367         -217,
4368         450,
4369         662,
4370         {-168, -218, 1000, 898}
4371     },
4372     {
4373         HPDF_FONT_TIMES_BOLD,
4374         CHAR_DATA_TIMES_BOLD,
4375         HPDF_FALSE,
4376         683,
4377         -217,
4378         461,
4379         676,
4380         {-168, -218, 1000, 935}
4381     },
4382     {
4383         HPDF_FONT_TIMES_ITALIC,
4384         CHAR_DATA_TIMES_ITALIC,
4385         HPDF_FALSE,
4386         683,
4387         -217,
4388         441,
4389         653,
4390         {-169, -217, 1010, 883}
4391     },
4392     {
4393         HPDF_FONT_TIMES_BOLD_ITALIC,
4394         CHAR_DATA_TIMES_BOLD_ITALIC,
4395         HPDF_FALSE,
4396         683,
4397         -217,
4398         462,
4399         669,
4400         {-200, -218, 996, 921}
4401     },
4402     {
4403         HPDF_FONT_SYMBOL,
4404         CHAR_DATA_SYMBOL,
4405         HPDF_TRUE,
4406         0,
4407         0,
4408         0,
4409         0,
4410         {-180, -293, 1090, 1010}
4411     },
4412     {
4413         HPDF_FONT_ZAPF_DINGBATS,
4414         CHAR_DATA_ZAPF_DINGBATS,
4415         HPDF_TRUE,
4416         0,
4417         0,
4418         0,
4419         0,
4420         {-1, -143, 981, 820}
4421     },
4422     {
4423         NULL,
4424         NULL,
4425         HPDF_FALSE,
4426         0,
4427         0,
4428         0,
4429         0,
4430         {0, 0, 0, 0}
4431     },
4432 };
4433 
4434 
4435 /*---------------------------------------------------------------------------*/
4436 
4437 const HPDF_Base14FontDefData*
4438 HPDF_Base14FontDef_FindBuiltinData  (const char  *font_name);
4439 
4440 
4441 /*---------------------------------------------------------------------------*/
4442 /*----- PDF_Base14FontDef ---------------------------------------------------*/
4443 
4444 const HPDF_Base14FontDefData*
HPDF_Base14FontDef_FindBuiltinData(const char * font_name)4445 HPDF_Base14FontDef_FindBuiltinData  (const char  *font_name)
4446 {
4447     HPDF_UINT i = 0;
4448 
4449     while (HPDF_BUILTIN_FONTS[i].font_name) {
4450         if (HPDF_StrCmp (HPDF_BUILTIN_FONTS[i].font_name, font_name) == 0)
4451             break;
4452 
4453         i++;
4454     }
4455 
4456     return &HPDF_BUILTIN_FONTS[i];
4457 }
4458 
4459 HPDF_FontDef
HPDF_Base14FontDef_New(HPDF_MMgr mmgr,const char * font_name)4460 HPDF_Base14FontDef_New  (HPDF_MMgr        mmgr,
4461                          const char  *font_name)
4462 {
4463     HPDF_FontDef                   fontdef;
4464     HPDF_STATUS                    ret;
4465     const HPDF_Base14FontDefData   *data;
4466     char                      *eptr;
4467     HPDF_Type1FontDefAttr          attr;
4468 
4469     fontdef = HPDF_Type1FontDef_New (mmgr);
4470     if (!fontdef)
4471         return NULL;
4472 
4473     data = HPDF_Base14FontDef_FindBuiltinData (font_name);
4474 
4475     if (!data->font_name) {
4476         HPDF_SetError (mmgr->error, HPDF_INVALID_FONT_NAME, 0);
4477         HPDF_FontDef_Free (fontdef);
4478         return NULL;
4479     }
4480 
4481     eptr = fontdef->base_font + HPDF_LIMIT_MAX_NAME_LEN;
4482     HPDF_StrCpy (fontdef->base_font, data->font_name, eptr);
4483 
4484     attr = (HPDF_Type1FontDefAttr)fontdef->attr;
4485     attr->is_base14font = HPDF_TRUE;
4486 
4487     if (data->is_font_specific)
4488         HPDF_StrCpy (attr->encoding_scheme, HPDF_ENCODING_FONT_SPECIFIC,
4489                 attr->encoding_scheme + HPDF_LIMIT_MAX_NAME_LEN);
4490 
4491     ret = HPDF_Type1FontDef_SetWidths (fontdef, data->widths_table);
4492 
4493     if (ret != HPDF_OK) {
4494         HPDF_FontDef_Free (fontdef);
4495         return NULL;
4496     }
4497 
4498     fontdef->font_bbox = data->bbox;
4499     fontdef->ascent = data->ascent;
4500     fontdef->descent = data->descent;
4501     fontdef->x_height = data->x_height;
4502     fontdef->cap_height = data->cap_height;
4503 
4504     fontdef->valid = HPDF_TRUE;
4505 
4506     return fontdef;
4507 }
4508 
4509