hpdf 2.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. data/History +57 -0
  2. data/License +25 -0
  3. data/README +165 -0
  4. data/examples/arc_demo.rb +82 -0
  5. data/examples/demo.rb +92 -0
  6. data/examples/encryption.rb +41 -0
  7. data/examples/ext_gstater_demo.rb +171 -0
  8. data/examples/font_demo.rb +67 -0
  9. data/examples/jpfont_demo.rb +122 -0
  10. data/examples/line_demo.rb +301 -0
  11. data/examples/slide_show_demo.rb +139 -0
  12. data/examples/text_demo2.rb +189 -0
  13. data/examples/ttfont_demo.rb +106 -0
  14. data/ext/extconf.rb +6 -0
  15. data/ext/hpdf.c +3779 -0
  16. data/ext/hpdf_annotation.c +415 -0
  17. data/ext/hpdf_array.c +344 -0
  18. data/ext/hpdf_binary.c +117 -0
  19. data/ext/hpdf_boolean.c +47 -0
  20. data/ext/hpdf_catalog.c +354 -0
  21. data/ext/hpdf_destination.c +339 -0
  22. data/ext/hpdf_dict.c +488 -0
  23. data/ext/hpdf_doc.c +2020 -0
  24. data/ext/hpdf_doc_png.c +137 -0
  25. data/ext/hpdf_encoder.c +2991 -0
  26. data/ext/hpdf_encoder_cns.c +36359 -0
  27. data/ext/hpdf_encoder_cnt.c +15307 -0
  28. data/ext/hpdf_encoder_jp.c +16125 -0
  29. data/ext/hpdf_encoder_kr.c +27978 -0
  30. data/ext/hpdf_encrypt.c +632 -0
  31. data/ext/hpdf_encryptdict.c +240 -0
  32. data/ext/hpdf_error.c +114 -0
  33. data/ext/hpdf_ext_gstate.c +150 -0
  34. data/ext/hpdf_font.c +229 -0
  35. data/ext/hpdf_font_cid.c +1030 -0
  36. data/ext/hpdf_font_tt.c +406 -0
  37. data/ext/hpdf_font_type1.c +391 -0
  38. data/ext/hpdf_fontdef.c +56 -0
  39. data/ext/hpdf_fontdef_base14.c +4506 -0
  40. data/ext/hpdf_fontdef_cid.c +194 -0
  41. data/ext/hpdf_fontdef_cns.c +471 -0
  42. data/ext/hpdf_fontdef_cnt.c +250 -0
  43. data/ext/hpdf_fontdef_jp.c +1904 -0
  44. data/ext/hpdf_fontdef_kr.c +1572 -0
  45. data/ext/hpdf_fontdef_tt.c +2230 -0
  46. data/ext/hpdf_fontdef_type1.c +524 -0
  47. data/ext/hpdf_gstate.c +119 -0
  48. data/ext/hpdf_image.c +568 -0
  49. data/ext/hpdf_image_png.c +424 -0
  50. data/ext/hpdf_info.c +164 -0
  51. data/ext/hpdf_list.c +333 -0
  52. data/ext/hpdf_mmgr.c +243 -0
  53. data/ext/hpdf_name.c +71 -0
  54. data/ext/hpdf_null.c +31 -0
  55. data/ext/hpdf_number.c +49 -0
  56. data/ext/hpdf_objects.c +172 -0
  57. data/ext/hpdf_outline.c +329 -0
  58. data/ext/hpdf_page_label.c +74 -0
  59. data/ext/hpdf_page_operator.c +2764 -0
  60. data/ext/hpdf_pages.c +1508 -0
  61. data/ext/hpdf_real.c +61 -0
  62. data/ext/hpdf_streams.c +1435 -0
  63. data/ext/hpdf_string.c +189 -0
  64. data/ext/hpdf_utils.c +438 -0
  65. data/ext/hpdf_xref.c +348 -0
  66. data/ext/include/hpdf.h +1227 -0
  67. data/ext/include/hpdf_annotation.h +74 -0
  68. data/ext/include/hpdf_catalog.h +81 -0
  69. data/ext/include/hpdf_conf.h +76 -0
  70. data/ext/include/hpdf_consts.h +549 -0
  71. data/ext/include/hpdf_destination.h +41 -0
  72. data/ext/include/hpdf_doc.h +159 -0
  73. data/ext/include/hpdf_encoder.h +311 -0
  74. data/ext/include/hpdf_encrypt.h +156 -0
  75. data/ext/include/hpdf_encryptdict.h +66 -0
  76. data/ext/include/hpdf_error.h +201 -0
  77. data/ext/include/hpdf_ext_gstate.h +38 -0
  78. data/ext/include/hpdf_font.h +112 -0
  79. data/ext/include/hpdf_fontdef.h +403 -0
  80. data/ext/include/hpdf_gstate.h +80 -0
  81. data/ext/include/hpdf_image.h +72 -0
  82. data/ext/include/hpdf_info.h +48 -0
  83. data/ext/include/hpdf_list.h +85 -0
  84. data/ext/include/hpdf_mmgr.h +82 -0
  85. data/ext/include/hpdf_objects.h +587 -0
  86. data/ext/include/hpdf_outline.h +74 -0
  87. data/ext/include/hpdf_page_label.h +35 -0
  88. data/ext/include/hpdf_pages.h +128 -0
  89. data/ext/include/hpdf_streams.h +276 -0
  90. data/ext/include/hpdf_types.h +488 -0
  91. data/ext/include/hpdf_utils.h +161 -0
  92. data/tests/arc_demo.rb +82 -0
  93. data/tests/demo.rb +91 -0
  94. data/tests/encryption.rb +41 -0
  95. data/tests/ext_gstater_demo.rb +171 -0
  96. data/tests/font_demo.rb +67 -0
  97. data/tests/line_demo.rb +301 -0
  98. data/tests/slide_show_demo.rb +139 -0
  99. data/tests/test_all_examples.rb +31 -0
  100. data/tests/text_demo2.rb +189 -0
  101. metadata +147 -0
@@ -0,0 +1,137 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.3 >> -- hpdf_doc_png.c
3
+ *
4
+ * Copyright (c) 1999-2006 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
5
+ *
6
+ * Permission to use, copy, modify, distribute and sell this software
7
+ * and its documentation for any purpose is hereby granted without fee,
8
+ * provided that the above copyright notice appear in all copies and
9
+ * that both that copyright notice and this permission notice appear
10
+ * in supporting documentation.
11
+ * It is provided "as is" without express or implied warranty.
12
+ *
13
+ */
14
+
15
+
16
+ #include "hpdf_conf.h"
17
+ #include "hpdf_utils.h"
18
+ #include "hpdf.h"
19
+ #include "hpdf_image.h"
20
+
21
+
22
+ static HPDF_Image
23
+ LoadPngImageFromStream (HPDF_Doc pdf,
24
+ HPDF_Stream imagedata,
25
+ HPDF_BOOL delayed_loading);
26
+
27
+
28
+ HPDF_EXPORT(HPDF_Image)
29
+ HPDF_LoadPngImageFromFile (HPDF_Doc pdf,
30
+ const char *filename)
31
+ {
32
+ HPDF_Stream imagedata;
33
+ HPDF_Image image;
34
+
35
+ HPDF_PTRACE ((" HPDF_LoadPngImageFromFile\n"));
36
+
37
+ if (!HPDF_HasDoc (pdf))
38
+ return NULL;
39
+
40
+ /* create file stream */
41
+ imagedata = HPDF_FileReader_New (pdf->mmgr, filename);
42
+
43
+ if (HPDF_Stream_Validate (imagedata))
44
+ image = LoadPngImageFromStream (pdf, imagedata, HPDF_FALSE);
45
+ else
46
+ image = NULL;
47
+
48
+ /* destroy file stream */
49
+ if (imagedata)
50
+ HPDF_Stream_Free (imagedata);
51
+
52
+ if (!image)
53
+ HPDF_CheckError (&pdf->error);
54
+
55
+ return image;
56
+ }
57
+
58
+ /* delaied loading version of HPDF_LoadPngImageFromFile */
59
+ HPDF_EXPORT(HPDF_Image)
60
+ HPDF_LoadPngImageFromFile2 (HPDF_Doc pdf,
61
+ const char *filename)
62
+ {
63
+ HPDF_Stream imagedata;
64
+ HPDF_Image image;
65
+ HPDF_String fname;
66
+
67
+ HPDF_PTRACE ((" HPDF_LoadPngImageFromFile\n"));
68
+
69
+ if (!HPDF_HasDoc (pdf))
70
+ return NULL;
71
+
72
+ /* check whether file name is valid or not. */
73
+ imagedata = HPDF_FileReader_New (pdf->mmgr, filename);
74
+
75
+ if (HPDF_Stream_Validate (imagedata))
76
+ image = LoadPngImageFromStream (pdf, imagedata, HPDF_TRUE);
77
+ else
78
+ image = NULL;
79
+
80
+ /* destroy file stream */
81
+ if (imagedata)
82
+ HPDF_Stream_Free (imagedata);
83
+
84
+ if (!image)
85
+ HPDF_CheckError (&pdf->error);
86
+
87
+ /* add file-name to image dictionary as a hidden entry.
88
+ * it is used when the image data is needed.
89
+ */
90
+ fname = HPDF_String_New (pdf->mmgr, filename, NULL);
91
+ if (!fname) {
92
+ HPDF_CheckError (&pdf->error);
93
+ return NULL;
94
+ }
95
+
96
+ fname->header.obj_id |= HPDF_OTYPE_HIDDEN;
97
+
98
+ if ((HPDF_Dict_Add (image, "_FILE_NAME", fname)) != HPDF_OK) {
99
+ HPDF_CheckError (&pdf->error);
100
+ return NULL;
101
+ }
102
+
103
+ return image;
104
+ }
105
+
106
+ #ifndef HPDF_NOPNGLIB
107
+ static HPDF_Image
108
+ LoadPngImageFromStream (HPDF_Doc pdf,
109
+ HPDF_Stream imagedata,
110
+ HPDF_BOOL delayed_loading)
111
+ {
112
+ HPDF_Image image;
113
+
114
+ HPDF_PTRACE ((" HPDF_LoadPngImageFromStream\n"));
115
+
116
+ image = HPDF_Image_LoadPngImage (pdf->mmgr, imagedata, pdf->xref,
117
+ delayed_loading);
118
+
119
+ if (image && (pdf->compression_mode & HPDF_COMP_IMAGE))
120
+ image->filter = HPDF_STREAM_FILTER_FLATE_DECODE;
121
+
122
+ return image;
123
+ }
124
+
125
+ #else
126
+ static HPDF_Image
127
+ LoadPngImageFromStream (HPDF_Doc pdf,
128
+ HPDF_Stream imagedata,
129
+ HPDF_BOOL delayed_loading)
130
+ {
131
+ HPDF_SetError (&pdf->error, HPDF_UNSUPPORTED_FUNC, 0);
132
+
133
+ return NULL;
134
+ }
135
+
136
+ #endif /* HPDF_NOPNGLIB */
137
+
@@ -0,0 +1,2991 @@
1
+ /*
2
+ * << Haru Free PDF Library 2.0.0 >> -- hpdf_encoder.c
3
+ *
4
+ * Copyright (c) 1999-2004 Takeshi Kanno <takeshi_kanno@est.hi-ho.ne.jp>
5
+ *
6
+ * Permission to use, copy, modify, distribute and sell this software
7
+ * and its documentation for any purpose is hereby granted without fee,
8
+ * provided that the above copyright notice appear in all copies and
9
+ * that both that copyright notice and this permission notice appear
10
+ * in supporting documentation.
11
+ * It is provided "as is" without express or implied warranty.
12
+ *
13
+ */
14
+
15
+ #include "hpdf_conf.h"
16
+ #include "hpdf_utils.h"
17
+ #include "hpdf_encoder.h"
18
+ #include "hpdf.h"
19
+
20
+ typedef struct _HPDF_UnicodeGryphPair {
21
+ HPDF_UNICODE unicode;
22
+ const char *gryph_name;
23
+ } HPDF_UnicodeGryphPair;
24
+
25
+ #define HPDF_BASIC_ENCODER_FIRST_CHAR 32
26
+ #define HPDF_BASIC_ENCODER_LAST_CHAR 255
27
+
28
+ static const HPDF_UnicodeGryphPair HPDF_UNICODE_GRYPH_NAME_MAP[] = {
29
+ {0x0000, char_NOTDEF},
30
+ {0x0020, "space"},
31
+ {0x0021, "exclam"},
32
+ {0x0022, "quotedbl"},
33
+ {0x0023, "numbersign"},
34
+ {0x0024, "dollar"},
35
+ {0x0025, "percent"},
36
+ {0x0026, "ampersand"},
37
+ {0x0027, "quotesingle"},
38
+ {0x0028, "parenleft"},
39
+ {0x0029, "parenright"},
40
+ {0x002A, "asterisk"},
41
+ {0x002B, "plus"},
42
+ {0x002C, "comma"},
43
+ {0x002D, "hyphen"},
44
+ {0x002E, "period"},
45
+ {0x002F, "slash"},
46
+ {0x0030, "zero"},
47
+ {0x0031, "one"},
48
+ {0x0032, "two"},
49
+ {0x0033, "three"},
50
+ {0x0034, "four"},
51
+ {0x0035, "five"},
52
+ {0x0036, "six"},
53
+ {0x0037, "seven"},
54
+ {0x0038, "eight"},
55
+ {0x0039, "nine"},
56
+ {0x003A, "colon"},
57
+ {0x003B, "semicolon"},
58
+ {0x003C, "less"},
59
+ {0x003D, "equal"},
60
+ {0x003E, "greater"},
61
+ {0x003F, "question"},
62
+ {0x0040, "at"},
63
+ {0x0041, "A"},
64
+ {0x0042, "B"},
65
+ {0x0043, "C"},
66
+ {0x0044, "D"},
67
+ {0x0045, "E"},
68
+ {0x0046, "F"},
69
+ {0x0047, "G"},
70
+ {0x0048, "H"},
71
+ {0x0049, "I"},
72
+ {0x004A, "J"},
73
+ {0x004B, "K"},
74
+ {0x004C, "L"},
75
+ {0x004D, "M"},
76
+ {0x004E, "N"},
77
+ {0x004F, "O"},
78
+ {0x0050, "P"},
79
+ {0x0051, "Q"},
80
+ {0x0052, "R"},
81
+ {0x0053, "S"},
82
+ {0x0054, "T"},
83
+ {0x0055, "U"},
84
+ {0x0056, "V"},
85
+ {0x0057, "W"},
86
+ {0x0058, "X"},
87
+ {0x0059, "Y"},
88
+ {0x005A, "Z"},
89
+ {0x005B, "bracketleft"},
90
+ {0x005C, "backslash"},
91
+ {0x005D, "bracketright"},
92
+ {0x005E, "asciicircum"},
93
+ {0x005F, "underscore"},
94
+ {0x0060, "grave"},
95
+ {0x0061, "a"},
96
+ {0x0062, "b"},
97
+ {0x0063, "c"},
98
+ {0x0064, "d"},
99
+ {0x0065, "e"},
100
+ {0x0066, "f"},
101
+ {0x0067, "g"},
102
+ {0x0068, "h"},
103
+ {0x0069, "i"},
104
+ {0x006A, "j"},
105
+ {0x006B, "k"},
106
+ {0x006C, "l"},
107
+ {0x006D, "m"},
108
+ {0x006E, "n"},
109
+ {0x006F, "o"},
110
+ {0x0070, "p"},
111
+ {0x0071, "q"},
112
+ {0x0072, "r"},
113
+ {0x0073, "s"},
114
+ {0x0074, "t"},
115
+ {0x0075, "u"},
116
+ {0x0076, "v"},
117
+ {0x0077, "w"},
118
+ {0x0078, "x"},
119
+ {0x0079, "y"},
120
+ {0x007A, "z"},
121
+ {0x007B, "braceleft"},
122
+ {0x007C, "bar"},
123
+ {0x007D, "braceright"},
124
+ {0x007E, "asciitilde"},
125
+ {0x00A0, "space"},
126
+ {0x00A1, "exclamdown"},
127
+ {0x00A2, "cent"},
128
+ {0x00A3, "sterling"},
129
+ {0x00A4, "currency"},
130
+ {0x00A5, "yen"},
131
+ {0x00A6, "brokenbar"},
132
+ {0x00A7, "section"},
133
+ {0x00A8, "dieresis"},
134
+ {0x00A9, "copyright"},
135
+ {0x00AA, "ordfeminine"},
136
+ {0x00AB, "guillemotleft"},
137
+ {0x00AC, "logicalnot"},
138
+ {0x00AD, "hyphen"},
139
+ {0x00AE, "registered"},
140
+ {0x00AF, "macron"},
141
+ {0x00B0, "degree"},
142
+ {0x00B1, "plusminus"},
143
+ {0x00B2, "twosuperior"},
144
+ {0x00B3, "threesuperior"},
145
+ {0x00B4, "acute"},
146
+ {0x00B5, "mu"},
147
+ {0x00B6, "paragraph"},
148
+ {0x00B7, "periodcentered"},
149
+ {0x00B8, "cedilla"},
150
+ {0x00B9, "onesuperior"},
151
+ {0x00BA, "ordmasculine"},
152
+ {0x00BB, "guillemotright"},
153
+ {0x00BC, "onequarter"},
154
+ {0x00BD, "onehalf"},
155
+ {0x00BE, "threequarters"},
156
+ {0x00BF, "questiondown"},
157
+ {0x00C0, "Agrave"},
158
+ {0x00C1, "Aacute"},
159
+ {0x00C2, "Acircumflex"},
160
+ {0x00C3, "Atilde"},
161
+ {0x00C4, "Adieresis"},
162
+ {0x00C5, "Aring"},
163
+ {0x00C6, "AE"},
164
+ {0x00C7, "Ccedilla"},
165
+ {0x00C8, "Egrave"},
166
+ {0x00C9, "Eacute"},
167
+ {0x00CA, "Ecircumflex"},
168
+ {0x00CB, "Edieresis"},
169
+ {0x00CC, "Igrave"},
170
+ {0x00CD, "Iacute"},
171
+ {0x00CE, "Icircumflex"},
172
+ {0x00CF, "Idieresis"},
173
+ {0x00D0, "Eth"},
174
+ {0x00D1, "Ntilde"},
175
+ {0x00D2, "Ograve"},
176
+ {0x00D3, "Oacute"},
177
+ {0x00D4, "Ocircumflex"},
178
+ {0x00D5, "Otilde"},
179
+ {0x00D6, "Odieresis"},
180
+ {0x00D7, "multiply"},
181
+ {0x00D8, "Oslash"},
182
+ {0x00D9, "Ugrave"},
183
+ {0x00DA, "Uacute"},
184
+ {0x00DB, "Ucircumflex"},
185
+ {0x00DC, "Udieresis"},
186
+ {0x00DD, "Yacute"},
187
+ {0x00DE, "Thorn"},
188
+ {0x00DF, "germandbls"},
189
+ {0x00E0, "agrave"},
190
+ {0x00E1, "aacute"},
191
+ {0x00E2, "acircumflex"},
192
+ {0x00E3, "atilde"},
193
+ {0x00E4, "adieresis"},
194
+ {0x00E5, "aring"},
195
+ {0x00E6, "ae"},
196
+ {0x00E7, "ccedilla"},
197
+ {0x00E8, "egrave"},
198
+ {0x00E9, "eacute"},
199
+ {0x00EA, "ecircumflex"},
200
+ {0x00EB, "edieresis"},
201
+ {0x00EC, "igrave"},
202
+ {0x00ED, "iacute"},
203
+ {0x00EE, "icircumflex"},
204
+ {0x00EF, "idieresis"},
205
+ {0x00F0, "eth"},
206
+ {0x00F1, "ntilde"},
207
+ {0x00F2, "ograve"},
208
+ {0x00F3, "oacute"},
209
+ {0x00F4, "ocircumflex"},
210
+ {0x00F5, "otilde"},
211
+ {0x00F6, "odieresis"},
212
+ {0x00F7, "divide"},
213
+ {0x00F8, "oslash"},
214
+ {0x00F9, "ugrave"},
215
+ {0x00FA, "uacute"},
216
+ {0x00FB, "ucircumflex"},
217
+ {0x00FC, "udieresis"},
218
+ {0x00FD, "yacute"},
219
+ {0x00FE, "thorn"},
220
+ {0x00FF, "ydieresis"},
221
+ {0x0100, "Amacron"},
222
+ {0x0101, "amacron"},
223
+ {0x0102, "Abreve"},
224
+ {0x0103, "abreve"},
225
+ {0x0104, "Aogonek"},
226
+ {0x0105, "aogonek"},
227
+ {0x0106, "Cacute"},
228
+ {0x0107, "cacute"},
229
+ {0x0108, "Ccircumflex"},
230
+ {0x0109, "ccircumflex"},
231
+ {0x010A, "Cdotaccent"},
232
+ {0x010B, "cdotaccent"},
233
+ {0x010C, "Ccaron"},
234
+ {0x010D, "ccaron"},
235
+ {0x010E, "Dcaron"},
236
+ {0x010F, "dcaron"},
237
+ {0x0110, "Dcroat"},
238
+ {0x0111, "dcroat"},
239
+ {0x0112, "Emacron"},
240
+ {0x0113, "emacron"},
241
+ {0x0114, "Ebreve"},
242
+ {0x0115, "ebreve"},
243
+ {0x0116, "Edotaccent"},
244
+ {0x0117, "edotaccent"},
245
+ {0x0118, "Eogonek"},
246
+ {0x0119, "eogonek"},
247
+ {0x011A, "Ecaron"},
248
+ {0x011B, "ecaron"},
249
+ {0x011C, "Gcircumflex"},
250
+ {0x011D, "gcircumflex"},
251
+ {0x011E, "Gbreve"},
252
+ {0x011F, "gbreve"},
253
+ {0x0120, "Gdotaccent"},
254
+ {0x0121, "gdotaccent"},
255
+ {0x0122, "Gcommaaccent"},
256
+ {0x0123, "gcommaaccent"},
257
+ {0x0124, "Hcircumflex"},
258
+ {0x0125, "hcircumflex"},
259
+ {0x0126, "Hbar"},
260
+ {0x0127, "hbar"},
261
+ {0x0128, "Itilde"},
262
+ {0x0129, "itilde"},
263
+ {0x012A, "Imacron"},
264
+ {0x012B, "imacron"},
265
+ {0x012C, "Ibreve"},
266
+ {0x012D, "ibreve"},
267
+ {0x012E, "Iogonek"},
268
+ {0x012F, "iogonek"},
269
+ {0x0130, "Idotaccent"},
270
+ {0x0131, "dotlessi"},
271
+ {0x0132, "IJ"},
272
+ {0x0133, "ij"},
273
+ {0x0134, "Jcircumflex"},
274
+ {0x0135, "jcircumflex"},
275
+ {0x0136, "Kcommaaccent"},
276
+ {0x0137, "kcommaaccent"},
277
+ {0x0138, "kgreenlandic"},
278
+ {0x0139, "Lacute"},
279
+ {0x013A, "lacute"},
280
+ {0x013B, "Lcommaaccent"},
281
+ {0x013C, "lcommaaccent"},
282
+ {0x013D, "Lcaron"},
283
+ {0x013E, "lcaron"},
284
+ {0x013F, "Ldot"},
285
+ {0x0140, "ldot"},
286
+ {0x0141, "Lslash"},
287
+ {0x0142, "lslash"},
288
+ {0x0143, "Nacute"},
289
+ {0x0144, "nacute"},
290
+ {0x0145, "Ncommaaccent"},
291
+ {0x0146, "ncommaaccent"},
292
+ {0x0147, "Ncaron"},
293
+ {0x0148, "ncaron"},
294
+ {0x0149, "napostrophe"},
295
+ {0x014A, "Eng"},
296
+ {0x014B, "eng"},
297
+ {0x014C, "Omacron"},
298
+ {0x014D, "omacron"},
299
+ {0x014E, "Obreve"},
300
+ {0x014F, "obreve"},
301
+ {0x0150, "Ohungarumlaut"},
302
+ {0x0151, "ohungarumlaut"},
303
+ {0x0152, "OE"},
304
+ {0x0153, "oe"},
305
+ {0x0154, "Racute"},
306
+ {0x0155, "racute"},
307
+ {0x0156, "Rcommaaccent"},
308
+ {0x0157, "rcommaaccent"},
309
+ {0x0158, "Rcaron"},
310
+ {0x0159, "rcaron"},
311
+ {0x015A, "Sacute"},
312
+ {0x015B, "sacute"},
313
+ {0x015C, "Scircumflex"},
314
+ {0x015D, "scircumflex"},
315
+ {0x015E, "Scedilla"},
316
+ {0x015F, "scedilla"},
317
+ {0x0160, "Scaron"},
318
+ {0x0161, "scaron"},
319
+ {0x0162, "Tcommaaccent"},
320
+ {0x0163, "tcommaaccent"},
321
+ {0x0164, "Tcaron"},
322
+ {0x0165, "tcaron"},
323
+ {0x0166, "Tbar"},
324
+ {0x0167, "tbar"},
325
+ {0x0168, "Utilde"},
326
+ {0x0169, "utilde"},
327
+ {0x016A, "Umacron"},
328
+ {0x016B, "umacron"},
329
+ {0x016C, "Ubreve"},
330
+ {0x016D, "ubreve"},
331
+ {0x016E, "Uring"},
332
+ {0x016F, "uring"},
333
+ {0x0170, "Uhungarumlaut"},
334
+ {0x0171, "uhungarumlaut"},
335
+ {0x0172, "Uogonek"},
336
+ {0x0173, "uogonek"},
337
+ {0x0174, "Wcircumflex"},
338
+ {0x0175, "wcircumflex"},
339
+ {0x0176, "Ycircumflex"},
340
+ {0x0177, "ycircumflex"},
341
+ {0x0178, "Ydieresis"},
342
+ {0x0179, "Zacute"},
343
+ {0x017A, "zacute"},
344
+ {0x017B, "Zdotaccent"},
345
+ {0x017C, "zdotaccent"},
346
+ {0x017D, "Zcaron"},
347
+ {0x017E, "zcaron"},
348
+ {0x017F, "longs"},
349
+ {0x0192, "florin"},
350
+ {0x01A0, "Ohorn"},
351
+ {0x01A1, "ohorn"},
352
+ {0x01AF, "Uhorn"},
353
+ {0x01B0, "uhorn"},
354
+ {0x01E6, "Gcaron"},
355
+ {0x01E7, "gcaron"},
356
+ {0x01FA, "Aringacute"},
357
+ {0x01FB, "aringacute"},
358
+ {0x01FC, "AEacute"},
359
+ {0x01FD, "aeacute"},
360
+ {0x01FE, "Oslashacute"},
361
+ {0x01FF, "oslashacute"},
362
+ {0x0218, "Scommaaccent"},
363
+ {0x0219, "scommaaccent"},
364
+ {0x021A, "Tcommaaccent"},
365
+ {0x021B, "tcommaaccent"},
366
+ {0x02BC, "afii57929"},
367
+ {0x02BD, "afii64937"},
368
+ {0x02C6, "circumflex"},
369
+ {0x02C7, "caron"},
370
+ {0x02C9, "macron"},
371
+ {0x02D8, "breve"},
372
+ {0x02D9, "dotaccent"},
373
+ {0x02DA, "ring"},
374
+ {0x02DB, "ogonek"},
375
+ {0x02DC, "tilde"},
376
+ {0x02DD, "hungarumlaut"},
377
+ {0x0300, "gravecomb"},
378
+ {0x0301, "acutecomb"},
379
+ {0x0303, "tildecomb"},
380
+ {0x0309, "hookabovecomb"},
381
+ {0x0323, "dotbelowcomb"},
382
+ {0x0384, "tonos"},
383
+ {0x0385, "dieresistonos"},
384
+ {0x0386, "Alphatonos"},
385
+ {0x0387, "anoteleia"},
386
+ {0x0388, "Epsilontonos"},
387
+ {0x0389, "Etatonos"},
388
+ {0x038A, "Iotatonos"},
389
+ {0x038C, "Omicrontonos"},
390
+ {0x038E, "Upsilontonos"},
391
+ {0x038F, "Omegatonos"},
392
+ {0x0390, "iotadieresistonos"},
393
+ {0x0391, "Alpha"},
394
+ {0x0392, "Beta"},
395
+ {0x0393, "Gamma"},
396
+ {0x0394, "Delta"},
397
+ {0x0395, "Epsilon"},
398
+ {0x0396, "Zeta"},
399
+ {0x0397, "Eta"},
400
+ {0x0398, "Theta"},
401
+ {0x0399, "Iota"},
402
+ {0x039A, "Kappa"},
403
+ {0x039B, "Lambda"},
404
+ {0x039C, "Mu"},
405
+ {0x039D, "Nu"},
406
+ {0x039E, "Xi"},
407
+ {0x039F, "Omicron"},
408
+ {0x03A0, "Pi"},
409
+ {0x03A1, "Rho"},
410
+ {0x03A3, "Sigma"},
411
+ {0x03A4, "Tau"},
412
+ {0x03A5, "Upsilon"},
413
+ {0x03A6, "Phi"},
414
+ {0x03A7, "Chi"},
415
+ {0x03A8, "Psi"},
416
+ {0x03A9, "Omega"},
417
+ {0x03AA, "Iotadieresis"},
418
+ {0x03AB, "Upsilondieresis"},
419
+ {0x03AC, "alphatonos"},
420
+ {0x03AD, "epsilontonos"},
421
+ {0x03AE, "etatonos"},
422
+ {0x03AF, "iotatonos"},
423
+ {0x03B0, "upsilondieresistonos"},
424
+ {0x03B1, "alpha"},
425
+ {0x03B2, "beta"},
426
+ {0x03B3, "gamma"},
427
+ {0x03B4, "delta"},
428
+ {0x03B5, "epsilon"},
429
+ {0x03B6, "zeta"},
430
+ {0x03B7, "eta"},
431
+ {0x03B8, "theta"},
432
+ {0x03B9, "iota"},
433
+ {0x03BA, "kappa"},
434
+ {0x03BB, "lambda"},
435
+ {0x03BC, "mu"},
436
+ {0x03BD, "nu"},
437
+ {0x03BE, "xi"},
438
+ {0x03BF, "omicron"},
439
+ {0x03C0, "pi"},
440
+ {0x03C1, "rho"},
441
+ {0x03C2, "sigma1"},
442
+ {0x03C3, "sigma"},
443
+ {0x03C4, "tau"},
444
+ {0x03C5, "upsilon"},
445
+ {0x03C6, "phi"},
446
+ {0x03C7, "chi"},
447
+ {0x03C8, "psi"},
448
+ {0x03C9, "omega"},
449
+ {0x03CA, "iotadieresis"},
450
+ {0x03CB, "upsilondieresis"},
451
+ {0x03CC, "omicrontonos"},
452
+ {0x03CD, "upsilontonos"},
453
+ {0x03CE, "omegatonos"},
454
+ {0x03D1, "theta1"},
455
+ {0x03D2, "Upsilon1"},
456
+ {0x03D5, "phi1"},
457
+ {0x03D6, "omega1"},
458
+ {0x0401, "afii10023"},
459
+ {0x0402, "afii10051"},
460
+ {0x0403, "afii10052"},
461
+ {0x0404, "afii10053"},
462
+ {0x0405, "afii10054"},
463
+ {0x0406, "afii10055"},
464
+ {0x0407, "afii10056"},
465
+ {0x0408, "afii10057"},
466
+ {0x0409, "afii10058"},
467
+ {0x040A, "afii10059"},
468
+ {0x040B, "afii10060"},
469
+ {0x040C, "afii10061"},
470
+ {0x040E, "afii10062"},
471
+ {0x040F, "afii10145"},
472
+ {0x0410, "afii10017"},
473
+ {0x0411, "afii10018"},
474
+ {0x0412, "afii10019"},
475
+ {0x0413, "afii10020"},
476
+ {0x0414, "afii10021"},
477
+ {0x0415, "afii10022"},
478
+ {0x0416, "afii10024"},
479
+ {0x0417, "afii10025"},
480
+ {0x0418, "afii10026"},
481
+ {0x0419, "afii10027"},
482
+ {0x041A, "afii10028"},
483
+ {0x041B, "afii10029"},
484
+ {0x041C, "afii10030"},
485
+ {0x041D, "afii10031"},
486
+ {0x041E, "afii10032"},
487
+ {0x041F, "afii10033"},
488
+ {0x0420, "afii10034"},
489
+ {0x0421, "afii10035"},
490
+ {0x0422, "afii10036"},
491
+ {0x0423, "afii10037"},
492
+ {0x0424, "afii10038"},
493
+ {0x0425, "afii10039"},
494
+ {0x0426, "afii10040"},
495
+ {0x0427, "afii10041"},
496
+ {0x0428, "afii10042"},
497
+ {0x0429, "afii10043"},
498
+ {0x042A, "afii10044"},
499
+ {0x042B, "afii10045"},
500
+ {0x042C, "afii10046"},
501
+ {0x042D, "afii10047"},
502
+ {0x042E, "afii10048"},
503
+ {0x042F, "afii10049"},
504
+ {0x0430, "afii10065"},
505
+ {0x0431, "afii10066"},
506
+ {0x0432, "afii10067"},
507
+ {0x0433, "afii10068"},
508
+ {0x0434, "afii10069"},
509
+ {0x0435, "afii10070"},
510
+ {0x0436, "afii10072"},
511
+ {0x0437, "afii10073"},
512
+ {0x0438, "afii10074"},
513
+ {0x0439, "afii10075"},
514
+ {0x043A, "afii10076"},
515
+ {0x043B, "afii10077"},
516
+ {0x043C, "afii10078"},
517
+ {0x043D, "afii10079"},
518
+ {0x043E, "afii10080"},
519
+ {0x043F, "afii10081"},
520
+ {0x0440, "afii10082"},
521
+ {0x0441, "afii10083"},
522
+ {0x0442, "afii10084"},
523
+ {0x0443, "afii10085"},
524
+ {0x0444, "afii10086"},
525
+ {0x0445, "afii10087"},
526
+ {0x0446, "afii10088"},
527
+ {0x0447, "afii10089"},
528
+ {0x0448, "afii10090"},
529
+ {0x0449, "afii10091"},
530
+ {0x044A, "afii10092"},
531
+ {0x044B, "afii10093"},
532
+ {0x044C, "afii10094"},
533
+ {0x044D, "afii10095"},
534
+ {0x044E, "afii10096"},
535
+ {0x044F, "afii10097"},
536
+ {0x0451, "afii10071"},
537
+ {0x0452, "afii10099"},
538
+ {0x0453, "afii10100"},
539
+ {0x0454, "afii10101"},
540
+ {0x0455, "afii10102"},
541
+ {0x0456, "afii10103"},
542
+ {0x0457, "afii10104"},
543
+ {0x0458, "afii10105"},
544
+ {0x0459, "afii10106"},
545
+ {0x045A, "afii10107"},
546
+ {0x045B, "afii10108"},
547
+ {0x045C, "afii10109"},
548
+ {0x045E, "afii10110"},
549
+ {0x045F, "afii10193"},
550
+ {0x0462, "afii10146"},
551
+ {0x0463, "afii10194"},
552
+ {0x0472, "afii10147"},
553
+ {0x0473, "afii10195"},
554
+ {0x0474, "afii10148"},
555
+ {0x0475, "afii10196"},
556
+ {0x0490, "afii10050"},
557
+ {0x0491, "afii10098"},
558
+ {0x04D9, "afii10846"},
559
+ {0x05B0, "afii57799"},
560
+ {0x05B1, "afii57801"},
561
+ {0x05B2, "afii57800"},
562
+ {0x05B3, "afii57802"},
563
+ {0x05B4, "afii57793"},
564
+ {0x05B5, "afii57794"},
565
+ {0x05B6, "afii57795"},
566
+ {0x05B7, "afii57798"},
567
+ {0x05B8, "afii57797"},
568
+ {0x05B9, "afii57806"},
569
+ {0x05BB, "afii57796"},
570
+ {0x05BC, "afii57807"},
571
+ {0x05BD, "afii57839"},
572
+ {0x05BE, "afii57645"},
573
+ {0x05BF, "afii57841"},
574
+ {0x05C0, "afii57842"},
575
+ {0x05C1, "afii57804"},
576
+ {0x05C2, "afii57803"},
577
+ {0x05C3, "afii57658"},
578
+ {0x05D0, "afii57664"},
579
+ {0x05D1, "afii57665"},
580
+ {0x05D2, "afii57666"},
581
+ {0x05D3, "afii57667"},
582
+ {0x05D4, "afii57668"},
583
+ {0x05D5, "afii57669"},
584
+ {0x05D6, "afii57670"},
585
+ {0x05D7, "afii57671"},
586
+ {0x05D8, "afii57672"},
587
+ {0x05D9, "afii57673"},
588
+ {0x05DA, "afii57674"},
589
+ {0x05DB, "afii57675"},
590
+ {0x05DC, "afii57676"},
591
+ {0x05DD, "afii57677"},
592
+ {0x05DE, "afii57678"},
593
+ {0x05DF, "afii57679"},
594
+ {0x05E0, "afii57680"},
595
+ {0x05E1, "afii57681"},
596
+ {0x05E2, "afii57682"},
597
+ {0x05E3, "afii57683"},
598
+ {0x05E4, "afii57684"},
599
+ {0x05E5, "afii57685"},
600
+ {0x05E6, "afii57686"},
601
+ {0x05E7, "afii57687"},
602
+ {0x05E8, "afii57688"},
603
+ {0x05E9, "afii57689"},
604
+ {0x05EA, "afii57690"},
605
+ {0x05F0, "afii57716"},
606
+ {0x05F1, "afii57717"},
607
+ {0x05F2, "afii57718"},
608
+ {0x060C, "afii57388"},
609
+ {0x061B, "afii57403"},
610
+ {0x061F, "afii57407"},
611
+ {0x0621, "afii57409"},
612
+ {0x0622, "afii57410"},
613
+ {0x0623, "afii57411"},
614
+ {0x0624, "afii57412"},
615
+ {0x0625, "afii57413"},
616
+ {0x0626, "afii57414"},
617
+ {0x0627, "afii57415"},
618
+ {0x0628, "afii57416"},
619
+ {0x0629, "afii57417"},
620
+ {0x062A, "afii57418"},
621
+ {0x062B, "afii57419"},
622
+ {0x062C, "afii57420"},
623
+ {0x062D, "afii57421"},
624
+ {0x062E, "afii57422"},
625
+ {0x062F, "afii57423"},
626
+ {0x0630, "afii57424"},
627
+ {0x0631, "afii57425"},
628
+ {0x0632, "afii57426"},
629
+ {0x0633, "afii57427"},
630
+ {0x0634, "afii57428"},
631
+ {0x0635, "afii57429"},
632
+ {0x0636, "afii57430"},
633
+ {0x0637, "afii57431"},
634
+ {0x0638, "afii57432"},
635
+ {0x0639, "afii57433"},
636
+ {0x063A, "afii57434"},
637
+ {0x0640, "afii57440"},
638
+ {0x0641, "afii57441"},
639
+ {0x0642, "afii57442"},
640
+ {0x0643, "afii57443"},
641
+ {0x0644, "afii57444"},
642
+ {0x0645, "afii57445"},
643
+ {0x0646, "afii57446"},
644
+ {0x0647, "afii57470"},
645
+ {0x0648, "afii57448"},
646
+ {0x0649, "afii57449"},
647
+ {0x064A, "afii57450"},
648
+ {0x064B, "afii57451"},
649
+ {0x064C, "afii57452"},
650
+ {0x064D, "afii57453"},
651
+ {0x064E, "afii57454"},
652
+ {0x064F, "afii57455"},
653
+ {0x0650, "afii57456"},
654
+ {0x0651, "afii57457"},
655
+ {0x0652, "afii57458"},
656
+ {0x0660, "afii57392"},
657
+ {0x0661, "afii57393"},
658
+ {0x0662, "afii57394"},
659
+ {0x0663, "afii57395"},
660
+ {0x0664, "afii57396"},
661
+ {0x0665, "afii57397"},
662
+ {0x0666, "afii57398"},
663
+ {0x0667, "afii57399"},
664
+ {0x0668, "afii57400"},
665
+ {0x0669, "afii57401"},
666
+ {0x066A, "afii57381"},
667
+ {0x066D, "afii63167"},
668
+ {0x0679, "afii57511"},
669
+ {0x067E, "afii57506"},
670
+ {0x0686, "afii57507"},
671
+ {0x0688, "afii57512"},
672
+ {0x0691, "afii57513"},
673
+ {0x0698, "afii57508"},
674
+ {0x06A4, "afii57505"},
675
+ {0x06AF, "afii57509"},
676
+ {0x06BA, "afii57514"},
677
+ {0x06D2, "afii57519"},
678
+ {0x06D5, "afii57534"},
679
+ {0x1E80, "Wgrave"},
680
+ {0x1E81, "wgrave"},
681
+ {0x1E82, "Wacute"},
682
+ {0x1E83, "wacute"},
683
+ {0x1E84, "Wdieresis"},
684
+ {0x1E85, "wdieresis"},
685
+ {0x1EF2, "Ygrave"},
686
+ {0x1EF3, "ygrave"},
687
+ {0x200C, "afii61664"},
688
+ {0x200D, "afii301"},
689
+ {0x200E, "afii299"},
690
+ {0x200F, "afii300"},
691
+ {0x2012, "figuredash"},
692
+ {0x2013, "endash"},
693
+ {0x2014, "emdash"},
694
+ {0x2015, "afii00208"},
695
+ {0x2017, "underscoredbl"},
696
+ {0x2018, "quoteleft"},
697
+ {0x2019, "quoteright"},
698
+ {0x201A, "quotesinglbase"},
699
+ {0x201B, "quotereversed"},
700
+ {0x201C, "quotedblleft"},
701
+ {0x201D, "quotedblright"},
702
+ {0x201E, "quotedblbase"},
703
+ {0x2020, "dagger"},
704
+ {0x2021, "daggerdbl"},
705
+ {0x2022, "bullet"},
706
+ {0x2024, "onedotenleader"},
707
+ {0x2025, "twodotenleader"},
708
+ {0x2026, "ellipsis"},
709
+ {0x202C, "afii61573"},
710
+ {0x202D, "afii61574"},
711
+ {0x202E, "afii61575"},
712
+ {0x2030, "perthousand"},
713
+ {0x2032, "minute"},
714
+ {0x2033, "second"},
715
+ {0x2039, "guilsinglleft"},
716
+ {0x203A, "guilsinglright"},
717
+ {0x203C, "exclamdbl"},
718
+ {0x2044, "fraction"},
719
+ {0x2070, "zerosuperior"},
720
+ {0x2074, "foursuperior"},
721
+ {0x2075, "fivesuperior"},
722
+ {0x2076, "sixsuperior"},
723
+ {0x2077, "sevensuperior"},
724
+ {0x2078, "eightsuperior"},
725
+ {0x2079, "ninesuperior"},
726
+ {0x207D, "parenleftsuperior"},
727
+ {0x207E, "parenrightsuperior"},
728
+ {0x207F, "nsuperior"},
729
+ {0x2080, "zeroinferior"},
730
+ {0x2081, "oneinferior"},
731
+ {0x2082, "twoinferior"},
732
+ {0x2083, "threeinferior"},
733
+ {0x2084, "fourinferior"},
734
+ {0x2085, "fiveinferior"},
735
+ {0x2086, "sixinferior"},
736
+ {0x2087, "seveninferior"},
737
+ {0x2088, "eightinferior"},
738
+ {0x2089, "nineinferior"},
739
+ {0x208D, "parenleftinferior"},
740
+ {0x208E, "parenrightinferior"},
741
+ {0x20A1, "colonmonetary"},
742
+ {0x20A3, "franc"},
743
+ {0x20A4, "lira"},
744
+ {0x20A7, "peseta"},
745
+ {0x20AA, "afii57636"},
746
+ {0x20AB, "dong"},
747
+ {0x20AC, "Euro"},
748
+ {0x2105, "afii61248"},
749
+ {0x2111, "Ifraktur"},
750
+ {0x2113, "afii61289"},
751
+ {0x2116, "afii61352"},
752
+ {0x2118, "weierstrass"},
753
+ {0x211C, "Rfraktur"},
754
+ {0x211E, "prescription"},
755
+ {0x2122, "trademark"},
756
+ {0x2126, "Omega"},
757
+ {0x212E, "estimated"},
758
+ {0x2135, "aleph"},
759
+ {0x2153, "onethird"},
760
+ {0x2154, "twothirds"},
761
+ {0x215B, "oneeighth"},
762
+ {0x215C, "threeeighths"},
763
+ {0x215D, "fiveeighths"},
764
+ {0x215E, "seveneighths"},
765
+ {0x2190, "arrowleft"},
766
+ {0x2191, "arrowup"},
767
+ {0x2192, "arrowright"},
768
+ {0x2193, "arrowdown"},
769
+ {0x2194, "arrowboth"},
770
+ {0x2195, "arrowupdn"},
771
+ {0x21A8, "arrowupdnbse"},
772
+ {0x21B5, "carriagereturn"},
773
+ {0x21D0, "arrowdblleft"},
774
+ {0x21D1, "arrowdblup"},
775
+ {0x21D2, "arrowdblright"},
776
+ {0x21D3, "arrowdbldown"},
777
+ {0x21D4, "arrowdblboth"},
778
+ {0x2200, "universal"},
779
+ {0x2202, "partialdiff"},
780
+ {0x2203, "existential"},
781
+ {0x2205, "emptyset"},
782
+ {0x2206, "Delta"},
783
+ {0x2207, "gradient"},
784
+ {0x2208, "element"},
785
+ {0x2209, "notelement"},
786
+ {0x220B, "suchthat"},
787
+ {0x220F, "product"},
788
+ {0x2211, "summation"},
789
+ {0x2212, "minus"},
790
+ {0x2215, "fraction"},
791
+ {0x2217, "asteriskmath"},
792
+ {0x2219, "periodcentered"},
793
+ {0x221A, "radical"},
794
+ {0x221D, "proportional"},
795
+ {0x221E, "infinity"},
796
+ {0x221F, "orthogonal"},
797
+ {0x2220, "angle"},
798
+ {0x2227, "logicaland"},
799
+ {0x2228, "logicalor"},
800
+ {0x2229, "intersection"},
801
+ {0x222A, "union"},
802
+ {0x222B, "integral"},
803
+ {0x2234, "therefore"},
804
+ {0x223C, "similar"},
805
+ {0x2245, "congruent"},
806
+ {0x2248, "approxequal"},
807
+ {0x2260, "notequal"},
808
+ {0x2261, "equivalence"},
809
+ {0x2264, "lessequal"},
810
+ {0x2265, "greaterequal"},
811
+ {0x2282, "propersubset"},
812
+ {0x2283, "propersuperset"},
813
+ {0x2284, "notsubset"},
814
+ {0x2286, "reflexsubset"},
815
+ {0x2287, "reflexsuperset"},
816
+ {0x2295, "circleplus"},
817
+ {0x2297, "circlemultiply"},
818
+ {0x22A5, "perpendicular"},
819
+ {0x22C5, "dotmath"},
820
+ {0x2302, "house"},
821
+ {0x2310, "revlogicalnot"},
822
+ {0x2320, "integraltp"},
823
+ {0x2321, "integralbt"},
824
+ {0x2329, "angleleft"},
825
+ {0x232A, "angleright"},
826
+ {0x2500, "SF100000"},
827
+ {0x2502, "SF110000"},
828
+ {0x250C, "SF010000"},
829
+ {0x2510, "SF030000"},
830
+ {0x2514, "SF020000"},
831
+ {0x2518, "SF040000"},
832
+ {0x251C, "SF080000"},
833
+ {0x2524, "SF090000"},
834
+ {0x252C, "SF060000"},
835
+ {0x2534, "SF070000"},
836
+ {0x253C, "SF050000"},
837
+ {0x2550, "SF430000"},
838
+ {0x2551, "SF240000"},
839
+ {0x2552, "SF510000"},
840
+ {0x2553, "SF520000"},
841
+ {0x2554, "SF390000"},
842
+ {0x2555, "SF220000"},
843
+ {0x2556, "SF210000"},
844
+ {0x2557, "SF250000"},
845
+ {0x2558, "SF500000"},
846
+ {0x2559, "SF490000"},
847
+ {0x255A, "SF380000"},
848
+ {0x255B, "SF280000"},
849
+ {0x255C, "SF270000"},
850
+ {0x255D, "SF260000"},
851
+ {0x255E, "SF360000"},
852
+ {0x255F, "SF370000"},
853
+ {0x2560, "SF420000"},
854
+ {0x2561, "SF190000"},
855
+ {0x2562, "SF200000"},
856
+ {0x2563, "SF230000"},
857
+ {0x2564, "SF470000"},
858
+ {0x2565, "SF480000"},
859
+ {0x2566, "SF410000"},
860
+ {0x2567, "SF450000"},
861
+ {0x2568, "SF460000"},
862
+ {0x2569, "SF400000"},
863
+ {0x256A, "SF540000"},
864
+ {0x256B, "SF530000"},
865
+ {0x256C, "SF440000"},
866
+ {0x2580, "upblock"},
867
+ {0x2584, "dnblock"},
868
+ {0x2588, "block"},
869
+ {0x258C, "lfblock"},
870
+ {0x2590, "rtblock"},
871
+ {0x2591, "ltshade"},
872
+ {0x2592, "shade"},
873
+ {0x2593, "dkshade"},
874
+ {0x25A0, "filledbox"},
875
+ {0x25A1, "H22073"},
876
+ {0x25AA, "H18543"},
877
+ {0x25AB, "H18551"},
878
+ {0x25AC, "filledrect"},
879
+ {0x25B2, "triagup"},
880
+ {0x25BA, "triagrt"},
881
+ {0x25BC, "triagdn"},
882
+ {0x25C4, "triaglf"},
883
+ {0x25CA, "lozenge"},
884
+ {0x25CB, "circle"},
885
+ {0x25CF, "H18533"},
886
+ {0x25D8, "invbullet"},
887
+ {0x25D9, "invcircle"},
888
+ {0x25E6, "openbullet"},
889
+ {0x263A, "smileface"},
890
+ {0x263B, "invsmileface"},
891
+ {0x263C, "sun"},
892
+ {0x2640, "female"},
893
+ {0x2642, "male"},
894
+ {0x2660, "spade"},
895
+ {0x2663, "club"},
896
+ {0x2665, "heart"},
897
+ {0x2666, "diamond"},
898
+ {0x266A, "musicalnote"},
899
+ {0x266B, "musicalnotedbl"},
900
+ {0xF6BE, "dotlessj"},
901
+ {0xF6BF, "LL"},
902
+ {0xF6C0, "ll"},
903
+ {0xF6C1, "Scedilla"},
904
+ {0xF6C2, "scedilla"},
905
+ {0xF6C3, "commaaccent"},
906
+ {0xF6C4, "afii10063"},
907
+ {0xF6C5, "afii10064"},
908
+ {0xF6C6, "afii10192"},
909
+ {0xF6C7, "afii10831"},
910
+ {0xF6C8, "afii10832"},
911
+ {0xF6C9, "Acute"},
912
+ {0xF6CA, "Caron"},
913
+ {0xF6CB, "Dieresis"},
914
+ {0xF6CC, "DieresisAcute"},
915
+ {0xF6CD, "DieresisGrave"},
916
+ {0xF6CE, "Grave"},
917
+ {0xF6CF, "Hungarumlaut"},
918
+ {0xF6D0, "Macron"},
919
+ {0xF6D1, "cyrBreve"},
920
+ {0xF6D2, "cyrFlex"},
921
+ {0xF6D3, "dblGrave"},
922
+ {0xF6D4, "cyrbreve"},
923
+ {0xF6D5, "cyrflex"},
924
+ {0xF6D6, "dblgrave"},
925
+ {0xF6D7, "dieresisacute"},
926
+ {0xF6D8, "dieresisgrave"},
927
+ {0xF6D9, "copyrightserif"},
928
+ {0xF6DA, "registerserif"},
929
+ {0xF6DB, "trademarkserif"},
930
+ {0xF6DC, "onefitted"},
931
+ {0xF6DD, "rupiah"},
932
+ {0xF6DE, "threequartersemdash"},
933
+ {0xF6DF, "centinferior"},
934
+ {0xF6E0, "centsuperior"},
935
+ {0xF6E1, "commainferior"},
936
+ {0xF6E2, "commasuperior"},
937
+ {0xF6E3, "dollarinferior"},
938
+ {0xF6E4, "dollarsuperior"},
939
+ {0xF6E5, "hypheninferior"},
940
+ {0xF6E6, "hyphensuperior"},
941
+ {0xF6E7, "periodinferior"},
942
+ {0xF6E8, "periodsuperior"},
943
+ {0xF6E9, "asuperior"},
944
+ {0xF6EA, "bsuperior"},
945
+ {0xF6EB, "dsuperior"},
946
+ {0xF6EC, "esuperior"},
947
+ {0xF6ED, "isuperior"},
948
+ {0xF6EE, "lsuperior"},
949
+ {0xF6EF, "msuperior"},
950
+ {0xF6F0, "osuperior"},
951
+ {0xF6F1, "rsuperior"},
952
+ {0xF6F2, "ssuperior"},
953
+ {0xF6F3, "tsuperior"},
954
+ {0xF6F4, "Brevesmall"},
955
+ {0xF6F5, "Caronsmall"},
956
+ {0xF6F6, "Circumflexsmall"},
957
+ {0xF6F7, "Dotaccentsmall"},
958
+ {0xF6F8, "Hungarumlautsmall"},
959
+ {0xF6F9, "Lslashsmall"},
960
+ {0xF6FA, "OEsmall"},
961
+ {0xF6FB, "Ogoneksmall"},
962
+ {0xF6FC, "Ringsmall"},
963
+ {0xF6FD, "Scaronsmall"},
964
+ {0xF6FE, "Tildesmall"},
965
+ {0xF6FF, "Zcaronsmall"},
966
+ {0xF721, "exclamsmall"},
967
+ {0xF724, "dollaroldstyle"},
968
+ {0xF726, "ampersandsmall"},
969
+ {0xF730, "zerooldstyle"},
970
+ {0xF731, "oneoldstyle"},
971
+ {0xF732, "twooldstyle"},
972
+ {0xF733, "threeoldstyle"},
973
+ {0xF734, "fouroldstyle"},
974
+ {0xF735, "fiveoldstyle"},
975
+ {0xF736, "sixoldstyle"},
976
+ {0xF737, "sevenoldstyle"},
977
+ {0xF738, "eightoldstyle"},
978
+ {0xF739, "nineoldstyle"},
979
+ {0xF73F, "questionsmall"},
980
+ {0xF760, "Gravesmall"},
981
+ {0xF761, "Asmall"},
982
+ {0xF762, "Bsmall"},
983
+ {0xF763, "Csmall"},
984
+ {0xF764, "Dsmall"},
985
+ {0xF765, "Esmall"},
986
+ {0xF766, "Fsmall"},
987
+ {0xF767, "Gsmall"},
988
+ {0xF768, "Hsmall"},
989
+ {0xF769, "Ismall"},
990
+ {0xF76A, "Jsmall"},
991
+ {0xF76B, "Ksmall"},
992
+ {0xF76C, "Lsmall"},
993
+ {0xF76D, "Msmall"},
994
+ {0xF76E, "Nsmall"},
995
+ {0xF76F, "Osmall"},
996
+ {0xF770, "Psmall"},
997
+ {0xF771, "Qsmall"},
998
+ {0xF772, "Rsmall"},
999
+ {0xF773, "Ssmall"},
1000
+ {0xF774, "Tsmall"},
1001
+ {0xF775, "Usmall"},
1002
+ {0xF776, "Vsmall"},
1003
+ {0xF777, "Wsmall"},
1004
+ {0xF778, "Xsmall"},
1005
+ {0xF779, "Ysmall"},
1006
+ {0xF77A, "Zsmall"},
1007
+ {0xF7A1, "exclamdownsmall"},
1008
+ {0xF7A2, "centoldstyle"},
1009
+ {0xF7A8, "Dieresissmall"},
1010
+ {0xF7AF, "Macronsmall"},
1011
+ {0xF7B4, "Acutesmall"},
1012
+ {0xF7B8, "Cedillasmall"},
1013
+ {0xF7BF, "questiondownsmall"},
1014
+ {0xF7E0, "Agravesmall"},
1015
+ {0xF7E1, "Aacutesmall"},
1016
+ {0xF7E2, "Acircumflexsmall"},
1017
+ {0xF7E3, "Atildesmall"},
1018
+ {0xF7E4, "Adieresissmall"},
1019
+ {0xF7E5, "Aringsmall"},
1020
+ {0xF7E6, "AEsmall"},
1021
+ {0xF7E7, "Ccedillasmall"},
1022
+ {0xF7E8, "Egravesmall"},
1023
+ {0xF7E9, "Eacutesmall"},
1024
+ {0xF7EA, "Ecircumflexsmall"},
1025
+ {0xF7EB, "Edieresissmall"},
1026
+ {0xF7EC, "Igravesmall"},
1027
+ {0xF7ED, "Iacutesmall"},
1028
+ {0xF7EE, "Icircumflexsmall"},
1029
+ {0xF7EF, "Idieresissmall"},
1030
+ {0xF7F0, "Ethsmall"},
1031
+ {0xF7F1, "Ntildesmall"},
1032
+ {0xF7F2, "Ogravesmall"},
1033
+ {0xF7F3, "Oacutesmall"},
1034
+ {0xF7F4, "Ocircumflexsmall"},
1035
+ {0xF7F5, "Otildesmall"},
1036
+ {0xF7F6, "Odieresissmall"},
1037
+ {0xF7F8, "Oslashsmall"},
1038
+ {0xF7F9, "Ugravesmall"},
1039
+ {0xF7FA, "Uacutesmall"},
1040
+ {0xF7FB, "Ucircumflexsmall"},
1041
+ {0xF7FC, "Udieresissmall"},
1042
+ {0xF7FD, "Yacutesmall"},
1043
+ {0xF7FE, "Thornsmall"},
1044
+ {0xF7FF, "Ydieresissmall"},
1045
+ {0xF8E5, "radicalex"},
1046
+ {0xF8E6, "arrowvertex"},
1047
+ {0xF8E7, "arrowhorizex"},
1048
+ {0xF8E8, "registersans"},
1049
+ {0xF8E9, "copyrightsans"},
1050
+ {0xF8EA, "trademarksans"},
1051
+ {0xF8EB, "parenlefttp"},
1052
+ {0xF8EC, "parenleftex"},
1053
+ {0xF8ED, "parenleftbt"},
1054
+ {0xF8EE, "bracketlefttp"},
1055
+ {0xF8EF, "bracketleftex"},
1056
+ {0xF8F0, "bracketleftbt"},
1057
+ {0xF8F1, "bracelefttp"},
1058
+ {0xF8F2, "braceleftmid"},
1059
+ {0xF8F3, "braceleftbt"},
1060
+ {0xF8F4, "braceex"},
1061
+ {0xF8F5, "integralex"},
1062
+ {0xF8F6, "parenrighttp"},
1063
+ {0xF8F7, "parenrightex"},
1064
+ {0xF8F8, "parenrightbt"},
1065
+ {0xF8F9, "bracketrighttp"},
1066
+ {0xF8FA, "bracketrightex"},
1067
+ {0xF8FB, "bracketrightbt"},
1068
+ {0xF8FC, "bracerighttp"},
1069
+ {0xF8FD, "bracerightmid"},
1070
+ {0xF8FE, "bracerightbt"},
1071
+ {0xFB00, "ff"},
1072
+ {0xFB01, "fi"},
1073
+ {0xFB02, "fl"},
1074
+ {0xFB03, "ffi"},
1075
+ {0xFB04, "ffl"},
1076
+ {0xFB1F, "afii57705"},
1077
+ {0xFB2A, "afii57694"},
1078
+ {0xFB2B, "afii57695"},
1079
+ {0xFB35, "afii57723"},
1080
+ {0xFB4B, "afii57700"},
1081
+ {0xFFFF, NULL}
1082
+ };
1083
+
1084
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_STANDARD[] = {
1085
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x2019,
1086
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1087
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1088
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1089
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1090
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1091
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1092
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1093
+ 0x2018, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1094
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1095
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1096
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x0000,
1097
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x00D1, 0x0000, 0x0000, 0x0000,
1098
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1099
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1100
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1101
+ 0x0000, 0x00A1, 0x00A2, 0x00A3, 0x2044, 0x00A5, 0x0192, 0x00A7,
1102
+ 0x00A4, 0x0027, 0x201C, 0x00AB, 0x2039, 0x203A, 0xFB01, 0xFB02,
1103
+ 0x0000, 0x2013, 0x2020, 0x2021, 0x00B7, 0x0000, 0x00B6, 0x2022,
1104
+ 0x201A, 0x201E, 0x201D, 0x00BB, 0x2026, 0x2030, 0x0000, 0x00BF,
1105
+ 0x0000, 0x0060, 0x00B4, 0x02C6, 0x02DC, 0x00AF, 0x02D8, 0x02D9,
1106
+ 0x00A8, 0x0000, 0x02DA, 0x00B8, 0x0000, 0x02DD, 0x02DB, 0x02C7,
1107
+ 0x2014, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1108
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1109
+ 0x0000, 0x00C6, 0x0000, 0x00AA, 0x0000, 0x0000, 0x0000, 0x0000,
1110
+ 0x0141, 0x00D8, 0x0152, 0x00BA, 0x0000, 0x0000, 0x0000, 0x0000,
1111
+ 0x0000, 0x00E6, 0x0000, 0x0000, 0x0000, 0x0131, 0x0000, 0x0000,
1112
+ 0x0142, 0x00F8, 0x0153, 0x00DF, 0x0000, 0x0000, 0x0000, 0x0000
1113
+ };
1114
+
1115
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_WIN_ANSI[] = {
1116
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1117
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1118
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1119
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1120
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1121
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1122
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1123
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1124
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1125
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1126
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1127
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x0000,
1128
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1129
+ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000,
1130
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1131
+ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178,
1132
+ 0x0000, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1133
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x0000, 0x00AE, 0x00AF,
1134
+ 0x02DA, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1135
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1136
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1137
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1138
+ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1139
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
1140
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1141
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1142
+ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1143
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
1144
+ };
1145
+
1146
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_MAC_ROMAN[] = {
1147
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1148
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1149
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1150
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1151
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1152
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1153
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1154
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1155
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1156
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1157
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1158
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x0000,
1159
+ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x0000, 0x00D6, 0x00DC, 0x00E1,
1160
+ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
1161
+ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
1162
+ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
1163
+ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
1164
+ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x0000, 0x00C6, 0x00D8,
1165
+ 0x0000, 0x00B1, 0x0000, 0x0000, 0x00A5, 0x00B5, 0x0000, 0x0000,
1166
+ 0x0000, 0x0000, 0x0000, 0x00AA, 0x00BA, 0x0000, 0x00E6, 0x00F8,
1167
+ 0x00BF, 0x00A1, 0x00AC, 0x0000, 0x0192, 0x0000, 0x0000, 0x00AB,
1168
+ 0x00BB, 0x2026, 0x0020, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
1169
+ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0000,
1170
+ 0x00FF, 0x0178, 0x2044, 0x00A4, 0x2039, 0x203A, 0xFB01, 0xFB02,
1171
+ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
1172
+ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
1173
+ 0x0000, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
1174
+ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7
1175
+ };
1176
+
1177
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_FONT_SPECIFIC[] = {
1178
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1179
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1180
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1181
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1182
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1183
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1184
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1185
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1186
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1187
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1188
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1189
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1190
+ 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087,
1191
+ 0x0088, 0x0089, 0x008A, 0x008B, 0x008C, 0x008D, 0x008E, 0x008F,
1192
+ 0x0090, 0x0091, 0x0092, 0x0093, 0x0094, 0x0095, 0x0096, 0x0097,
1193
+ 0x0098, 0x0099, 0x009A, 0x009B, 0x009C, 0x009D, 0x009E, 0x009F,
1194
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1195
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1196
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1197
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1198
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1199
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1200
+ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1201
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
1202
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1203
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1204
+ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1205
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
1206
+ };
1207
+
1208
+ #define HPDF_ISO8859_FIRST_CHAR 32
1209
+ #define HPDF_ISO8859_LAST_CHAR 255
1210
+
1211
+ /*---------------------------------------------------------------------------*/
1212
+ /*------ ISO8859-2 Encoding -------------------------------------------------*/
1213
+
1214
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_2[] = {
1215
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1216
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1217
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1218
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1219
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1220
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1221
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1222
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1223
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1224
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1225
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1226
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1227
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1228
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1229
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1230
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1231
+ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
1232
+ 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
1233
+ 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
1234
+ 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
1235
+ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
1236
+ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
1237
+ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
1238
+ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
1239
+ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
1240
+ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
1241
+ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
1242
+ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
1243
+ };
1244
+
1245
+ /*---------------------------------------------------------------------------*/
1246
+ /*------ ISO8859-3 Encoding -------------------------------------------------*/
1247
+
1248
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_3[] = {
1249
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1250
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1251
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1252
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1253
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1254
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1255
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1256
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1257
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1258
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1259
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1260
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1261
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1262
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1263
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1264
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1265
+ 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0x0000, 0x0124, 0x00A7,
1266
+ 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0x0000, 0x017B,
1267
+ 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
1268
+ 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0x0000, 0x017C,
1269
+ 0x00C0, 0x00C1, 0x00C2, 0x0000, 0x00C4, 0x010A, 0x0108, 0x00C7,
1270
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1271
+ 0x0000, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
1272
+ 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
1273
+ 0x00E0, 0x00E1, 0x00E2, 0x0000, 0x00E4, 0x010B, 0x0109, 0x00E7,
1274
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1275
+ 0x0000, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
1276
+ 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9
1277
+ };
1278
+
1279
+ /*---------------------------------------------------------------------------*/
1280
+ /*------ ISO8859-4 Encoding -------------------------------------------------*/
1281
+
1282
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_4[] = {
1283
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1284
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1285
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1286
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1287
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1288
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1289
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1290
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1291
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1292
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1293
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1294
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1295
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1296
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1297
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1298
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1299
+ 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7,
1300
+ 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF,
1301
+ 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7,
1302
+ 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B,
1303
+ 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E,
1304
+ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A,
1305
+ 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1306
+ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF,
1307
+ 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
1308
+ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B,
1309
+ 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1310
+ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9
1311
+ };
1312
+
1313
+ /*---------------------------------------------------------------------------*/
1314
+ /*------ ISO8859-5 Encoding -------------------------------------------------*/
1315
+
1316
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_5[] = {
1317
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1318
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1319
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1320
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1321
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1322
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1323
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1324
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1325
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1326
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1327
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1328
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1329
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1330
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1331
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1332
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1333
+ 0x00A0, 0x0401, 0x0402, 0x0403, 0x0404, 0x0405, 0x0406, 0x0407,
1334
+ 0x0408, 0x0409, 0x040A, 0x040B, 0x040C, 0x00AD, 0x040E, 0x040F,
1335
+ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
1336
+ 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
1337
+ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
1338
+ 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
1339
+ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
1340
+ 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
1341
+ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
1342
+ 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F,
1343
+ 0x2116, 0x0451, 0x0452, 0x0453, 0x0454, 0x0455, 0x0456, 0x0457,
1344
+ 0x0458, 0x0459, 0x045A, 0x045B, 0x045C, 0x00A7, 0x045E, 0x045F
1345
+ };
1346
+
1347
+ /*---------------------------------------------------------------------------*/
1348
+ /*------ ISO8859-6 Encoding -------------------------------------------------*/
1349
+
1350
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_6[] = {
1351
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1352
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1353
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1354
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1355
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1356
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1357
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1358
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1359
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1360
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1361
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1362
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1363
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1364
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1365
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1366
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1367
+ 0x00A0, 0x0000, 0x0000, 0x0000, 0x00A4, 0x0000, 0x0000, 0x0000,
1368
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x060C, 0x00AD, 0x0000, 0x0000,
1369
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1370
+ 0x0000, 0x0000, 0x0000, 0x061B, 0x0000, 0x0000, 0x0000, 0x061F,
1371
+ 0x0000, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
1372
+ 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
1373
+ 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637,
1374
+ 0x0638, 0x0639, 0x063A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1375
+ 0x0640, 0x0641, 0x0642, 0x0643, 0x0644, 0x0645, 0x0646, 0x0647,
1376
+ 0x0648, 0x0649, 0x064A, 0x064B, 0x064C, 0x064D, 0x064E, 0x064F,
1377
+ 0x0650, 0x0651, 0x0652, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1378
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000
1379
+ };
1380
+
1381
+ /*---------------------------------------------------------------------------*/
1382
+ /*------ ISO8859-7 Encoding -------------------------------------------------*/
1383
+
1384
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_7[] = {
1385
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1386
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1387
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1388
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1389
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1390
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1391
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1392
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1393
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1394
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1395
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1396
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1397
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1398
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1399
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1400
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1401
+ 0x00A0, 0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7,
1402
+ 0x00A8, 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0x0000, 0x2015,
1403
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7,
1404
+ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
1405
+ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
1406
+ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
1407
+ 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
1408
+ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
1409
+ 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
1410
+ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
1411
+ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
1412
+ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000
1413
+ };
1414
+
1415
+ /*---------------------------------------------------------------------------*/
1416
+ /*------ ISO8859-8 Encoding -------------------------------------------------*/
1417
+
1418
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_8[] = {
1419
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1420
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1421
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1422
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1423
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1424
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1425
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1426
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1427
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1428
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1429
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1430
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1431
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1432
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1433
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1434
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1435
+ 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1436
+ 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1437
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1438
+ 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x0000,
1439
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1440
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1441
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1442
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x2017,
1443
+ 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
1444
+ 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
1445
+ 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
1446
+ 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000,
1447
+ };
1448
+
1449
+ /*---------------------------------------------------------------------------*/
1450
+ /*------ ISO8859-9 Encoding -------------------------------------------------*/
1451
+
1452
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_9[] = {
1453
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1454
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1455
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1456
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1457
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1458
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1459
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1460
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1461
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1462
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1463
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1464
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1465
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1466
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1467
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1468
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1469
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1470
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1471
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1472
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1473
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1474
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1475
+ 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1476
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF,
1477
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1478
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1479
+ 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1480
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF
1481
+ };
1482
+
1483
+ /*---------------------------------------------------------------------------*/
1484
+ /*------ ISO8859-10 Encoding ------------------------------------------------*/
1485
+
1486
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_10[] = {
1487
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1488
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1489
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1490
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1491
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1492
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1493
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1494
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1495
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1496
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1497
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1498
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1499
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1500
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1501
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1502
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1503
+ 0x00A0, 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7,
1504
+ 0x013B, 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A,
1505
+ 0x00B0, 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7,
1506
+ 0x013C, 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B,
1507
+ 0x0100, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x012E,
1508
+ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF,
1509
+ 0x00D0, 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168,
1510
+ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
1511
+ 0x0101, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x012F,
1512
+ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF,
1513
+ 0x00F0, 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169,
1514
+ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138
1515
+ };
1516
+
1517
+ /*---------------------------------------------------------------------------*/
1518
+ /*------ ISO8859-11 Encoding ------------------------------------------------*/
1519
+
1520
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_11[] = {
1521
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1522
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1523
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1524
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1525
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1526
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1527
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1528
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1529
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1530
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1531
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1532
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1533
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1534
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1535
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1536
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1537
+ 0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07,
1538
+ 0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F,
1539
+ 0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17,
1540
+ 0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F,
1541
+ 0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27,
1542
+ 0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F,
1543
+ 0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37,
1544
+ 0x0E38, 0x0E39, 0x0E3A, 0x0000, 0x0000, 0x0000, 0x0000, 0x0E3F,
1545
+ 0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47,
1546
+ 0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F,
1547
+ 0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57,
1548
+ 0x0E58, 0x0E59, 0x0E5A, 0x0E5B, 0x0000, 0x0000, 0x0000, 0x0000
1549
+ };
1550
+
1551
+ /*---------------------------------------------------------------------------*/
1552
+ /*------ ISO8859-13 Encoding ------------------------------------------------*/
1553
+
1554
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_13[] = {
1555
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1556
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1557
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1558
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1559
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1560
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1561
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1562
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1563
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1564
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1565
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1566
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1567
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1568
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1569
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1570
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1571
+ 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7,
1572
+ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
1573
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7,
1574
+ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
1575
+ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
1576
+ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
1577
+ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
1578
+ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
1579
+ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
1580
+ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
1581
+ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
1582
+ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019
1583
+ };
1584
+
1585
+ /*---------------------------------------------------------------------------*/
1586
+ /*------ ISO8859-14 Encoding ------------------------------------------------*/
1587
+
1588
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_14[] = {
1589
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1590
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1591
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1592
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1593
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1594
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1595
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1596
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1597
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1598
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1599
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1600
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1601
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1602
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1603
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1604
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1605
+ 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7,
1606
+ 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178,
1607
+ 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56,
1608
+ 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61,
1609
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1610
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1611
+ 0x0174, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x1E6A,
1612
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x0176, 0x00DF,
1613
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1614
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1615
+ 0x0175, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x1E6B,
1616
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x0177, 0x00FF
1617
+ };
1618
+
1619
+ /*---------------------------------------------------------------------------*/
1620
+ /*------ ISO8859-15 Encoding ------------------------------------------------*/
1621
+
1622
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_15[] = {
1623
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1624
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1625
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1626
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1627
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1628
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1629
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1630
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1631
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1632
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1633
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1634
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1635
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1636
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1637
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1638
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1639
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7,
1640
+ 0x0161, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1641
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x017D, 0x00B5, 0x00B6, 0x00B7,
1642
+ 0x017E, 0x00B9, 0x00BA, 0x00BB, 0x0152, 0x0153, 0x0178, 0x00BF,
1643
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1644
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1645
+ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1646
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
1647
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1648
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1649
+ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1650
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
1651
+ };
1652
+
1653
+ /*---------------------------------------------------------------------------*/
1654
+ /*------ ISO8859-16 Encoding ------------------------------------------------*/
1655
+
1656
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_ISO8859_16[] = {
1657
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1658
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1659
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1660
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1661
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1662
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1663
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1664
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1665
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1666
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1667
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1668
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1669
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1670
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1671
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1672
+ 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1673
+ 0x00A0, 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7,
1674
+ 0x0161, 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B,
1675
+ 0x00B0, 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7,
1676
+ 0x017E, 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C,
1677
+ 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0x00C6, 0x00C7,
1678
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1679
+ 0x0110, 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A,
1680
+ 0x0170, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF,
1681
+ 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0x00E6, 0x00E7,
1682
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1683
+ 0x0111, 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B,
1684
+ 0x0171, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF
1685
+ };
1686
+
1687
+ #define HPDF_MSCP_FIRST_CHAR 32
1688
+ #define HPDF_MSCP_LAST_CHAR 255
1689
+
1690
+
1691
+ /*---------------------------------------------------------------------------*/
1692
+ /*------ CP1250 Encoding ----------------------------------------------------*/
1693
+
1694
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1250[] = {
1695
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1696
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1697
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1698
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1699
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1700
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1701
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1702
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1703
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1704
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1705
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1706
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1707
+ 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
1708
+ 0x0000, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
1709
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1710
+ 0x0000, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
1711
+ 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
1712
+ 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
1713
+ 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1714
+ 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
1715
+ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
1716
+ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
1717
+ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
1718
+ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
1719
+ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
1720
+ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
1721
+ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
1722
+ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9
1723
+ };
1724
+
1725
+ /*---------------------------------------------------------------------------*/
1726
+ /*------ CP1251 Encoding ----------------------------------------------------*/
1727
+
1728
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1251[] = {
1729
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1730
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1731
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1732
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1733
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1734
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1735
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1736
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1737
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1738
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1739
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1740
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1741
+ 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
1742
+ 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
1743
+ 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1744
+ 0x0000, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
1745
+ 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
1746
+ 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
1747
+ 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
1748
+ 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
1749
+ 0x0410, 0x0411, 0x0412, 0x0413, 0x0414, 0x0415, 0x0416, 0x0417,
1750
+ 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E, 0x041F,
1751
+ 0x0420, 0x0421, 0x0422, 0x0423, 0x0424, 0x0425, 0x0426, 0x0427,
1752
+ 0x0428, 0x0429, 0x042A, 0x042B, 0x042C, 0x042D, 0x042E, 0x042F,
1753
+ 0x0430, 0x0431, 0x0432, 0x0433, 0x0434, 0x0435, 0x0436, 0x0437,
1754
+ 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E, 0x043F,
1755
+ 0x0440, 0x0441, 0x0442, 0x0443, 0x0444, 0x0445, 0x0446, 0x0447,
1756
+ 0x0448, 0x0449, 0x044A, 0x044B, 0x044C, 0x044D, 0x044E, 0x044F
1757
+ };
1758
+
1759
+ /*---------------------------------------------------------------------------*/
1760
+ /*------ CP1252 Encoding ----------------------------------------------------*/
1761
+
1762
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1252[] = {
1763
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1764
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1765
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1766
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1767
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1768
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1769
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1770
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1771
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1772
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1773
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1774
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1775
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1776
+ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x017D, 0x0000,
1777
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1778
+ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x017E, 0x0178,
1779
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1780
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1781
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1782
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1783
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1784
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1785
+ 0x00D0, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1786
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x00DD, 0x00DE, 0x00DF,
1787
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1788
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1789
+ 0x00F0, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1790
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x00FF
1791
+ };
1792
+
1793
+ /*---------------------------------------------------------------------------*/
1794
+ /*------ CP1253 Encoding ----------------------------------------------------*/
1795
+
1796
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1253[] = {
1797
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1798
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1799
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1800
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1801
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1802
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1803
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1804
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1805
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1806
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1807
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1808
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1809
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1810
+ 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000,
1811
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1812
+ 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
1813
+ 0x00A0, 0x0385, 0x0386, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1814
+ 0x00A8, 0x00A9, 0x0000, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
1815
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,
1816
+ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD, 0x038E, 0x038F,
1817
+ 0x0390, 0x0391, 0x0392, 0x0393, 0x0394, 0x0395, 0x0396, 0x0397,
1818
+ 0x0398, 0x0399, 0x039A, 0x039B, 0x039C, 0x039D, 0x039E, 0x039F,
1819
+ 0x03A0, 0x03A1, 0x0000, 0x03A3, 0x03A4, 0x03A5, 0x03A6, 0x03A7,
1820
+ 0x03A8, 0x03A9, 0x03AA, 0x03AB, 0x03AC, 0x03AD, 0x03AE, 0x03AF,
1821
+ 0x03B0, 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7,
1822
+ 0x03B8, 0x03B9, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BE, 0x03BF,
1823
+ 0x03C0, 0x03C1, 0x03C2, 0x03C3, 0x03C4, 0x03C5, 0x03C6, 0x03C7,
1824
+ 0x03C8, 0x03C9, 0x03CA, 0x03CB, 0x03CC, 0x03CD, 0x03CE, 0x0000
1825
+ };
1826
+
1827
+ /*---------------------------------------------------------------------------*/
1828
+ /*------ CP1254 Encoding ----------------------------------------------------*/
1829
+
1830
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1254[] = {
1831
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1832
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1833
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1834
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1835
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1836
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1837
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1838
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1839
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1840
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1841
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1842
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1843
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1844
+ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
1845
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1846
+ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
1847
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1848
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1849
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1850
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1851
+ 0x00C0, 0x00C1, 0x00C2, 0x00C3, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1852
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x00CC, 0x00CD, 0x00CE, 0x00CF,
1853
+ 0x011E, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
1854
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0130, 0x015E, 0x00DF,
1855
+ 0x00E0, 0x00E1, 0x00E2, 0x00E3, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1856
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x00EC, 0x00ED, 0x00EE, 0x00EF,
1857
+ 0x011F, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
1858
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0131, 0x015F, 0x00FF
1859
+ };
1860
+
1861
+ /*---------------------------------------------------------------------------*/
1862
+ /*------ CP1255 Encoding ----------------------------------------------------*/
1863
+
1864
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1255[] = {
1865
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1866
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1867
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1868
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1869
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1870
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1871
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1872
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1873
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1874
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1875
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1876
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1877
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1878
+ 0x02C6, 0x2030, 0x0000, 0x2039, 0x0000, 0x0000, 0x0000, 0x0000,
1879
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1880
+ 0x02DC, 0x2122, 0x0000, 0x203A, 0x0000, 0x0000, 0x0000, 0x0000,
1881
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AA, 0x00A5, 0x00A6, 0x00A7,
1882
+ 0x00A8, 0x00A9, 0x00D7, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1883
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1884
+ 0x00B8, 0x00B9, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1885
+ 0x05B0, 0x05B1, 0x05B2, 0x05B3, 0x05B4, 0x05B5, 0x05B6, 0x05B7,
1886
+ 0x05B8, 0x05B9, 0x0000, 0x05BB, 0x05BC, 0x05BD, 0x05BE, 0x05BF,
1887
+ 0x05C0, 0x05C1, 0x05C2, 0x05C3, 0x05F0, 0x05F1, 0x05F2, 0x05F3,
1888
+ 0x05F4, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
1889
+ 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7,
1890
+ 0x05D8, 0x05D9, 0x05DA, 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF,
1891
+ 0x05E0, 0x05E1, 0x05E2, 0x05E3, 0x05E4, 0x05E5, 0x05E6, 0x05E7,
1892
+ 0x05E8, 0x05E9, 0x05EA, 0x0000, 0x0000, 0x200E, 0x200F, 0x0000
1893
+ };
1894
+
1895
+ /*---------------------------------------------------------------------------*/
1896
+ /*------ CP1256 Encoding ----------------------------------------------------*/
1897
+
1898
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1256[] = {
1899
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1900
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1901
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1902
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1903
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1904
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1905
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1906
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1907
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1908
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1909
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1910
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1911
+ 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1912
+ 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
1913
+ 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1914
+ 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
1915
+ 0x00A0, 0x060C, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1916
+ 0x00A8, 0x00A9, 0x06BE, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1917
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1918
+ 0x00B8, 0x00B9, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x061F,
1919
+ 0x06C1, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627,
1920
+ 0x0628, 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F,
1921
+ 0x0630, 0x0631, 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x00D7,
1922
+ 0x0637, 0x0638, 0x0639, 0x063A, 0x0640, 0x0641, 0x0642, 0x0643,
1923
+ 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646, 0x0647, 0x0648, 0x00E7,
1924
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649, 0x064A, 0x00EE, 0x00EF,
1925
+ 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4, 0x064F, 0x0650, 0x00F7,
1926
+ 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC, 0x200E, 0x200F, 0x06D2
1927
+ };
1928
+
1929
+ /*---------------------------------------------------------------------------*/
1930
+ /*------ CP1257 Encoding ----------------------------------------------------*/
1931
+
1932
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1257[] = {
1933
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1934
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1935
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1936
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1937
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1938
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1939
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1940
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1941
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1942
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1943
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1944
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1945
+ 0x20AC, 0x0000, 0x201A, 0x0000, 0x201E, 0x2026, 0x2020, 0x2021,
1946
+ 0x0000, 0x2030, 0x0000, 0x2039, 0x0000, 0x00A8, 0x02C7, 0x00B8,
1947
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1948
+ 0x0000, 0x2122, 0x0000, 0x203A, 0x0000, 0x00AF, 0x02DB, 0x0000,
1949
+ 0x00A0, 0x0000, 0x00A2, 0x00A3, 0x00A4, 0x0000, 0x00A6, 0x00A7,
1950
+ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
1951
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1952
+ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
1953
+ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
1954
+ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
1955
+ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
1956
+ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
1957
+ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
1958
+ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
1959
+ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
1960
+ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9
1961
+ };
1962
+
1963
+ /*---------------------------------------------------------------------------*/
1964
+ /*------ CP1258 Encoding ----------------------------------------------------*/
1965
+
1966
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_CP1258[] = {
1967
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
1968
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
1969
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
1970
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1971
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
1972
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
1973
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
1974
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
1975
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
1976
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
1977
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
1978
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
1979
+ 0x20AC, 0x0000, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
1980
+ 0x02C6, 0x2030, 0x0000, 0x2039, 0x0152, 0x0000, 0x0000, 0x0000,
1981
+ 0x0000, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
1982
+ 0x02DC, 0x2122, 0x0000, 0x203A, 0x0153, 0x0000, 0x0000, 0x0178,
1983
+ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7,
1984
+ 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF,
1985
+ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
1986
+ 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF,
1987
+ 0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7,
1988
+ 0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF,
1989
+ 0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7,
1990
+ 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF,
1991
+ 0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7,
1992
+ 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF,
1993
+ 0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7,
1994
+ 0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF
1995
+ };
1996
+
1997
+ /*---------------------------------------------------------------------------*/
1998
+ /*------ KOI8-R Encoding ----------------------------------------------------*/
1999
+
2000
+ static const HPDF_UNICODE HPDF_UNICODE_MAP_KOI8_R[] = {
2001
+ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
2002
+ 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
2003
+ 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
2004
+ 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
2005
+ 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
2006
+ 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
2007
+ 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
2008
+ 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
2009
+ 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
2010
+ 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
2011
+ 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
2012
+ 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x007F,
2013
+ 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
2014
+ 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
2015
+ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
2016
+ 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
2017
+ 0x2550, 0x2551, 0x2552, 0x0451, 0x2553, 0x2554, 0x2555, 0x2556,
2018
+ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x255C, 0x255D, 0x255E,
2019
+ 0x255F, 0x2560, 0x2561, 0x0401, 0x2562, 0x2563, 0x2564, 0x2565,
2020
+ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x256B, 0x256C, 0x00A9,
2021
+ 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
2022
+ 0x0445, 0x0438, 0x0439, 0x043A, 0x043B, 0x043C, 0x043D, 0x043E,
2023
+ 0x043F, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
2024
+ 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
2025
+ 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
2026
+ 0x0425, 0x0418, 0x0419, 0x041A, 0x041B, 0x041C, 0x041D, 0x041E,
2027
+ 0x041F, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
2028
+ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A
2029
+ };
2030
+
2031
+ typedef struct _HPDF_BuiltinEncodingData {
2032
+ const char *encoding_name;
2033
+ HPDF_BaseEncodings base_encoding;
2034
+ const HPDF_UNICODE *ovewrride_map;
2035
+ } HPDF_BuiltinEncodingData;
2036
+
2037
+
2038
+ static const HPDF_BuiltinEncodingData HPDF_BUILTIN_ENCODINGS[] = {
2039
+ {
2040
+ HPDF_ENCODING_FONT_SPECIFIC,
2041
+ HPDF_BASE_ENCODING_FONT_SPECIFIC,
2042
+ NULL},
2043
+ {
2044
+ HPDF_ENCODING_STANDARD,
2045
+ HPDF_BASE_ENCODING_STANDARD,
2046
+ NULL},
2047
+ {
2048
+ HPDF_ENCODING_MAC_ROMAN,
2049
+ HPDF_BASE_ENCODING_MAC_ROMAN,
2050
+ NULL},
2051
+ {
2052
+ HPDF_ENCODING_WIN_ANSI,
2053
+ HPDF_BASE_ENCODING_WIN_ANSI,
2054
+ NULL
2055
+ },
2056
+ {
2057
+ HPDF_ENCODING_ISO8859_2,
2058
+ HPDF_BASE_ENCODING_WIN_ANSI,
2059
+ HPDF_UNICODE_MAP_ISO8859_2
2060
+ },
2061
+ {
2062
+ HPDF_ENCODING_ISO8859_3,
2063
+ HPDF_BASE_ENCODING_WIN_ANSI,
2064
+ HPDF_UNICODE_MAP_ISO8859_3
2065
+ },
2066
+ {
2067
+ HPDF_ENCODING_ISO8859_4,
2068
+ HPDF_BASE_ENCODING_WIN_ANSI,
2069
+ HPDF_UNICODE_MAP_ISO8859_4
2070
+ },
2071
+ {
2072
+ HPDF_ENCODING_ISO8859_5,
2073
+ HPDF_BASE_ENCODING_WIN_ANSI,
2074
+ HPDF_UNICODE_MAP_ISO8859_5
2075
+ },
2076
+ {
2077
+ HPDF_ENCODING_ISO8859_6,
2078
+ HPDF_BASE_ENCODING_WIN_ANSI,
2079
+ HPDF_UNICODE_MAP_ISO8859_6
2080
+ },
2081
+ {
2082
+ HPDF_ENCODING_ISO8859_7,
2083
+ HPDF_BASE_ENCODING_WIN_ANSI,
2084
+ HPDF_UNICODE_MAP_ISO8859_7
2085
+ },
2086
+ {
2087
+ HPDF_ENCODING_ISO8859_8,
2088
+ HPDF_BASE_ENCODING_WIN_ANSI,
2089
+ HPDF_UNICODE_MAP_ISO8859_8
2090
+ },
2091
+ {
2092
+ HPDF_ENCODING_ISO8859_9,
2093
+ HPDF_BASE_ENCODING_WIN_ANSI,
2094
+ HPDF_UNICODE_MAP_ISO8859_9
2095
+ },
2096
+ {
2097
+ HPDF_ENCODING_ISO8859_10,
2098
+ HPDF_BASE_ENCODING_WIN_ANSI,
2099
+ HPDF_UNICODE_MAP_ISO8859_10
2100
+ },
2101
+ {
2102
+ HPDF_ENCODING_ISO8859_11,
2103
+ HPDF_BASE_ENCODING_WIN_ANSI,
2104
+ HPDF_UNICODE_MAP_ISO8859_11
2105
+ },
2106
+ {
2107
+ HPDF_ENCODING_ISO8859_13,
2108
+ HPDF_BASE_ENCODING_WIN_ANSI,
2109
+ HPDF_UNICODE_MAP_ISO8859_13
2110
+ },
2111
+ {
2112
+ HPDF_ENCODING_ISO8859_14,
2113
+ HPDF_BASE_ENCODING_WIN_ANSI,
2114
+ HPDF_UNICODE_MAP_ISO8859_14
2115
+ },
2116
+ {
2117
+ HPDF_ENCODING_ISO8859_15,
2118
+ HPDF_BASE_ENCODING_WIN_ANSI,
2119
+ HPDF_UNICODE_MAP_ISO8859_15
2120
+ },
2121
+ {
2122
+ HPDF_ENCODING_ISO8859_16,
2123
+ HPDF_BASE_ENCODING_WIN_ANSI,
2124
+ HPDF_UNICODE_MAP_ISO8859_16
2125
+ },
2126
+ {
2127
+ HPDF_ENCODING_CP1250,
2128
+ HPDF_BASE_ENCODING_WIN_ANSI,
2129
+ HPDF_UNICODE_MAP_CP1250
2130
+ },
2131
+ {
2132
+ HPDF_ENCODING_CP1251,
2133
+ HPDF_BASE_ENCODING_WIN_ANSI,
2134
+ HPDF_UNICODE_MAP_CP1251
2135
+ },
2136
+ {
2137
+ HPDF_ENCODING_CP1252,
2138
+ HPDF_BASE_ENCODING_WIN_ANSI,
2139
+ HPDF_UNICODE_MAP_CP1252
2140
+ },
2141
+ {
2142
+ HPDF_ENCODING_CP1253,
2143
+ HPDF_BASE_ENCODING_WIN_ANSI,
2144
+ HPDF_UNICODE_MAP_CP1253
2145
+ },
2146
+ {
2147
+ HPDF_ENCODING_CP1254,
2148
+ HPDF_BASE_ENCODING_WIN_ANSI,
2149
+ HPDF_UNICODE_MAP_CP1254
2150
+ },
2151
+ {
2152
+ HPDF_ENCODING_CP1255,
2153
+ HPDF_BASE_ENCODING_WIN_ANSI,
2154
+ HPDF_UNICODE_MAP_CP1255
2155
+ },
2156
+ {
2157
+ HPDF_ENCODING_CP1256,
2158
+ HPDF_BASE_ENCODING_WIN_ANSI,
2159
+ HPDF_UNICODE_MAP_CP1256
2160
+ },
2161
+ {
2162
+ HPDF_ENCODING_CP1257,
2163
+ HPDF_BASE_ENCODING_WIN_ANSI,
2164
+ HPDF_UNICODE_MAP_CP1257
2165
+ },
2166
+ {
2167
+ HPDF_ENCODING_CP1258,
2168
+ HPDF_BASE_ENCODING_WIN_ANSI,
2169
+ HPDF_UNICODE_MAP_CP1258
2170
+ },
2171
+ {
2172
+ HPDF_ENCODING_KOI8_R,
2173
+ HPDF_BASE_ENCODING_WIN_ANSI,
2174
+ HPDF_UNICODE_MAP_KOI8_R
2175
+ },
2176
+ {
2177
+ NULL,
2178
+ HPDF_BASE_ENCODING_EOF,
2179
+ NULL
2180
+ }
2181
+ };
2182
+
2183
+
2184
+ /*---------------------------------------------------------------------------*/
2185
+
2186
+ const HPDF_BuiltinEncodingData*
2187
+ HPDF_BasicEncoder_FindBuiltinData (const char *encoding_name);
2188
+
2189
+
2190
+ void
2191
+ HPDF_BasicEncoder_CopyMap (HPDF_Encoder encoder,
2192
+ const HPDF_UNICODE *map);
2193
+
2194
+
2195
+ HPDF_STATUS
2196
+ HPDF_BasicEncoder_OverrideMap (HPDF_Encoder encoder,
2197
+ const HPDF_UNICODE *map);
2198
+
2199
+
2200
+ /*-- HPDF_Encoder ---------------------------------------*/
2201
+
2202
+ HPDF_Encoder
2203
+ HPDF_BasicEncoder_New (HPDF_MMgr mmgr,
2204
+ const char *encoding_name)
2205
+ {
2206
+ HPDF_Encoder encoder;
2207
+ HPDF_BasicEncoderAttr encoder_attr;
2208
+ const HPDF_BuiltinEncodingData *data;
2209
+ char *eptr;
2210
+
2211
+ HPDF_PTRACE((" HPDF_BasicEncoder_New\n"));
2212
+
2213
+ if (mmgr == NULL)
2214
+ return NULL;
2215
+
2216
+ data = HPDF_BasicEncoder_FindBuiltinData (encoding_name);
2217
+ if (!data->encoding_name) {
2218
+ HPDF_SetError (mmgr->error, HPDF_INVALID_ENCODING_NAME, 0);
2219
+ return NULL;
2220
+ }
2221
+
2222
+ encoder = HPDF_GetMem (mmgr, sizeof(HPDF_Encoder_Rec));
2223
+ if (!encoder)
2224
+ return NULL;
2225
+
2226
+ HPDF_MemSet (encoder, 0, sizeof(HPDF_Encoder_Rec));
2227
+
2228
+ eptr = encoder->name + HPDF_LIMIT_MAX_NAME_LEN;
2229
+ HPDF_StrCpy (encoder->name, data->encoding_name, eptr);
2230
+
2231
+ encoder->mmgr = mmgr;
2232
+ encoder->error = mmgr->error;
2233
+ encoder->type = HPDF_ENCODER_TYPE_SINGLE_BYTE;
2234
+ encoder->to_unicode_fn = HPDF_BasicEncoder_ToUnicode;
2235
+ encoder->write_fn = HPDF_BasicEncoder_Write;
2236
+ encoder->free_fn = HPDF_BasicEncoder_Free;
2237
+
2238
+ encoder_attr = HPDF_GetMem(mmgr, sizeof(HPDF_BasicEncoderAttr_Rec));
2239
+ if (!encoder_attr) {
2240
+ HPDF_FreeMem (encoder->mmgr, encoder);
2241
+ return NULL;
2242
+ }
2243
+
2244
+ encoder->sig_bytes = HPDF_ENCODER_SIG_BYTES;
2245
+ encoder->attr = encoder_attr;
2246
+ HPDF_MemSet (encoder_attr, 0, sizeof(HPDF_BasicEncoderAttr_Rec));
2247
+
2248
+ encoder_attr->first_char = HPDF_BASIC_ENCODER_FIRST_CHAR;
2249
+ encoder_attr->last_char = HPDF_BASIC_ENCODER_LAST_CHAR;
2250
+ encoder_attr->has_differences = HPDF_FALSE;
2251
+
2252
+ eptr = encoder_attr->base_encoding + HPDF_LIMIT_MAX_NAME_LEN;
2253
+
2254
+ switch (data->base_encoding) {
2255
+ case HPDF_BASE_ENCODING_STANDARD:
2256
+ HPDF_StrCpy (encoder_attr->base_encoding,
2257
+ HPDF_ENCODING_STANDARD, eptr);
2258
+ HPDF_BasicEncoder_CopyMap (encoder, HPDF_UNICODE_MAP_STANDARD);
2259
+ break;
2260
+ case HPDF_BASE_ENCODING_WIN_ANSI:
2261
+ HPDF_StrCpy (encoder_attr->base_encoding,
2262
+ HPDF_ENCODING_WIN_ANSI, eptr);
2263
+ HPDF_BasicEncoder_CopyMap (encoder, HPDF_UNICODE_MAP_WIN_ANSI);
2264
+ break;
2265
+ case HPDF_BASE_ENCODING_MAC_ROMAN:
2266
+ HPDF_StrCpy (encoder_attr->base_encoding,
2267
+ HPDF_ENCODING_MAC_ROMAN, eptr);
2268
+ HPDF_BasicEncoder_CopyMap (encoder, HPDF_UNICODE_MAP_MAC_ROMAN);
2269
+ break;
2270
+ default:
2271
+ HPDF_StrCpy (encoder_attr->base_encoding,
2272
+ HPDF_ENCODING_FONT_SPECIFIC, eptr);
2273
+ HPDF_BasicEncoder_CopyMap (encoder,
2274
+ HPDF_UNICODE_MAP_FONT_SPECIFIC);
2275
+ }
2276
+
2277
+ if (data->ovewrride_map)
2278
+ HPDF_BasicEncoder_OverrideMap (encoder, data->ovewrride_map);
2279
+
2280
+ return encoder;
2281
+ }
2282
+
2283
+
2284
+
2285
+
2286
+ const HPDF_BuiltinEncodingData*
2287
+ HPDF_BasicEncoder_FindBuiltinData (const char *encoding_name)
2288
+ {
2289
+ HPDF_UINT i = 0;
2290
+
2291
+ HPDF_PTRACE((" HPDF_BasicEncoder_FindBuiltinData\n"));
2292
+
2293
+ while (HPDF_BUILTIN_ENCODINGS[i].encoding_name) {
2294
+ if (HPDF_StrCmp (HPDF_BUILTIN_ENCODINGS[i].encoding_name,
2295
+ encoding_name) == 0)
2296
+ break;
2297
+
2298
+ i++;
2299
+ }
2300
+
2301
+ return &HPDF_BUILTIN_ENCODINGS[i];
2302
+ }
2303
+
2304
+
2305
+ HPDF_UNICODE
2306
+ HPDF_BasicEncoder_ToUnicode (HPDF_Encoder encoder,
2307
+ HPDF_UINT16 code)
2308
+ {
2309
+ HPDF_BasicEncoderAttr attr = (HPDF_BasicEncoderAttr)encoder->attr;
2310
+
2311
+ if (code > 255)
2312
+ return 0;
2313
+
2314
+ return attr->unicode_map[code];
2315
+ }
2316
+
2317
+
2318
+ HPDF_UNICODE
2319
+ HPDF_Encoder_ToUnicode (HPDF_Encoder encoder,
2320
+ HPDF_UINT16 code)
2321
+ {
2322
+ return encoder->to_unicode_fn (encoder, code);
2323
+ }
2324
+
2325
+
2326
+ void
2327
+ HPDF_BasicEncoder_CopyMap (HPDF_Encoder encoder,
2328
+ const HPDF_UNICODE *map)
2329
+ {
2330
+ HPDF_UINT i;
2331
+ HPDF_UNICODE* dst = ((HPDF_BasicEncoderAttr)encoder->attr)->unicode_map +
2332
+ HPDF_BASIC_ENCODER_FIRST_CHAR;
2333
+
2334
+ HPDF_PTRACE((" HPDF_BasicEncoder_CopyMap\n"));
2335
+
2336
+ for (i = 0; i <= HPDF_BASIC_ENCODER_LAST_CHAR -
2337
+ HPDF_BASIC_ENCODER_FIRST_CHAR; i++)
2338
+ *dst++ = *map++;
2339
+ }
2340
+
2341
+ HPDF_STATUS
2342
+ HPDF_BasicEncoder_OverrideMap (HPDF_Encoder encoder,
2343
+ const HPDF_UNICODE *map)
2344
+ {
2345
+ HPDF_UINT i;
2346
+ HPDF_BasicEncoderAttr data = (HPDF_BasicEncoderAttr)encoder->attr;
2347
+ HPDF_UNICODE* dst;
2348
+ HPDF_BYTE* flgs;
2349
+
2350
+ HPDF_PTRACE ((" HPDF_BasicEncoder_OverrideMap\n"));
2351
+
2352
+ if (data->has_differences)
2353
+ return HPDF_SetError (encoder->error, HPDF_INVALID_OPERATION, 0);
2354
+
2355
+ dst = data->unicode_map + HPDF_BASIC_ENCODER_FIRST_CHAR;
2356
+ flgs = data->differences + HPDF_BASIC_ENCODER_FIRST_CHAR;
2357
+
2358
+ for (i = 0; i <= HPDF_BASIC_ENCODER_LAST_CHAR -
2359
+ HPDF_BASIC_ENCODER_FIRST_CHAR; i++) {
2360
+ if (*map != *dst) {
2361
+ *dst = *map;
2362
+ *flgs = 1;
2363
+ }
2364
+ map++;
2365
+ dst++;
2366
+ flgs++;
2367
+ }
2368
+ data->has_differences = HPDF_TRUE;
2369
+
2370
+ return HPDF_OK;
2371
+ }
2372
+
2373
+ void
2374
+ HPDF_Encoder_Free (HPDF_Encoder encoder)
2375
+ {
2376
+ HPDF_PTRACE ((" HPDF_Encoder_Free\n"));
2377
+
2378
+ if (!encoder)
2379
+ return;
2380
+
2381
+ if (encoder->free_fn)
2382
+ encoder->free_fn (encoder);
2383
+ HPDF_FreeMem (encoder->mmgr, encoder);
2384
+ }
2385
+
2386
+
2387
+ const char*
2388
+ HPDF_UnicodeToGryphName (HPDF_UNICODE unicode)
2389
+ {
2390
+ const HPDF_UnicodeGryphPair* map = HPDF_UNICODE_GRYPH_NAME_MAP;
2391
+
2392
+ HPDF_PTRACE ((" HPDF_UnicodeToGryphName\n"));
2393
+
2394
+ while (map->unicode <= unicode) {
2395
+ if (map->unicode == unicode)
2396
+ return map->gryph_name;
2397
+ map++;
2398
+ }
2399
+
2400
+ return HPDF_UNICODE_GRYPH_NAME_MAP[0].gryph_name;
2401
+ }
2402
+
2403
+ HPDF_UNICODE
2404
+ HPDF_GryphNameToUnicode (const char *gryph_name)
2405
+ {
2406
+ const HPDF_UnicodeGryphPair* map = HPDF_UNICODE_GRYPH_NAME_MAP;
2407
+
2408
+ HPDF_PTRACE ((" HPDF_GryphNameToUnicode\n"));
2409
+
2410
+ while (map->unicode != 0xFFFF) {
2411
+ if (HPDF_StrCmp (gryph_name, map->gryph_name) == 0)
2412
+ return map->unicode;
2413
+ map++;
2414
+ }
2415
+
2416
+ return 0x0000;
2417
+ }
2418
+
2419
+ void
2420
+ HPDF_BasicEncoder_Free (HPDF_Encoder encoder)
2421
+ {
2422
+ HPDF_PTRACE ((" HPDF_BasicEncoder_Free\n"));
2423
+
2424
+ HPDF_FreeMem (encoder->mmgr, encoder->attr);
2425
+ encoder->attr = NULL;
2426
+ }
2427
+
2428
+ HPDF_STATUS
2429
+ HPDF_BasicEncoder_Write (HPDF_Encoder encoder,
2430
+ HPDF_Stream out)
2431
+ {
2432
+ HPDF_STATUS ret;
2433
+ HPDF_BasicEncoderAttr attr = (HPDF_BasicEncoderAttr)encoder->attr;
2434
+
2435
+ HPDF_PTRACE ((" HPDF_BasicEncoder_Write\n"));
2436
+
2437
+ /* if HPDF_ENCODING_FONT_SPECIFIC is selected, no Encoding object will be "
2438
+ * written.
2439
+ */
2440
+ if (HPDF_StrCmp (attr->base_encoding, HPDF_ENCODING_FONT_SPECIFIC) == 0)
2441
+ return HPDF_OK;
2442
+
2443
+ /* if encoder has differences-data, encoding object is written as
2444
+ dictionary-object, otherwise it is written as name-object. */
2445
+ if (attr->has_differences == HPDF_TRUE) {
2446
+ ret = HPDF_Stream_WriteStr (out,
2447
+ "/Encoding <<\012"
2448
+ "/Type /Encoding\012"
2449
+ "/BaseEncoding ");
2450
+ if (ret != HPDF_OK)
2451
+ return ret;
2452
+ } else {
2453
+ ret = HPDF_Stream_WriteStr (out, "/Encoding ");
2454
+ if (ret != HPDF_OK)
2455
+ return ret;
2456
+ }
2457
+
2458
+ ret = HPDF_Stream_WriteEscapeName (out, attr->base_encoding);
2459
+ if (ret != HPDF_OK)
2460
+ return ret;
2461
+
2462
+ ret = HPDF_Stream_WriteStr (out, "\012");
2463
+ if (ret != HPDF_OK)
2464
+ return ret;
2465
+
2466
+ /* write differences data */
2467
+ if (attr->has_differences == HPDF_TRUE) {
2468
+ HPDF_INT i;
2469
+
2470
+ ret = HPDF_Stream_WriteStr (out, "/Differences [");
2471
+ if (ret != HPDF_OK)
2472
+ return ret;
2473
+
2474
+ for (i = attr->first_char; i <= attr->last_char; i++) {
2475
+ if (attr->differences[i] == 1) {
2476
+ char tmp[HPDF_TEXT_DEFAULT_LEN];
2477
+ char* ptmp = tmp;
2478
+ const char* char_name =
2479
+ HPDF_UnicodeToGryphName (attr->unicode_map[i]);
2480
+
2481
+ ptmp = HPDF_IToA (ptmp, i, tmp + HPDF_TMP_BUF_SIZ - 1);
2482
+ *ptmp++ = ' ';
2483
+ *ptmp++ = '/';
2484
+ ptmp = HPDF_StrCpy (ptmp, char_name, tmp +
2485
+ HPDF_TMP_BUF_SIZ - 1);
2486
+ *ptmp++ = ' ';
2487
+ *ptmp = 0;
2488
+
2489
+ ret = HPDF_Stream_WriteStr (out, tmp);
2490
+ if (ret != HPDF_OK)
2491
+ return ret;
2492
+ }
2493
+ }
2494
+
2495
+ ret = HPDF_Stream_WriteStr (out, "]\012>>\012");
2496
+ }
2497
+
2498
+ return ret;
2499
+ }
2500
+
2501
+
2502
+ HPDF_STATUS
2503
+ HPDF_Encoder_Validate (HPDF_Encoder encoder)
2504
+ {
2505
+ HPDF_PTRACE ((" HPDF_Encoder_Validate\n"));
2506
+
2507
+ if (!encoder || encoder->sig_bytes != HPDF_ENCODER_SIG_BYTES)
2508
+ return HPDF_FALSE;
2509
+ else
2510
+ return HPDF_TRUE;
2511
+ }
2512
+
2513
+
2514
+ /* At first, CMAP encoder is create as 'virtual' object.
2515
+ * When init_fn is called, cmap-data is loaded and it becomes to be available
2516
+ */
2517
+
2518
+ HPDF_Encoder
2519
+ HPDF_CMapEncoder_New (HPDF_MMgr mmgr,
2520
+ char *name,
2521
+ HPDF_Encoder_Init_Func init_fn)
2522
+ {
2523
+ HPDF_Encoder encoder;
2524
+
2525
+ HPDF_PTRACE ((" HPDF_CMapEncoder_New\n"));
2526
+
2527
+ if (mmgr == NULL)
2528
+ return NULL;
2529
+
2530
+ encoder = HPDF_GetMem (mmgr, sizeof(HPDF_Encoder_Rec));
2531
+ if (!encoder)
2532
+ return NULL;
2533
+
2534
+ HPDF_MemSet (encoder, 0, sizeof(HPDF_Encoder_Rec));
2535
+
2536
+ HPDF_StrCpy (encoder->name, name, encoder->name + HPDF_LIMIT_MAX_NAME_LEN);
2537
+ encoder->mmgr = mmgr;
2538
+ encoder->error = mmgr->error;
2539
+ encoder->type = HPDF_ENCODER_TYPE_UNINITIALIZED;
2540
+ encoder->byte_type_fn = HPDF_CMapEncoder_ByteType;
2541
+ encoder->to_unicode_fn = HPDF_CMapEncoder_ToUnicode;
2542
+ encoder->write_fn = HPDF_CMapEncoder_Write;
2543
+ encoder->free_fn = HPDF_CMapEncoder_Free;
2544
+ encoder->init_fn = init_fn;
2545
+ encoder->sig_bytes = HPDF_ENCODER_SIG_BYTES;
2546
+
2547
+ return encoder;
2548
+ }
2549
+
2550
+
2551
+ HPDF_STATUS
2552
+ HPDF_CMapEncoder_InitAttr (HPDF_Encoder encoder)
2553
+ {
2554
+ HPDF_CMapEncoderAttr encoder_attr;
2555
+ HPDF_UINT i;
2556
+ HPDF_UINT j;
2557
+
2558
+ HPDF_PTRACE ((" HPDF_CMapEncoder_InitAttr\n"));
2559
+
2560
+ if (encoder->attr)
2561
+ return HPDF_INVALID_ENCODER;
2562
+
2563
+ encoder_attr = HPDF_GetMem(encoder->mmgr,
2564
+ sizeof(HPDF_CMapEncoderAttr_Rec));
2565
+
2566
+ if (!encoder_attr)
2567
+ return encoder->error->error_no;
2568
+
2569
+ HPDF_MemSet (encoder_attr, 0, sizeof(HPDF_CMapEncoderAttr_Rec));
2570
+ encoder->attr = encoder_attr;
2571
+
2572
+ encoder_attr->writing_mode = HPDF_WMODE_HORIZONTAL;
2573
+
2574
+ for (i = 0; i <= 255; i++) {
2575
+ for (j = 0; j <= 255; j++) {
2576
+ /* undefined charactors are replaced to square */
2577
+ encoder_attr->unicode_map[i][j] = 0x25A1;
2578
+ }
2579
+ }
2580
+
2581
+ /* create cmap range */
2582
+ encoder_attr->cmap_range = HPDF_List_New (encoder->mmgr,
2583
+ HPDF_DEF_RANGE_TBL_NUM);
2584
+ if (!encoder_attr->cmap_range)
2585
+ return encoder->error->error_no;
2586
+
2587
+ encoder_attr->notdef_range = HPDF_List_New (encoder->mmgr,
2588
+ HPDF_DEF_ITEMS_PER_BLOCK);
2589
+ if (!encoder_attr->notdef_range)
2590
+ return encoder->error->error_no;
2591
+
2592
+ encoder_attr->code_space_range = HPDF_List_New (encoder->mmgr,
2593
+ HPDF_DEF_ITEMS_PER_BLOCK);
2594
+ if (!encoder_attr->code_space_range)
2595
+ return encoder->error->error_no;
2596
+
2597
+ return HPDF_OK;
2598
+ }
2599
+
2600
+
2601
+ HPDF_UNICODE
2602
+ HPDF_CMapEncoder_ToUnicode (HPDF_Encoder encoder,
2603
+ HPDF_UINT16 code)
2604
+ {
2605
+ HPDF_BYTE l = code;
2606
+ HPDF_BYTE h = code >> 8;
2607
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2608
+
2609
+ return attr->unicode_map[l][h];
2610
+ }
2611
+
2612
+
2613
+ HPDF_UINT16
2614
+ HPDF_CMapEncoder_ToCID (HPDF_Encoder encoder,
2615
+ HPDF_UINT16 code)
2616
+ {
2617
+ HPDF_BYTE l = code;
2618
+ HPDF_BYTE h = code >> 8;
2619
+
2620
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2621
+
2622
+ return attr->cid_map[l][h];
2623
+ }
2624
+
2625
+
2626
+ void
2627
+ HPDF_CMapEncoder_Free (HPDF_Encoder encoder)
2628
+ {
2629
+ HPDF_CMapEncoderAttr attr;
2630
+ HPDF_UINT i;
2631
+ HPDF_CidRange_Rec *data;
2632
+
2633
+ HPDF_PTRACE ((" HPDF_CMapEncoder_Free\n"));
2634
+
2635
+ attr = (HPDF_CMapEncoderAttr)encoder->attr;
2636
+
2637
+ if (attr && attr->cmap_range) {
2638
+ for (i = 0; i < attr->cmap_range->count; i++) {
2639
+ data = HPDF_List_ItemAt (attr->cmap_range, i);
2640
+
2641
+ HPDF_FreeMem (encoder->mmgr, data);
2642
+ }
2643
+
2644
+ HPDF_List_Free (attr->cmap_range);
2645
+ }
2646
+
2647
+ if (attr && attr->notdef_range) {
2648
+ for (i = 0; i < attr->notdef_range->count; i++) {
2649
+ data = HPDF_List_ItemAt (attr->notdef_range, i);
2650
+
2651
+ HPDF_FreeMem (encoder->mmgr, data);
2652
+ }
2653
+
2654
+ HPDF_List_Free (attr->notdef_range);
2655
+ }
2656
+
2657
+ if (attr && attr->code_space_range) {
2658
+ for (i = 0; i < attr->code_space_range->count; i++) {
2659
+ data = HPDF_List_ItemAt (attr->code_space_range, i);
2660
+
2661
+ HPDF_FreeMem (encoder->mmgr, data);
2662
+ }
2663
+
2664
+ HPDF_List_Free (attr->code_space_range);
2665
+ }
2666
+
2667
+ HPDF_FreeMem (encoder->mmgr, encoder->attr);
2668
+ encoder->attr = NULL;
2669
+ }
2670
+
2671
+
2672
+ HPDF_STATUS
2673
+ HPDF_CMapEncoder_Write (HPDF_Encoder encoder,
2674
+ HPDF_Stream out)
2675
+ {
2676
+ HPDF_STATUS ret = HPDF_OK;
2677
+
2678
+ return ret;
2679
+ }
2680
+
2681
+
2682
+ void
2683
+ HPDF_Encoder_SetParseText (HPDF_Encoder encoder,
2684
+ HPDF_ParseText_Rec *state,
2685
+ const HPDF_BYTE *text,
2686
+ HPDF_UINT len)
2687
+ {
2688
+ HPDF_PTRACE ((" HPDF_CMapEncoder_SetParseText\n"));
2689
+
2690
+ state->text = text;
2691
+ state->index = 0;
2692
+ state->len = len;
2693
+ state->byte_type = HPDF_BYTE_TYPE_SINGLE;
2694
+ }
2695
+
2696
+
2697
+ HPDF_ByteType
2698
+ HPDF_CMapEncoder_ByteType (HPDF_Encoder encoder,
2699
+ HPDF_ParseText_Rec *state)
2700
+ {
2701
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2702
+
2703
+ HPDF_PTRACE ((" HPDF_CMapEncoder_ByteType\n"));
2704
+
2705
+ if (state->index >= state->len)
2706
+ return HPDF_BYTE_TYPE_UNKNOWN;
2707
+
2708
+ if (state->byte_type == HPDF_BYTE_TYPE_LEAD) {
2709
+ if (attr->is_trial_byte_fn (encoder, state->text[state->index]))
2710
+ state->byte_type = HPDF_BYTE_TYPE_TRIAL;
2711
+ else
2712
+ state->byte_type = HPDF_BYTE_TYPE_UNKNOWN;
2713
+ } else {
2714
+ if (attr->is_lead_byte_fn (encoder, state->text[state->index]))
2715
+ state->byte_type = HPDF_BYTE_TYPE_LEAD;
2716
+ else
2717
+ state->byte_type = HPDF_BYTE_TYPE_SINGLE;
2718
+ }
2719
+
2720
+ state->index++;
2721
+
2722
+ return state->byte_type;
2723
+ }
2724
+
2725
+
2726
+ HPDF_ByteType
2727
+ HPDF_Encoder_ByteType (HPDF_Encoder encoder,
2728
+ HPDF_ParseText_Rec *state)
2729
+ {
2730
+ HPDF_PTRACE ((" HPDF_Encoder_ByteType\n"));
2731
+
2732
+ if (encoder->byte_type_fn)
2733
+ return encoder->byte_type_fn (encoder, state);
2734
+ else
2735
+ return HPDF_BYTE_TYPE_SINGLE;
2736
+ }
2737
+
2738
+
2739
+ HPDF_STATUS
2740
+ HPDF_CMapEncoder_AddCMap (HPDF_Encoder encoder,
2741
+ const HPDF_CidRange_Rec *range)
2742
+ {
2743
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2744
+
2745
+ HPDF_PTRACE ((" HPDF_CMapEncoder_AddCMap\n"));
2746
+
2747
+ /* Copy specified pdf_cid_range array to fRangeArray. */
2748
+ while (range->from != 0xffff && range->to != 0xffff) {
2749
+ HPDF_UINT16 code = range->from;
2750
+ HPDF_UINT16 cid = range->cid;
2751
+ HPDF_CidRange_Rec *prange;
2752
+ HPDF_STATUS ret;
2753
+
2754
+ while (code <= range->to) {
2755
+ HPDF_BYTE l = code;
2756
+ HPDF_BYTE h = code >> 8;
2757
+
2758
+ attr->cid_map[l][h] = cid;
2759
+ code++;
2760
+ cid++;
2761
+ }
2762
+
2763
+ prange = HPDF_GetMem (encoder->mmgr, sizeof(HPDF_CidRange_Rec));
2764
+ if (!prange)
2765
+ return encoder->error->error_no;
2766
+
2767
+ prange->from = range->from;
2768
+ prange->to = range->to;
2769
+ prange->cid = range->cid;
2770
+
2771
+ if ((ret = HPDF_List_Add (attr->cmap_range, prange)) != HPDF_OK) {
2772
+ HPDF_FreeMem (encoder->mmgr, prange);
2773
+ return ret;
2774
+ }
2775
+
2776
+ range++;
2777
+ }
2778
+
2779
+ return HPDF_OK;
2780
+ }
2781
+
2782
+
2783
+ static HPDF_STATUS
2784
+ AddCidRainge (HPDF_MMgr mmgr,
2785
+ HPDF_CidRange_Rec range,
2786
+ HPDF_List target)
2787
+ {
2788
+ HPDF_CidRange_Rec *prange;
2789
+ HPDF_STATUS ret;
2790
+
2791
+ prange = HPDF_GetMem (mmgr, sizeof(HPDF_CidRange_Rec));
2792
+ if (!prange)
2793
+ return mmgr->error->error_no;
2794
+
2795
+ prange->from = range.from;
2796
+ prange->to = range.to;
2797
+ prange->cid = range.cid;
2798
+
2799
+ if ((ret = HPDF_List_Add (target, prange))
2800
+ != HPDF_OK) {
2801
+ HPDF_FreeMem (mmgr, prange);
2802
+ return ret;
2803
+ }
2804
+
2805
+ return HPDF_OK;
2806
+ }
2807
+
2808
+
2809
+ HPDF_STATUS
2810
+ HPDF_CMapEncoder_AddNotDefRange (HPDF_Encoder encoder,
2811
+ HPDF_CidRange_Rec range)
2812
+ {
2813
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2814
+
2815
+ HPDF_PTRACE ((" HPDF_CMapEncoder_AddNotDefRange\n"));
2816
+
2817
+ return AddCidRainge (encoder->mmgr, range, attr->notdef_range);
2818
+ }
2819
+
2820
+
2821
+ HPDF_STATUS
2822
+ HPDF_CMapEncoder_AddCodeSpaceRange (HPDF_Encoder encoder,
2823
+ HPDF_CidRange_Rec range)
2824
+ {
2825
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2826
+
2827
+ HPDF_PTRACE ((" HPDF_CMapEncoder_AddNotDefRange\n"));
2828
+
2829
+ return AddCidRainge (encoder->mmgr, range, attr->code_space_range);
2830
+ }
2831
+
2832
+
2833
+ void
2834
+ HPDF_CMapEncoder_SetUnicodeArray (HPDF_Encoder encoder,
2835
+ const HPDF_UnicodeMap_Rec *array)
2836
+ {
2837
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2838
+
2839
+ HPDF_PTRACE ((" HPDF_CMapEncoder_SetUnicodeArray\n"));
2840
+
2841
+ if (array != NULL)
2842
+ while (array->unicode != 0xffff) {
2843
+ HPDF_BYTE l = array->code;
2844
+ HPDF_BYTE h = array->code >> 8;
2845
+ attr->unicode_map[l][h] = array->unicode;
2846
+ array++;
2847
+ }
2848
+ }
2849
+
2850
+
2851
+ HPDF_STATUS
2852
+ HPDF_CMapEncoder_AddJWWLineHead (HPDF_Encoder encoder,
2853
+ const HPDF_UINT16 *code)
2854
+ {
2855
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2856
+ HPDF_UINT i, j;
2857
+
2858
+ HPDF_PTRACE ((" HPDF_CMapEncoder_AddJWWLineHead\n"));
2859
+
2860
+ for (i = 0; i < HPDF_MAX_JWW_NUM; i++) {
2861
+ if (*code == 0)
2862
+ break;
2863
+
2864
+ for (j = 0; j < HPDF_MAX_JWW_NUM; j++) {
2865
+ if (attr->jww_line_head[j] == *code)
2866
+ break;
2867
+
2868
+ if (attr->jww_line_head[j] == 0) {
2869
+ attr->jww_line_head[j] = *code;
2870
+ break;
2871
+ }
2872
+
2873
+ if (j == HPDF_MAX_JWW_NUM - 1)
2874
+ return HPDF_SetError (encoder->error,
2875
+ HPDF_EXCEED_JWW_CODE_NUM_LIMIT, i);
2876
+ }
2877
+
2878
+ code++;
2879
+ }
2880
+
2881
+ return HPDF_OK;
2882
+ }
2883
+
2884
+
2885
+ HPDF_BOOL
2886
+ HPDF_Encoder_CheckJWWLineHead (HPDF_Encoder encoder,
2887
+ const HPDF_UINT16 code)
2888
+ {
2889
+ HPDF_CMapEncoderAttr attr;
2890
+ HPDF_UINT j;
2891
+
2892
+ HPDF_PTRACE ((" HPDF_Encoder_CheckJWWLineHead\n"));
2893
+
2894
+ if (!HPDF_Encoder_Validate (encoder))
2895
+ return HPDF_FALSE;
2896
+
2897
+ if (encoder->type != HPDF_ENCODER_TYPE_DOUBLE_BYTE)
2898
+ return HPDF_FALSE;
2899
+
2900
+ attr = (HPDF_CMapEncoderAttr)encoder->attr;
2901
+
2902
+ for (j = 0; j < HPDF_MAX_JWW_NUM; j++) {
2903
+ if (code == attr->jww_line_head[j])
2904
+ return HPDF_TRUE;
2905
+
2906
+ if (attr->jww_line_head[j] == 0)
2907
+ return HPDF_FALSE;
2908
+ }
2909
+
2910
+ return HPDF_FALSE;
2911
+ }
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+ HPDF_EXPORT(HPDF_UNICODE)
2918
+ HPDF_Encoder_GetUnicode (HPDF_Encoder encoder,
2919
+ HPDF_UINT16 code)
2920
+ {
2921
+ HPDF_PTRACE ((" HPDF_Encoder_GetUnicode\n"));
2922
+
2923
+ if (!HPDF_Encoder_Validate (encoder))
2924
+ return 0;
2925
+
2926
+ return HPDF_Encoder_ToUnicode (encoder, code);
2927
+ }
2928
+
2929
+
2930
+ HPDF_EXPORT(HPDF_ByteType)
2931
+ HPDF_Encoder_GetByteType (HPDF_Encoder encoder,
2932
+ const char *text,
2933
+ HPDF_UINT index)
2934
+ {
2935
+ HPDF_ParseText_Rec parse_state;
2936
+ HPDF_ByteType btype;
2937
+
2938
+ HPDF_PTRACE ((" HPDF_Encoder_GetByteType\n"));
2939
+
2940
+ if (!HPDF_Encoder_Validate (encoder))
2941
+ return HPDF_BYTE_TYPE_UNKNOWN;
2942
+
2943
+ if (encoder->type != HPDF_ENCODER_TYPE_DOUBLE_BYTE)
2944
+ return HPDF_BYTE_TYPE_SINGLE;
2945
+
2946
+ HPDF_Encoder_SetParseText (encoder, &parse_state, text, index + 1);
2947
+
2948
+ for (;;) {
2949
+ btype = HPDF_CMapEncoder_ByteType (encoder, &parse_state);
2950
+
2951
+ if (index == 0)
2952
+ break;
2953
+
2954
+ text++;
2955
+ if (!(*text))
2956
+ return HPDF_BYTE_TYPE_UNKNOWN;
2957
+ index--;
2958
+ }
2959
+
2960
+ return btype;
2961
+ }
2962
+
2963
+
2964
+ HPDF_EXPORT(HPDF_EncoderType)
2965
+ HPDF_Encoder_GetType (HPDF_Encoder encoder)
2966
+ {
2967
+ HPDF_PTRACE ((" HPDF_Encoder_GetType\n"));
2968
+
2969
+ if (!HPDF_Encoder_Validate (encoder))
2970
+ return HPDF_ENCODER_UNKNOWN;
2971
+
2972
+ return encoder->type;
2973
+ }
2974
+
2975
+
2976
+ HPDF_EXPORT(HPDF_WritingMode)
2977
+ HPDF_Encoder_GetWritingMode (HPDF_Encoder encoder)
2978
+ {
2979
+ HPDF_PTRACE ((" HPDF_Encoder_GetWritingMode\n"));
2980
+
2981
+ if (!HPDF_Encoder_Validate (encoder))
2982
+ return HPDF_WMODE_HORIZONTAL;
2983
+
2984
+ if (encoder->type == HPDF_ENCODER_TYPE_DOUBLE_BYTE) {
2985
+ HPDF_CMapEncoderAttr attr = (HPDF_CMapEncoderAttr)encoder->attr;
2986
+ return attr->writing_mode;
2987
+ }
2988
+
2989
+ return HPDF_WMODE_HORIZONTAL;
2990
+ }
2991
+