4 #include "gen_cmap_cns.h"
5 #include "gen_cmap_gb.h"
6 #include "gen_cmap_japan.h"
7 #include "gen_cmap_korea.h"
10 static const struct { char *name; pdf_cmap *cmap; } cmap_table[] =
13 {"78-EUC-H",&cmap_78_EUC_H},
14 {"78-EUC-V",&cmap_78_EUC_V},
16 {"78-RKSJ-H",&cmap_78_RKSJ_H},
17 {"78-RKSJ-V",&cmap_78_RKSJ_V},
19 {"78ms-RKSJ-H",&cmap_78ms_RKSJ_H},
20 {"78ms-RKSJ-V",&cmap_78ms_RKSJ_V},
21 {"83pv-RKSJ-H",&cmap_83pv_RKSJ_H},
22 {"90ms-RKSJ-H",&cmap_90ms_RKSJ_H},
23 {"90ms-RKSJ-V",&cmap_90ms_RKSJ_V},
24 {"90msp-RKSJ-H",&cmap_90msp_RKSJ_H},
25 {"90msp-RKSJ-V",&cmap_90msp_RKSJ_V},
26 {"90pv-RKSJ-H",&cmap_90pv_RKSJ_H},
27 {"90pv-RKSJ-V",&cmap_90pv_RKSJ_V},
28 {"Add-H",&cmap_Add_H},
29 {"Add-RKSJ-H",&cmap_Add_RKSJ_H},
30 {"Add-RKSJ-V",&cmap_Add_RKSJ_V},
31 {"Add-V",&cmap_Add_V},
32 {"Adobe-CNS1-0",&cmap_Adobe_CNS1_0},
33 {"Adobe-CNS1-1",&cmap_Adobe_CNS1_1},
34 {"Adobe-CNS1-2",&cmap_Adobe_CNS1_2},
35 {"Adobe-CNS1-3",&cmap_Adobe_CNS1_3},
36 {"Adobe-CNS1-4",&cmap_Adobe_CNS1_4},
37 {"Adobe-CNS1-5",&cmap_Adobe_CNS1_5},
38 {"Adobe-CNS1-6",&cmap_Adobe_CNS1_6},
39 {"Adobe-CNS1-UCS2",&cmap_Adobe_CNS1_UCS2},
40 {"Adobe-GB1-0",&cmap_Adobe_GB1_0},
41 {"Adobe-GB1-1",&cmap_Adobe_GB1_1},
42 {"Adobe-GB1-2",&cmap_Adobe_GB1_2},
43 {"Adobe-GB1-3",&cmap_Adobe_GB1_3},
44 {"Adobe-GB1-4",&cmap_Adobe_GB1_4},
45 {"Adobe-GB1-5",&cmap_Adobe_GB1_5},
46 {"Adobe-GB1-UCS2",&cmap_Adobe_GB1_UCS2},
47 {"Adobe-Japan1-0",&cmap_Adobe_Japan1_0},
48 {"Adobe-Japan1-1",&cmap_Adobe_Japan1_1},
49 {"Adobe-Japan1-2",&cmap_Adobe_Japan1_2},
50 {"Adobe-Japan1-3",&cmap_Adobe_Japan1_3},
51 {"Adobe-Japan1-4",&cmap_Adobe_Japan1_4},
52 {"Adobe-Japan1-5",&cmap_Adobe_Japan1_5},
53 {"Adobe-Japan1-6",&cmap_Adobe_Japan1_6},
54 {"Adobe-Japan1-UCS2",&cmap_Adobe_Japan1_UCS2},
55 {"Adobe-Korea1-0",&cmap_Adobe_Korea1_0},
56 {"Adobe-Korea1-1",&cmap_Adobe_Korea1_1},
57 {"Adobe-Korea1-2",&cmap_Adobe_Korea1_2},
58 {"Adobe-Korea1-UCS2",&cmap_Adobe_Korea1_UCS2},
61 {"B5pc-H",&cmap_B5pc_H},
62 {"B5pc-V",&cmap_B5pc_V},
63 {"CNS-EUC-H",&cmap_CNS_EUC_H},
64 {"CNS-EUC-V",&cmap_CNS_EUC_V},
65 {"CNS1-H",&cmap_CNS1_H},
66 {"CNS1-V",&cmap_CNS1_V},
67 {"CNS2-H",&cmap_CNS2_H},
68 {"CNS2-V",&cmap_CNS2_V},
69 {"ETHK-B5-H",&cmap_ETHK_B5_H},
70 {"ETHK-B5-V",&cmap_ETHK_B5_V},
71 {"ETen-B5-H",&cmap_ETen_B5_H},
72 {"ETen-B5-V",&cmap_ETen_B5_V},
73 {"ETenms-B5-H",&cmap_ETenms_B5_H},
74 {"ETenms-B5-V",&cmap_ETenms_B5_V},
75 {"EUC-H",&cmap_EUC_H},
76 {"EUC-V",&cmap_EUC_V},
77 {"Ext-H",&cmap_Ext_H},
78 {"Ext-RKSJ-H",&cmap_Ext_RKSJ_H},
79 {"Ext-RKSJ-V",&cmap_Ext_RKSJ_V},
80 {"Ext-V",&cmap_Ext_V},
81 {"GB-EUC-H",&cmap_GB_EUC_H},
82 {"GB-EUC-V",&cmap_GB_EUC_V},
85 {"GBK-EUC-H",&cmap_GBK_EUC_H},
86 {"GBK-EUC-V",&cmap_GBK_EUC_V},
87 {"GBK2K-H",&cmap_GBK2K_H},
88 {"GBK2K-V",&cmap_GBK2K_V},
89 {"GBKp-EUC-H",&cmap_GBKp_EUC_H},
90 {"GBKp-EUC-V",&cmap_GBKp_EUC_V},
91 {"GBT-EUC-H",&cmap_GBT_EUC_H},
92 {"GBT-EUC-V",&cmap_GBT_EUC_V},
93 {"GBT-H",&cmap_GBT_H},
94 {"GBT-V",&cmap_GBT_V},
95 {"GBTpc-EUC-H",&cmap_GBTpc_EUC_H},
96 {"GBTpc-EUC-V",&cmap_GBTpc_EUC_V},
97 {"GBpc-EUC-H",&cmap_GBpc_EUC_H},
98 {"GBpc-EUC-V",&cmap_GBpc_EUC_V},
100 {"HKdla-B5-H",&cmap_HKdla_B5_H},
101 {"HKdla-B5-V",&cmap_HKdla_B5_V},
102 {"HKdlb-B5-H",&cmap_HKdlb_B5_H},
103 {"HKdlb-B5-V",&cmap_HKdlb_B5_V},
104 {"HKgccs-B5-H",&cmap_HKgccs_B5_H},
105 {"HKgccs-B5-V",&cmap_HKgccs_B5_V},
106 {"HKm314-B5-H",&cmap_HKm314_B5_H},
107 {"HKm314-B5-V",&cmap_HKm314_B5_V},
108 {"HKm471-B5-H",&cmap_HKm471_B5_H},
109 {"HKm471-B5-V",&cmap_HKm471_B5_V},
110 {"HKscs-B5-H",&cmap_HKscs_B5_H},
111 {"HKscs-B5-V",&cmap_HKscs_B5_V},
112 {"Hankaku",&cmap_Hankaku},
113 {"Hiragana",&cmap_Hiragana},
114 {"KSC-EUC-H",&cmap_KSC_EUC_H},
115 {"KSC-EUC-V",&cmap_KSC_EUC_V},
116 {"KSC-H",&cmap_KSC_H},
117 {"KSC-Johab-H",&cmap_KSC_Johab_H},
118 {"KSC-Johab-V",&cmap_KSC_Johab_V},
119 {"KSC-V",&cmap_KSC_V},
120 {"KSCms-UHC-H",&cmap_KSCms_UHC_H},
121 {"KSCms-UHC-HW-H",&cmap_KSCms_UHC_HW_H},
122 {"KSCms-UHC-HW-V",&cmap_KSCms_UHC_HW_V},
123 {"KSCms-UHC-V",&cmap_KSCms_UHC_V},
124 {"KSCpc-EUC-H",&cmap_KSCpc_EUC_H},
125 {"KSCpc-EUC-V",&cmap_KSCpc_EUC_V},
126 {"Katakana",&cmap_Katakana},
127 {"NWP-H",&cmap_NWP_H},
128 {"NWP-V",&cmap_NWP_V},
129 {"RKSJ-H",&cmap_RKSJ_H},
130 {"RKSJ-V",&cmap_RKSJ_V},
131 {"Roman",&cmap_Roman},
132 {"UniCNS-UCS2-H",&cmap_UniCNS_UCS2_H},
133 {"UniCNS-UCS2-V",&cmap_UniCNS_UCS2_V},
134 {"UniCNS-UTF16-H",&cmap_UniCNS_UTF16_H},
135 {"UniCNS-UTF16-V",&cmap_UniCNS_UTF16_V},
136 {"UniCNS-UTF32-H",&cmap_UniCNS_UTF32_H},
137 {"UniCNS-UTF32-V",&cmap_UniCNS_UTF32_V},
138 {"UniCNS-UTF8-H",&cmap_UniCNS_UTF8_H},
139 {"UniCNS-UTF8-V",&cmap_UniCNS_UTF8_V},
140 {"UniCNS-X",&cmap_UniCNS_X},
141 {"UniGB-UCS2-H",&cmap_UniGB_UCS2_H},
142 {"UniGB-UCS2-V",&cmap_UniGB_UCS2_V},
143 {"UniGB-UTF16-H",&cmap_UniGB_UTF16_H},
144 {"UniGB-UTF16-V",&cmap_UniGB_UTF16_V},
145 {"UniGB-UTF32-H",&cmap_UniGB_UTF32_H},
146 {"UniGB-UTF32-V",&cmap_UniGB_UTF32_V},
147 {"UniGB-UTF8-H",&cmap_UniGB_UTF8_H},
148 {"UniGB-UTF8-V",&cmap_UniGB_UTF8_V},
149 {"UniGB-X",&cmap_UniGB_X},
150 {"UniJIS-UCS2-H",&cmap_UniJIS_UCS2_H},
151 {"UniJIS-UCS2-HW-H",&cmap_UniJIS_UCS2_HW_H},
152 {"UniJIS-UCS2-HW-V",&cmap_UniJIS_UCS2_HW_V},
153 {"UniJIS-UCS2-V",&cmap_UniJIS_UCS2_V},
154 {"UniJIS-UTF16-H",&cmap_UniJIS_UTF16_H},
155 {"UniJIS-UTF16-V",&cmap_UniJIS_UTF16_V},
156 {"UniJIS-UTF32-H",&cmap_UniJIS_UTF32_H},
157 {"UniJIS-UTF32-V",&cmap_UniJIS_UTF32_V},
158 {"UniJIS-UTF8-H",&cmap_UniJIS_UTF8_H},
159 {"UniJIS-UTF8-V",&cmap_UniJIS_UTF8_V},
160 {"UniJIS-X",&cmap_UniJIS_X},
161 {"UniJIS-X16",&cmap_UniJIS_X16},
162 {"UniJIS-X32",&cmap_UniJIS_X32},
163 {"UniJIS-X8",&cmap_UniJIS_X8},
164 {"UniJIS2004-UTF16-H",&cmap_UniJIS2004_UTF16_H},
165 {"UniJIS2004-UTF16-V",&cmap_UniJIS2004_UTF16_V},
166 {"UniJIS2004-UTF32-H",&cmap_UniJIS2004_UTF32_H},
167 {"UniJIS2004-UTF32-V",&cmap_UniJIS2004_UTF32_V},
168 {"UniJIS2004-UTF8-H",&cmap_UniJIS2004_UTF8_H},
169 {"UniJIS2004-UTF8-V",&cmap_UniJIS2004_UTF8_V},
170 {"UniJISPro-UCS2-HW-V",&cmap_UniJISPro_UCS2_HW_V},
171 {"UniJISPro-UCS2-V",&cmap_UniJISPro_UCS2_V},
172 {"UniJISPro-UTF8-V",&cmap_UniJISPro_UTF8_V},
173 {"UniJISX0213-UTF32-H",&cmap_UniJISX0213_UTF32_H},
174 {"UniJISX0213-UTF32-V",&cmap_UniJISX0213_UTF32_V},
175 {"UniJISX02132004-UTF32-H",&cmap_UniJISX02132004_UTF32_H},
176 {"UniJISX02132004-UTF32-V",&cmap_UniJISX02132004_UTF32_V},
177 {"UniKS-UCS2-H",&cmap_UniKS_UCS2_H},
178 {"UniKS-UCS2-V",&cmap_UniKS_UCS2_V},
179 {"UniKS-UTF16-H",&cmap_UniKS_UTF16_H},
180 {"UniKS-UTF16-V",&cmap_UniKS_UTF16_V},
181 {"UniKS-UTF32-H",&cmap_UniKS_UTF32_H},
182 {"UniKS-UTF32-V",&cmap_UniKS_UTF32_V},
183 {"UniKS-UTF8-H",&cmap_UniKS_UTF8_H},
184 {"UniKS-UTF8-V",&cmap_UniKS_UTF8_V},
185 {"UniKS-X",&cmap_UniKS_X},
187 {"WP-Symbol",&cmap_WP_Symbol},
192 pdf_load_builtin_cmap(fz_context *ctx, char *cmap_name)
195 int r = nelem(cmap_table) - 1;
198 int m = (l + r) >> 1;
199 int c = strcmp(cmap_name, cmap_table[m].name);
205 return cmap_table[m].cmap;