Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
7643 views
1
#include "mupdf/pdf.h"
2
3
#ifndef NOCJK
4
#include "gen_cmap_cns.h"
5
#include "gen_cmap_gb.h"
6
#include "gen_cmap_japan.h"
7
#include "gen_cmap_korea.h"
8
#endif
9
10
static const struct { char *name; pdf_cmap *cmap; } cmap_table[] =
11
{
12
#ifndef NOCJK
13
{"78-EUC-H",&cmap_78_EUC_H},
14
{"78-EUC-V",&cmap_78_EUC_V},
15
{"78-H",&cmap_78_H},
16
{"78-RKSJ-H",&cmap_78_RKSJ_H},
17
{"78-RKSJ-V",&cmap_78_RKSJ_V},
18
{"78-V",&cmap_78_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},
59
{"B5-H",&cmap_B5_H},
60
{"B5-V",&cmap_B5_V},
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},
83
{"GB-H",&cmap_GB_H},
84
{"GB-V",&cmap_GB_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},
99
{"H",&cmap_H},
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},
186
{"V",&cmap_V},
187
{"WP-Symbol",&cmap_WP_Symbol},
188
#endif
189
};
190
191
pdf_cmap *
192
pdf_load_builtin_cmap(fz_context *ctx, char *cmap_name)
193
{
194
int l = 0;
195
int r = nelem(cmap_table) - 1;
196
while (l <= r)
197
{
198
int m = (l + r) >> 1;
199
int c = strcmp(cmap_name, cmap_table[m].name);
200
if (c < 0)
201
r = m - 1;
202
else if (c > 0)
203
l = m + 1;
204
else
205
return cmap_table[m].cmap;
206
}
207
return NULL;
208
}
209
210