Go to most recent revision | Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
4680 | right-hear | 1 | #include "fitz.h" |
2 | #include "mupdf.h" |
||
3 | |||
4 | #ifndef NOCJK |
||
5 | #include "../generated/cmap_cns.h" |
||
6 | #include "../generated/cmap_gb.h" |
||
7 | #include "../generated/cmap_japan.h" |
||
8 | #include "../generated/cmap_korea.h" |
||
9 | #endif |
||
10 | |||
11 | static const struct { char *name; pdf_cmap *cmap; } cmap_table[] = |
||
12 | { |
||
13 | #ifndef NOCJK |
||
14 | {"78-EUC-H",&cmap_78_EUC_H}, |
||
15 | {"78-EUC-V",&cmap_78_EUC_V}, |
||
16 | {"78-H",&cmap_78_H}, |
||
17 | {"78-RKSJ-H",&cmap_78_RKSJ_H}, |
||
18 | {"78-RKSJ-V",&cmap_78_RKSJ_V}, |
||
19 | {"78-V",&cmap_78_V}, |
||
20 | {"78ms-RKSJ-H",&cmap_78ms_RKSJ_H}, |
||
21 | {"78ms-RKSJ-V",&cmap_78ms_RKSJ_V}, |
||
22 | {"83pv-RKSJ-H",&cmap_83pv_RKSJ_H}, |
||
23 | {"90ms-RKSJ-H",&cmap_90ms_RKSJ_H}, |
||
24 | {"90ms-RKSJ-V",&cmap_90ms_RKSJ_V}, |
||
25 | {"90msp-RKSJ-H",&cmap_90msp_RKSJ_H}, |
||
26 | {"90msp-RKSJ-V",&cmap_90msp_RKSJ_V}, |
||
27 | {"90pv-RKSJ-H",&cmap_90pv_RKSJ_H}, |
||
28 | {"90pv-RKSJ-V",&cmap_90pv_RKSJ_V}, |
||
29 | {"Add-H",&cmap_Add_H}, |
||
30 | {"Add-RKSJ-H",&cmap_Add_RKSJ_H}, |
||
31 | {"Add-RKSJ-V",&cmap_Add_RKSJ_V}, |
||
32 | {"Add-V",&cmap_Add_V}, |
||
33 | {"Adobe-CNS1-0",&cmap_Adobe_CNS1_0}, |
||
34 | {"Adobe-CNS1-1",&cmap_Adobe_CNS1_1}, |
||
35 | {"Adobe-CNS1-2",&cmap_Adobe_CNS1_2}, |
||
36 | {"Adobe-CNS1-3",&cmap_Adobe_CNS1_3}, |
||
37 | {"Adobe-CNS1-4",&cmap_Adobe_CNS1_4}, |
||
38 | {"Adobe-CNS1-5",&cmap_Adobe_CNS1_5}, |
||
39 | {"Adobe-CNS1-6",&cmap_Adobe_CNS1_6}, |
||
40 | {"Adobe-CNS1-UCS2",&cmap_Adobe_CNS1_UCS2}, |
||
41 | {"Adobe-GB1-0",&cmap_Adobe_GB1_0}, |
||
42 | {"Adobe-GB1-1",&cmap_Adobe_GB1_1}, |
||
43 | {"Adobe-GB1-2",&cmap_Adobe_GB1_2}, |
||
44 | {"Adobe-GB1-3",&cmap_Adobe_GB1_3}, |
||
45 | {"Adobe-GB1-4",&cmap_Adobe_GB1_4}, |
||
46 | {"Adobe-GB1-5",&cmap_Adobe_GB1_5}, |
||
47 | {"Adobe-GB1-UCS2",&cmap_Adobe_GB1_UCS2}, |
||
48 | {"Adobe-Japan1-0",&cmap_Adobe_Japan1_0}, |
||
49 | {"Adobe-Japan1-1",&cmap_Adobe_Japan1_1}, |
||
50 | {"Adobe-Japan1-2",&cmap_Adobe_Japan1_2}, |
||
51 | {"Adobe-Japan1-3",&cmap_Adobe_Japan1_3}, |
||
52 | {"Adobe-Japan1-4",&cmap_Adobe_Japan1_4}, |
||
53 | {"Adobe-Japan1-5",&cmap_Adobe_Japan1_5}, |
||
54 | {"Adobe-Japan1-6",&cmap_Adobe_Japan1_6}, |
||
55 | {"Adobe-Japan1-UCS2",&cmap_Adobe_Japan1_UCS2}, |
||
56 | {"Adobe-Japan2-0",&cmap_Adobe_Japan2_0}, |
||
57 | {"Adobe-Korea1-0",&cmap_Adobe_Korea1_0}, |
||
58 | {"Adobe-Korea1-1",&cmap_Adobe_Korea1_1}, |
||
59 | {"Adobe-Korea1-2",&cmap_Adobe_Korea1_2}, |
||
60 | {"Adobe-Korea1-UCS2",&cmap_Adobe_Korea1_UCS2}, |
||
61 | {"B5-H",&cmap_B5_H}, |
||
62 | {"B5-V",&cmap_B5_V}, |
||
63 | {"B5pc-H",&cmap_B5pc_H}, |
||
64 | {"B5pc-V",&cmap_B5pc_V}, |
||
65 | {"CNS-EUC-H",&cmap_CNS_EUC_H}, |
||
66 | {"CNS-EUC-V",&cmap_CNS_EUC_V}, |
||
67 | {"CNS1-H",&cmap_CNS1_H}, |
||
68 | {"CNS1-V",&cmap_CNS1_V}, |
||
69 | {"CNS2-H",&cmap_CNS2_H}, |
||
70 | {"CNS2-V",&cmap_CNS2_V}, |
||
71 | {"ETHK-B5-H",&cmap_ETHK_B5_H}, |
||
72 | {"ETHK-B5-V",&cmap_ETHK_B5_V}, |
||
73 | {"ETen-B5-H",&cmap_ETen_B5_H}, |
||
74 | {"ETen-B5-V",&cmap_ETen_B5_V}, |
||
75 | {"ETenms-B5-H",&cmap_ETenms_B5_H}, |
||
76 | {"ETenms-B5-V",&cmap_ETenms_B5_V}, |
||
77 | {"EUC-H",&cmap_EUC_H}, |
||
78 | {"EUC-V",&cmap_EUC_V}, |
||
79 | {"Ext-H",&cmap_Ext_H}, |
||
80 | {"Ext-RKSJ-H",&cmap_Ext_RKSJ_H}, |
||
81 | {"Ext-RKSJ-V",&cmap_Ext_RKSJ_V}, |
||
82 | {"Ext-V",&cmap_Ext_V}, |
||
83 | {"GB-EUC-H",&cmap_GB_EUC_H}, |
||
84 | {"GB-EUC-V",&cmap_GB_EUC_V}, |
||
85 | {"GB-H",&cmap_GB_H}, |
||
86 | {"GB-V",&cmap_GB_V}, |
||
87 | {"GBK-EUC-H",&cmap_GBK_EUC_H}, |
||
88 | {"GBK-EUC-V",&cmap_GBK_EUC_V}, |
||
89 | {"GBK2K-H",&cmap_GBK2K_H}, |
||
90 | {"GBK2K-V",&cmap_GBK2K_V}, |
||
91 | {"GBKp-EUC-H",&cmap_GBKp_EUC_H}, |
||
92 | {"GBKp-EUC-V",&cmap_GBKp_EUC_V}, |
||
93 | {"GBT-EUC-H",&cmap_GBT_EUC_H}, |
||
94 | {"GBT-EUC-V",&cmap_GBT_EUC_V}, |
||
95 | {"GBT-H",&cmap_GBT_H}, |
||
96 | {"GBT-V",&cmap_GBT_V}, |
||
97 | {"GBTpc-EUC-H",&cmap_GBTpc_EUC_H}, |
||
98 | {"GBTpc-EUC-V",&cmap_GBTpc_EUC_V}, |
||
99 | {"GBpc-EUC-H",&cmap_GBpc_EUC_H}, |
||
100 | {"GBpc-EUC-V",&cmap_GBpc_EUC_V}, |
||
101 | {"H",&cmap_H}, |
||
102 | {"HKdla-B5-H",&cmap_HKdla_B5_H}, |
||
103 | {"HKdla-B5-V",&cmap_HKdla_B5_V}, |
||
104 | {"HKdlb-B5-H",&cmap_HKdlb_B5_H}, |
||
105 | {"HKdlb-B5-V",&cmap_HKdlb_B5_V}, |
||
106 | {"HKgccs-B5-H",&cmap_HKgccs_B5_H}, |
||
107 | {"HKgccs-B5-V",&cmap_HKgccs_B5_V}, |
||
108 | {"HKm314-B5-H",&cmap_HKm314_B5_H}, |
||
109 | {"HKm314-B5-V",&cmap_HKm314_B5_V}, |
||
110 | {"HKm471-B5-H",&cmap_HKm471_B5_H}, |
||
111 | {"HKm471-B5-V",&cmap_HKm471_B5_V}, |
||
112 | {"HKscs-B5-H",&cmap_HKscs_B5_H}, |
||
113 | {"HKscs-B5-V",&cmap_HKscs_B5_V}, |
||
114 | {"Hankaku",&cmap_Hankaku}, |
||
115 | {"Hiragana",&cmap_Hiragana}, |
||
116 | {"Hojo-EUC-H",&cmap_Hojo_EUC_H}, |
||
117 | {"Hojo-EUC-V",&cmap_Hojo_EUC_V}, |
||
118 | {"Hojo-H",&cmap_Hojo_H}, |
||
119 | {"Hojo-V",&cmap_Hojo_V}, |
||
120 | {"KSC-EUC-H",&cmap_KSC_EUC_H}, |
||
121 | {"KSC-EUC-V",&cmap_KSC_EUC_V}, |
||
122 | {"KSC-H",&cmap_KSC_H}, |
||
123 | {"KSC-Johab-H",&cmap_KSC_Johab_H}, |
||
124 | {"KSC-Johab-V",&cmap_KSC_Johab_V}, |
||
125 | {"KSC-V",&cmap_KSC_V}, |
||
126 | {"KSCms-UHC-H",&cmap_KSCms_UHC_H}, |
||
127 | {"KSCms-UHC-HW-H",&cmap_KSCms_UHC_HW_H}, |
||
128 | {"KSCms-UHC-HW-V",&cmap_KSCms_UHC_HW_V}, |
||
129 | {"KSCms-UHC-V",&cmap_KSCms_UHC_V}, |
||
130 | {"KSCpc-EUC-H",&cmap_KSCpc_EUC_H}, |
||
131 | {"KSCpc-EUC-V",&cmap_KSCpc_EUC_V}, |
||
132 | {"Katakana",&cmap_Katakana}, |
||
133 | {"NWP-H",&cmap_NWP_H}, |
||
134 | {"NWP-V",&cmap_NWP_V}, |
||
135 | {"RKSJ-H",&cmap_RKSJ_H}, |
||
136 | {"RKSJ-V",&cmap_RKSJ_V}, |
||
137 | {"Roman",&cmap_Roman}, |
||
138 | {"UniCNS-UCS2-H",&cmap_UniCNS_UCS2_H}, |
||
139 | {"UniCNS-UCS2-V",&cmap_UniCNS_UCS2_V}, |
||
140 | {"UniCNS-UTF16-H",&cmap_UniCNS_UTF16_H}, |
||
141 | {"UniCNS-UTF16-V",&cmap_UniCNS_UTF16_V}, |
||
142 | {"UniGB-UCS2-H",&cmap_UniGB_UCS2_H}, |
||
143 | {"UniGB-UCS2-V",&cmap_UniGB_UCS2_V}, |
||
144 | {"UniGB-UTF16-H",&cmap_UniGB_UTF16_H}, |
||
145 | {"UniGB-UTF16-V",&cmap_UniGB_UTF16_V}, |
||
146 | {"UniHojo-UCS2-H",&cmap_UniHojo_UCS2_H}, |
||
147 | {"UniHojo-UCS2-V",&cmap_UniHojo_UCS2_V}, |
||
148 | {"UniHojo-UTF16-H",&cmap_UniHojo_UTF16_H}, |
||
149 | {"UniHojo-UTF16-V",&cmap_UniHojo_UTF16_V}, |
||
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 | {"UniJISPro-UCS2-HW-V",&cmap_UniJISPro_UCS2_HW_V}, |
||
157 | {"UniJISPro-UCS2-V",&cmap_UniJISPro_UCS2_V}, |
||
158 | {"UniKS-UCS2-H",&cmap_UniKS_UCS2_H}, |
||
159 | {"UniKS-UCS2-V",&cmap_UniKS_UCS2_V}, |
||
160 | {"UniKS-UTF16-H",&cmap_UniKS_UTF16_H}, |
||
161 | {"UniKS-UTF16-V",&cmap_UniKS_UTF16_V}, |
||
162 | {"V",&cmap_V}, |
||
163 | {"WP-Symbol",&cmap_WP_Symbol}, |
||
164 | #endif |
||
165 | }; |
||
166 | |||
167 | pdf_cmap * |
||
168 | pdf_find_builtin_cmap(char *cmap_name) |
||
169 | { |
||
170 | int l = 0; |
||
171 | int r = nelem(cmap_table) - 1; |
||
172 | while (l <= r) |
||
173 | { |
||
174 | int m = (l + r) >> 1; |
||
175 | int c = strcmp(cmap_name, cmap_table[m].name); |
||
176 | if (c < 0) |
||
177 | r = m - 1; |
||
178 | else if (c > 0) |
||
179 | l = m + 1; |
||
180 | else |
||
181 | return cmap_table[m].cmap; |
||
182 | } |
||
183 | return NULL; |
||
184 | }>=> |