1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #include <algorithm>
8 
9 #include "xfa/src/foxitlib.h"
10 #include "xfa/src/fxfa/src/common/xfa_common.h"
11 #include "xfa_fontmgr.h"
12 #include "xfa_ffdoc.h"
13 #include "xfa_ffConfigAcc.h"
14 #include "xfa_ffapp.h"
15 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
16 static const XFA_FONTINFO g_XFAFontsMap[] = {
17     {0x01d5d33e, L"SimSun", L"Arial", 0, 936},
18     {0x01e4f102, L"YouYuan", L"Arial", 1, 936},
19     {0x030549dc, L"LiSu", L"Arial", 1, 936},
20     {0x032edd44, L"Simhei", L"Arial", 1, 936},
21     {0x03eac6fc, L"PoorRichard-Regular", L"Arial", 2, 1252},
22     {0x03ed90e6, L"Nina", L"Arial", 0, 1252},
23     {0x077b56b3, L"KingsoftPhoneticPlain", L"Arial", 0, 1252},
24     {0x078ed524, L"MicrosoftSansSerif", L"Arial", 0, 1252},
25     {0x089b18a9, L"Arial", L"Arial", 0, 1252},
26     {0x0b2cad72, L"MonotypeCorsiva", L"Arial", 8, 1252},
27     {0x0bb003e7, L"Kartika", L"Arial", 2, 1252},
28     {0x0bb469df, L"VinerHandITC", L"Arial", 8, 1252},
29     {0x0bc1a851, L"SegoeUI", L"Arial", 0, 1252},
30     {0x0c112ebd, L"KozukaGothicPro-VIM", L"Arial", 0, 1252},
31     {0x0cfcb9c1, L"AdobeThai", L"Kokila,Arial Narrow", 0, 847},
32     {0x0e7de0f9, L"Playbill", L"Arial", 0, 1252},
33     {0x0eff47c3, L"STHupo", L"Arial", 0, 936},
34     {0x107ad374, L"Constantia", L"Arial", 2, 1252},
35     {0x12194c2d, L"KunstlerScript", L"Arial", 8, 1252},
36     {0x135ef6a1, L"MinionProSmBd",
37      L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
38     {0x158c4049, L"Garamond", L"Arial", 2, 1252},
39     {0x160ecb24, L"STZhongsong", L"Arial", 0, 936},
40     {0x161ed07e, L"MSGothic", L"Arial", 1, 1252},
41     {0x171d1ed1, L"SnapITC-Regular", L"Arial", 0, 1252},
42     {0x18d1188f, L"Cambria", L"Arial", 2, 1252},
43     {0x18eaf350, L"ArialUnicodeMS", L"Arial", 0, 936},
44     {0x1a92d115, L"MingLiU", L"Arial", 1, 1252},
45     {0x1cc217c6, L"TrebuchetMS", L"Arial", 0, 1252},
46     {0x1d649596, L"BasemicTimes", L"Arial", 0, 1252},
47     {0x1e34ee60, L"BellMT", L"Arial", 2, 1252},
48     {0x1eb36945, L"CooperBlack", L"Arial", 2, 1252},
49     {0x1ef7787d, L"BatangChe", L"Arial", 1, 1252},
50     {0x20b3bd3a, L"BrushScriptMT", L"Arial", 8, 1252},
51     {0x220877aa, L"Candara", L"Arial", 0, 1252},
52     {0x22135007, L"FreestyleScript-Regular", L"Arial", 8, 1252},
53     {0x251059c3, L"Chiller", L"Arial", 0, 1252},
54     {0x25bed6dd, L"MSReferenceSansSerif", L"Arial", 0, 1252},
55     {0x28154c81, L"Parchment-Regular", L"Arial", 8, 1252},
56     {0x29711eb9, L"STLiti", L"Arial", 0, 936},
57     {0x2b1993b4, L"Basemic", L"Arial", 0, 1252},
58     {0x2b316339, L"NiagaraSolid-Reg", L"Arial", 0, 1252},
59     {0x2c147529, L"FootlightMTLight", L"Arial", 0, 1252},
60     {0x2c198928, L"HarlowSolid", L"Arial", 0, 1252},
61     {0x2c6ac6b2, L"LucidaBright", L"Arial", 2, 1252},
62     {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"Arial", 0, 1252},
63     {0x2d5a47b0, L"STCaiyun", L"Arial", 0, 936},
64     {0x2def26bf, L"BernardMT-Condensed", L"Arial", 0, 1252},
65     {0x2fd8930b, L"KozukaMinchoPr6NR", L"Arial", 0, 1252},
66     {0x3115525a, L"FangSong_GB2312", L"Arial", 0, 1252},
67     {0x31327817, L"MyriadPro",
68      L"Calibri,Corbel,Candara,Cambria Math,Franklin Gothic Medium,Arial "
69      L"Narrow,Times New Roman",
70      0, 1252},
71     {0x32244975, L"Helvetica", L"Arial", 0, 1252},
72     {0x32ac995c, L"Terminal", L"Arial", 0, 1252},
73     {0x338d648a, L"NiagaraEngraved-Reg", L"Arial", 0, 1252},
74     {0x33bb65f2, L"Sylfaen", L"Arial", 2, 1252},
75     {0x3402c30e, L"MSPMincho", L"Arial", 2, 1252},
76     {0x3412bf31, L"SimSun-PUA", L"Arial", 0, 936},
77     {0x36eb39b9, L"BerlinSansFB", L"Arial", 0, 1252},
78     {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
79     {0x3864c4f6, L"HighTowerText", L"Arial", 2, 1252},
80     {0x3a257d03, L"FangSong_GB2312", L"Arial", 0, 1252},
81     {0x3cdae668, L"FreestyleScript", L"Arial", 8, 1252},
82     {0x3d55aed7, L"Jokerman", L"Arial", 0, 1252},
83     {0x3d5b4385, L"PMingLiU", L"Arial", 2, 1252},
84     {0x3d9b7669, L"EstrangeloEdessa", L"Arial", 0, 1252},
85     {0x3e532d74, L"FranklinGothicMedium", L"Arial", 0, 1252},
86     {0x3e6aa32d, L"NSimSun", L"Arial", 1, 936},
87     {0x3f6c36a8, L"Gautami", L"Arial", 0, 1252},
88     {0x3ff32662, L"Chiller-Regular", L"Arial", 0, 1252},
89     {0x409de312, L"ModernNo.20", L"Arial", 2, 1252},
90     {0x41443c5e, L"Georgia", L"Arial", 2, 1252},
91     {0x4160ade5, L"BellGothicStdBlack",
92      L"Arial,Arial Unicode MS,Book Antiqua,Dotum,Georgia", 0, 1252},
93     {0x421976c4, L"Modern-Regular", L"Arial", 2, 1252},
94     {0x422a7252, L"Stencil", L"Arial", 0, 1252},
95     {0x42c8554f, L"Fixedsys", L"Arial", 0, 1252},
96     {0x435cb41d, L"Roman", L"Arial", 0, 1252},
97     {0x47882383, L"CourierNew", L"Arial", 1, 1252},
98     {0x480a2338, L"BerlinSansFBDemi", L"Arial", 0, 1252},
99     {0x480bf7a4, L"CourierStd", L"Courier New,Verdana", 0, 1252},
100     {0x481ad6ed, L"VladimirScript", L"Arial", 8, 1252},
101     {0x4911577a, L"YouYuan", L"Arial", 1, 936},
102     {0x4a788d72, L"STXingkai", L"Arial", 0, 936},
103     {0x4bf88566, L"SegoeCondensed", L"Arial", 0, 1252},
104     {0x4ccf51a4, L"BerlinSansFB-Reg", L"Arial", 0, 1252},
105     {0x4ea967ce, L"GulimChe", L"Arial", 1, 1252},
106     {0x4f68bd79, L"LetterGothicStd", L"Courier New,Verdana", 0, 1252},
107     {0x51a0d0e6, L"KozukaGothicPr6NM", L"Arial", 0, 1252},
108     {0x531b3dea, L"BasemicSymbol", L"Arial", 0, 1252},
109     {0x5333fd39, L"CalifornianFB-Reg", L"Arial", 2, 1252},
110     {0x53561a54, L"FZYTK--GBK1-0", L"Arial", 0, 936},
111     {0x55e0dde6, L"LucidaSansTypewriter", L"Arial", 0, 1252},
112     {0x574d4d3d, L"AdobeArabic", L"Arial Narrow", 0, 1252},
113     {0x5792e759, L"STKaiti", L"Arial", 0, 936},
114     {0x5921978e, L"LucidaSansUnicode", L"Arial", 0, 1252},
115     {0x594e2da4, L"Vrinda", L"Arial", 0, 1252},
116     {0x59baa9a2, L"KaiTi_GB2312", L"Arial", 0, 1252},
117     {0x5cfedf4f, L"BaskOldFace", L"Arial", 0, 1252},
118     {0x5f97921c, L"AdobeMyungjoStdM",
119      L"Batang,Bookman Old Style,Consolas,STZhongsong", 0, 936},
120     {0x5fefbfad, L"Batang", L"Arial", 2, 1252},
121     {0x605342b9, L"DotumChe", L"Arial", 1, 1252},
122     {0x608c5f9a, L"KaiTi_GB2312", L"Arial", 0, 936},
123     {0x61efd0d1, L"MaturaMTScriptCapitals", L"Arial", 0, 1252},
124     {0x626608a9, L"MVBoli", L"Arial", 0, 1252},
125     {0x630501a3, L"SmallFonts", L"Arial", 0, 1252},
126     {0x65d0e2a9, L"FZYTK--GBK1-0", L"Arial", 0, 936},
127     {0x669f29e1, L"FZSTK--GBK1-0", L"Arial", 0, 936},
128     {0x673a9e5f, L"Tunga", L"Arial", 0, 1252},
129     {0x691aa4ce, L"NiagaraSolid", L"Arial", 0, 1252},
130     {0x696259b7, L"Corbel", L"Arial", 0, 1252},
131     {0x696ee9be, L"STXihei", L"Arial", 0, 936},
132     {0x6c59cf69, L"Dotum", L"Arial", 0, 1252},
133     {0x707fa561, L"Gungsuh", L"Arial", 2, 1252},
134     {0x71416bb2, L"ZWAdobeF", L"Arial", 0, 1252},
135     {0x71b41801, L"Verdana", L"Arial", 0, 1252},
136     {0x73f25e4c, L"PalatinoLinotype", L"Arial", 0, 1252},
137     {0x73f4d19f, L"NiagaraEngraved", L"Arial", 0, 1252},
138     {0x74001694, L"MyriadProBlack", L"Book Antiqua,Constantia,Dotum,Georgia", 0,
139      1252},
140     {0x74b14d8f, L"Haettenschweiler", L"Arial", 0, 1252},
141     {0x74cb44ee, L"NSimSun", L"Arial", 1, 936},
142     {0x76b4d7ff, L"Shruti", L"Arial", 0, 1252},
143     {0x788b3533, L"Webdings", L"Arial", 6, 42},
144     {0x797dde99, L"MSSerif", L"Arial", 0, 1252},
145     {0x7a0f9e9e, L"MSMincho", L"Arial", 1, 1252},
146     {0x7b439caf, L"OldEnglishTextMT", L"Arial", 0, 1252},
147     {0x8213a433, L"LucidaSans-Typewriter", L"Arial", 0, 1252},
148     {0x82fec929, L"AdobeSongStdL",
149      L"Centaur,Calibri,STSong,Bell MT,Garamond,Times New Roman", 0, 936},
150     {0x83581825, L"Modern", L"Arial", 0, 1252},
151     {0x835a2823, L"Algerian", L"Arial", 0, 1252},
152     {0x83dab9f5, L"Script", L"Arial", 0, 1252},
153     {0x847b56da, L"Tahoma", L"Arial", 0, 1252},
154     {0x8a783cb2, L"SimSun-PUA", L"Arial", 0, 1252},
155     {0x8b5cac0e, L"Onyx", L"Arial", 0, 1252},
156     {0x8c6a499e, L"Gulim", L"Arial", 0, 1252},
157     {0x8e0af790, L"JuiceITC", L"Arial", 0, 1252},
158     {0x8e8d43b2, L"Centaur", L"Arial", 2, 1252},
159     {0x8ee4dcca, L"BookshelfSymbol7", L"Arial", 0, 1252},
160     {0x90794800, L"BellGothicStdLight", L"Bell MT,Calibri,Times New Roman", 0,
161      1252},
162     {0x909b516a, L"Century", L"Arial", 2, 1252},
163     {0x92ae370d, L"MSOutlook", L"Arial", 4, 42},
164     {0x93c9fbf1, L"LucidaFax", L"Arial", 2, 1252},
165     {0x9565085e, L"BookAntiqua", L"Arial", 2, 1252},
166     {0x9856d95d, L"AdobeMingStdL", L"Arial,Arial Unicode MS,Cambria,BatangChe",
167      0, 949},
168     {0x9bbadd6b, L"ColonnaMT", L"Arial", 0, 1252},
169     {0x9cbd16a4, L"ShowcardGothic-Reg", L"Arial", 0, 1252},
170     {0x9d73008e, L"MSSansSerif", L"Arial", 0, 1252},
171     {0xa0607db1, L"GungsuhChe", L"Arial", 1, 1252},
172     {0xa0bcf6a1, L"LatinWide", L"Arial", 2, 1252},
173     {0xa1429b36, L"Symbol", L"Arial", 6, 42},
174     {0xa1fa5abc, L"Wingdings2", L"Arial", 6, 42},
175     {0xa1fa5abd, L"Wingdings3", L"Arial", 6, 42},
176     {0xa427bad4, L"InformalRoman-Regular", L"Arial", 8, 1252},
177     {0xa8b92ece, L"FZSTK--GBK1-0", L"Arial", 0, 936},
178     {0xa8d83ece, L"CalifornianFB", L"Arial", 2, 1252},
179     {0xaa3e082c, L"Kingsoft-Phonetic", L"Arial", 0, 1252},
180     {0xaa6bcabe, L"HarlowSolidItalic", L"Arial", 0, 1252},
181     {0xade5337c, L"MSUIGothic", L"Arial", 0, 1252},
182     {0xb08dd941, L"WideLatin", L"Arial", 2, 1252},
183     {0xb207f05d, L"PoorRichard", L"Arial", 2, 1252},
184     {0xb3bc492f, L"JuiceITC-Regular", L"Arial", 0, 1252},
185     {0xb5545399, L"Marlett", L"Arial", 4, 42},
186     {0xb5dd1ebb, L"BritannicBold", L"Arial", 0, 1252},
187     {0xb699c1c5, L"LucidaCalligraphy-Italic", L"Arial", 0, 1252},
188     {0xb725d629, L"TimesNewRoman", L"Arial", 2, 1252},
189     {0xb7eaebeb, L"AdobeHeitiStdR", L"Batang,Century,Dotum", 0, 936},
190     {0xbd29c486, L"BerlinSansFBDemi-Bold", L"Arial", 0, 1252},
191     {0xbe8a8db4, L"BookshelfSymbolSeven", L"Arial", 0, 1252},
192     {0xc16c0118, L"AdobeHebrew", L"Bell MT,Berlin Sans FB,Calibri", 0, 1252},
193     {0xc318b0af, L"MyriadProLight", L"Calibri,STFangsong,Times New Roman", 0,
194      1252},
195     {0xc65e5659, L"CambriaMath", L"Arial", 2, 1252},
196     {0xc75c8f05, L"LucidaConsole", L"Arial", 1, 1252},
197     {0xca7c35d6, L"Calibri", L"Arial", 0, 1252},
198     {0xcb053f53, L"MicrosoftYaHei", L"Arial", 0, 936},
199     {0xcb7190f9, L"Magneto-Bold", L"Arial", 0, 1252},
200     {0xcca00cc5, L"System", L"Arial", 0, 1252},
201     {0xccad6f76, L"Jokerman-Regular", L"Arial", 0, 1252},
202     {0xccc5818c, L"EuroSign", L"Arial", 0, 1252},
203     {0xcf3d7234, L"LucidaHandwriting-Italic", L"Arial", 0, 1252},
204     {0xcf7b8fdb, L"MinionPro",
205      L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
206     {0xcfe5755f, L"Simhei", L"Arial", 1, 936},
207     {0xd011f4ee, L"MSPGothic", L"Arial", 0, 1252},
208     {0xd060e7ef, L"Vivaldi", L"Arial", 8, 1252},
209     {0xd07edec1, L"FranklinGothic-Medium", L"Arial", 0, 1252},
210     {0xd107243f, L"SimSun", L"Arial", 0, 936},
211     {0xd1881562, L"ArialNarrow", L"Arial Narrow", 0, 1252},
212     {0xd22b7dce, L"BodoniMTPosterCompressed", L"Arial", 0, 1252},
213     {0xd22bfa60, L"ComicSansMS", L"Arial", 8, 1252},
214     {0xd3bd0e35, L"Bauhaus93", L"Arial", 0, 1252},
215     {0xd429ee7a, L"STFangsong", L"Arial", 0, 936},
216     {0xd6679c12, L"BernardMTCondensed", L"Arial", 0, 1252},
217     {0xd8e8a027, L"LucidaSans", L"Arial", 0, 1252},
218     {0xd9fe7761, L"HighTowerText-Reg", L"Arial", 2, 1252},
219     {0xda7e551e, L"STSong", L"Arial", 0, 936},
220     {0xdaa6842d, L"STZhongsong", L"Arial", 0, 936},
221     {0xdaaab93f, L"STFangsong", L"Arial", 0, 936},
222     {0xdaeb0713, L"STSong", L"Arial", 0, 936},
223     {0xdafedbef, L"STCaiyun", L"Arial", 0, 936},
224     {0xdb00a3d9, L"Broadway", L"Arial", 0, 1252},
225     {0xdb1f5ad4, L"STXinwei", L"Arial", 0, 936},
226     {0xdb326e7f, L"STKaiti", L"Arial", 0, 936},
227     {0xdb69595a, L"STHupo", L"Arial", 0, 936},
228     {0xdba0082c, L"STXihei", L"Arial", 0, 936},
229     {0xdbd0ab18, L"STXingkai", L"Arial", 0, 936},
230     {0xdc1a7db1, L"STLiti", L"Arial", 0, 936},
231     {0xdc33075f, L"KristenITC-Regular", L"Arial", 8, 1252},
232     {0xdcc7009c, L"Harrington", L"Arial", 0, 1252},
233     {0xdd712466, L"ArialBlack", L"Arial", 0, 1252},
234     {0xdde87b3e, L"Impact", L"Arial", 0, 1252},
235     {0xdf69fb32, L"SnapITC", L"Arial", 0, 1252},
236     {0xdf8b25e8, L"CenturyGothic", L"Arial", 0, 1252},
237     {0xe0f705c0, L"KristenITC", L"Arial", 8, 1252},
238     {0xe1427573, L"Raavi", L"Arial", 0, 1252},
239     {0xe2cea0cb, L"Magneto", L"Arial", 0, 1252},
240     {0xe36a9e17, L"Ravie", L"Arial", 0, 1252},
241     {0xe433f8e2, L"Parchment", L"Arial", 8, 1252},
242     {0xe43dff4a, L"Wingdings", L"Arial", 4, 42},
243     {0xe4e2c405, L"MTExtra", L"Arial", 6, 42},
244     {0xe618cc35, L"InformalRoman", L"Arial", 8, 1252},
245     {0xe6c27ffc, L"Mistral", L"Arial", 8, 1252},
246     {0xe7ebf4b9, L"Courier", L"Courier New", 0, 1252},
247     {0xe8bc4a9d, L"MSReferenceSpecialty", L"Arial", 0, 1252},
248     {0xe90fb013, L"TempusSansITC", L"Arial", 0, 1252},
249     {0xec637b42, L"Consolas", L"Verdana", 1, 1252},
250     {0xed3a683b, L"STXinwei", L"Arial", 0, 936},
251     {0xef264cd1, L"LucidaHandwriting", L"Arial", 0, 1252},
252     {0xf086bca2, L"BaskervilleOldFace", L"Arial", 0, 1252},
253     {0xf1028030, L"Mangal", L"Arial", 2, 1252},
254     {0xf1da7eb9, L"ShowcardGothic", L"Arial", 0, 1252},
255     {0xf210f06a, L"ArialMT", L"Arial", 0, 1252},
256     {0xf477f16a, L"Latha", L"Arial", 0, 1252},
257     {0xf616f3dd, L"LiSu", L"Arial", 1, 936},
258     {0xfa479aa6, L"MicrosoftYaHei", L"Arial", 0, 936},
259     {0xfcd19697, L"BookmanOldStyle", L"Arial", 0, 1252},
260     {0xfe209a82, L"LucidaCalligraphy", L"Arial", 0, 1252},
261     {0xfef135f8, L"AdobeHeitiStd-Regular", L"Batang,Century,Dotum", 0, 936},
262 };
263 #elif _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
264 static const XFA_FONTINFO g_XFAFontsMap[] = {
265     {0x01d5d33e, L"SimSun",
266      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
267      L"PL UMing TW MBE",
268      0, 936},
269     {0x01e4f102, L"YouYuan",
270      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
271      L"PL UMing TW MBE",
272      1, 936},
273     {0x030549dc, L"LiSu",
274      L"WenQuanYi Zen Hei,WenQuanYi Zen Hei Sharp,WenQuanYi Zen Hei "
275      L"Mono,WenQuanYi Micro Hei",
276      1, 936},
277     {0x032edd44, L"Simhei",
278      L"WenQuanYi Zen Hei,WenQuanYi Zen Hei Sharp,WenQuanYi Zen Hei "
279      L"Mono,WenQuanYi Micro Hei",
280      1, 936},
281     {0x03eac6fc, L"PoorRichard-Regular", L"Droid Sans Japanese,FreeSerif", 2,
282      1252},
283     {0x03ed90e6, L"Nina", L"FreeSerif", 0, 1252},
284     {0x077b56b3, L"KingsoftPhoneticPlain",
285      L"Tibetan Machine Uni,LKLUG,Samyak Gujarati,Droid Sans Thai,Droid Sans "
286      L"Armenian,Untitled1,utkal,Lohit Oriya",
287      0, 1252},
288     {0x078ed524, L"MicrosoftSansSerif",
289      L"Droid Sans Japanese,FreeSerif,WenQuanYi Micro Hei", 0, 1252},
290     {0x089b18a9, L"Arial",
291      L"Droid Sans Japanese,DejaVu Sans Condensed,FreeSerif,WenQuanYi Micro Hei",
292      0, 1252},
293     {0x0b2cad72, L"MonotypeCorsiva", L"Droid Sans Japanese,FreeSerif", 8, 1252},
294     {0x0bb003e7, L"Kartika",
295      L"FreeSans,Liberation Sans,Liberation Sans Narrow,Nimbus Sans "
296      L"L,Garuda,FreeSerif,WenQuanYi Micro Hei",
297      2, 1252},
298     {0x0bb469df, L"VinerHandITC",
299      L"Droid Sans Japanese,Ubuntu,Liberation Sans,Liberation Serif", 8, 1252},
300     {0x0bc1a851, L"SegoeUI", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
301     {0x0c112ebd, L"KozukaGothicPro-VIM", L"FreeSerif", 0, 1252},
302     {0x0cfcb9c1, L"AdobeThai", L"Droid Sans Japanese,Waree", 0, 847},
303     {0x0e7de0f9, L"Playbill",
304      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
305      L"Sans Ethiopic,Droid Sans Japanese,FreeSerif",
306      0, 1252},
307     {0x0eff47c3, L"STHupo", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
308      936},
309     {0x107ad374, L"Constantia",
310      L"Droid Sans Japanese,FreeSerif,WenQuanYi Micro Hei,Ubuntu", 2, 1252},
311     {0x12194c2d, L"KunstlerScript", L"Droid Sans Japanese,Liberation Serif", 8,
312      1252},
313     {0x135ef6a1, L"MinionProSmBd", L"Liberation Serif", 0, 1252},
314     {0x158c4049, L"Garamond",
315      L"Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 2, 1252},
316     {0x160ecb24, L"STZhongsong",
317      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
318      L"Sharp,WenQuanYi Micro Hei",
319      0, 936},
320     {0x161ed07e, L"MSGothic",
321      L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,AR PL "
322      L"UMing CN,AR PL UMing HK,AR PL UMing TW",
323      1, 1252},
324     {0x171d1ed1, L"SnapITC-Regular",
325      L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans L,DejaVu Sans", 0,
326      1252},
327     {0x18d1188f, L"Cambria", L"Droid Sans Japanese,FreeSerif,FreeMono", 2,
328      1252},
329     {0x18eaf350, L"ArialUnicodeMS",
330      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
331      L"Sharp,WenQuanYi Micro Hei",
332      0, 936},
333     {0x1a92d115, L"MingLiU",
334      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
335      L"Sharp,WenQuanYi Micro Hei",
336      1, 1252},
337     {0x1cc217c6, L"TrebuchetMS",
338      L"Droid Sans Japanese,Liberation Serif,FreeSerif,Ubuntu", 0, 1252},
339     {0x1d649596, L"BasemicTimes",
340      L"Liberation Serif,Times New Roman,Droid Sans Japanese,FreeSerif,Ubuntu",
341      0, 1252},
342     {0x1e34ee60, L"BellMT",
343      L"KacstQurn,Droid Sans Japanese,Ubuntu,Liberation Serif", 2, 1252},
344     {0x1eb36945, L"CooperBlack",
345      L"KacstQurn,Droid Sans Japanese,FreeMono,Liberation Mono, WenQuanYi Micro "
346      L"Hei Mono",
347      2, 1252},
348     {0x1ef7787d, L"BatangChe",
349      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing "
350      L"TW,WenQuanYi Zen Hei,WenQuanYi Micro Hei",
351      1, 1252},
352     {0x20b3bd3a, L"BrushScriptMT",
353      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
354      L"Japanese,URW Chancery L,Liberation Sans",
355      8, 1252},
356     {0x220877aa, L"Candara", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
357     {0x22135007, L"FreestyleScript-Regular",
358      L"KacstQurn,Droid Sans Japanese,Liberation Sans", 8, 1252},
359     {0x251059c3, L"Chiller",
360      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
361      L"Japanese,Liberation Sans",
362      0, 1252},
363     {0x25bed6dd, L"MSReferenceSansSerif",
364      L"DejaVu Sans Condensed,Ubuntu Condensed,Droid Sans Japanese,AR PL UKai "
365      L"HK",
366      0, 1252},
367     {0x28154c81, L"Parchment-Regular", L"Droid Sans Japanese,Liberation Sans",
368      8, 1252},
369     {0x29711eb9, L"STLiti", L"AR PL UKai HK", 0, 936},
370     {0x2b1993b4, L"Basemic",
371      L"Liberation Serif,Droid Sans Japanese,Liberation Sans", 0, 1252},
372     {0x2b316339, L"NiagaraSolid-Reg", L"Droid Sans Japanese,Liberation Sans", 0,
373      1252},
374     {0x2c147529, L"FootlightMTLight",
375      L"KacstQurn,Droid Sans Japanese,Liberation Sans", 0, 1252},
376     {0x2c198928, L"HarlowSolid",
377      L"KacstQurn,Droid Sans Japanese,Liberation Sans", 0, 1252},
378     {0x2c6ac6b2, L"LucidaBright",
379      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
380      L"Sans Japanese,Liberation Sans",
381      2, 1252},
382     {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"DejaVu Sans", 0, 1252},
383     {0x2d5a47b0, L"STCaiyun", L"AR PL UKai HK", 0, 936},
384     {0x2def26bf, L"BernardMT-Condensed",
385      L"KacstQurn,Droid Sans Japanese,DejaVu Serif", 0, 1252},
386     {0x2fd8930b, L"KozukaMinchoPr6NR", L"DejaVu Serif", 0, 1252},
387     {0x3115525a, L"FangSong_GB2312",
388      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
389      L"Sharp,WenQuanYi Micro Hei",
390      0, 1252},
391     {0x31327817, L"MyriadPro",
392      L"Ubuntu Condensed,Droid Sans Japanese, FreeSerif", 0, 1252},
393     {0x32244975, L"Helvetica",
394      L"Ubuntu,DejaVu Sans Condensed,Liberation Sans,Liberation Sans "
395      L"Narrow,Nimbus Sans L",
396      0, 1252},
397     {0x32ac995c, L"Terminal", L"DejaVu Serif", 0, 1252},
398     {0x338d648a, L"NiagaraEngraved-Reg", L"Droid Sans Japanese,DejaVu Serif", 0,
399      1252},
400     {0x33bb65f2, L"Sylfaen", L"Droid Sans Japanese,DejaVu Sans", 2, 1252},
401     {0x3402c30e, L"MSPMincho",
402      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 2,
403      1252},
404     {0x3412bf31, L"SimSun-PUA",
405      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing CN,AR PL UMing HK", 0,
406      936},
407     {0x36eb39b9, L"BerlinSansFB",
408      L"Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 0, 1252},
409     {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
410     {0x3864c4f6, L"HighTowerText", L"Droid Sans Japanese,DejaVu Serif", 2,
411      1252},
412     {0x3a257d03, L"FangSong_GB2312",
413      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei", 0, 1252},
414     {0x3c7d1d07, L"Garamond3LTStd",
415      L"Droid Sans Japanese,Ubuntu Condensed,DejaVu Sans Condensed,Liberation "
416      L"Serif,Ubuntu,FreeSerif",
417      2, 1252},
418     {0x3cdae668, L"FreestyleScript",
419      L"KacstQurn,Droid Sans Japanese,DejaVu Sans", 8, 1252},
420     {0x3d55aed7, L"Jokerman", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
421     {0x3d5b4385, L"PMingLiU",
422      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
423      L"Sharp,WenQuanYi Micro Hei",
424      2, 1252},
425     {0x3d9b7669, L"EstrangeloEdessa", L"Droid Sans Japanese,DejaVu Sans", 0,
426      1252},
427     {0x3e532d74, L"FranklinGothicMedium", L"Droid Sans Japanese,Ubuntu", 0,
428      1252},
429     {0x3e6aa32d, L"NSimSun",
430      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
431      L"Sharp,WenQuanYi Micro Hei",
432      1, 936},
433     {0x3f6c36a8, L"Gautami",
434      L"Droid Arabic Naskh,Droid Sans Ethiopic, mry_KacstQurn,Droid Sans "
435      L"Japanese,FreeSans",
436      0, 1252},
437     {0x3ff32662, L"Chiller-Regular",
438      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,FreeSans", 0, 1252},
439     {0x409de312, L"ModernNo.20",
440      L"KacstQurn,Droid Sans Japanese,Nimbus Sans L,Nimbus Sans L,FreeSans", 2,
441      1252},
442     {0x41443c5e, L"Georgia", L"Droid Sans Japanese,FreeSans", 2, 1252},
443     {0x4160ade5, L"BellGothicStdBlack", L"FreeSans", 0, 1252},
444     {0x421976c4, L"Modern-Regular", L"FreeSans", 2, 1252},
445     {0x422a7252, L"Stencil", L"Droid Sans Japanese,FreeSans,Liberation Sans", 0,
446      1252},
447     {0x42c8554f, L"Fixedsys", L"FreeSerif", 0, 1252},
448     {0x435cb41d, L"Roman", L"FreeSerif", 0, 1252},
449     {0x47882383, L"CourierNew",
450      L"FreeMono,WenQuanYi Micro Hei Mono,AR PL UKai CN,AR PL UKai HK,AR PL "
451      L"UKai TW,AR PL UKai TW MBE,DejaVu Sans",
452      1, 1252},
453     {0x480a2338, L"BerlinSansFBDemi", L"Droid Sans Japanese,Liberation Serif",
454      0, 1252},
455     {0x480bf7a4, L"CourierStd", L"DejaVu Sans", 0, 1252},
456     {0x481ad6ed, L"VladimirScript", L"Droid Sans Japanese,DejaVu Serif", 8,
457      1252},
458     {0x4911577a, L"YouYuan",
459      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 1,
460      936},
461     {0x4a788d72, L"STXingkai", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
462      936},
463     {0x4bf88566, L"SegoeCondensed", L"FreeSerif", 0, 1252},
464     {0x4ccf51a4, L"BerlinSansFB-Reg", L"Droid Sans Japanese,Liberation Serif",
465      0, 1252},
466     {0x4ea967ce, L"GulimChe",
467      L"WenQuanYi Zen Hei Mono,AR PL UKai CN,AR PL UKai HK,AR PL UKai TW,AR PL "
468      L"UKai TW MBE",
469      1, 1252},
470     {0x4f68bd79, L"LetterGothicStd",
471      L"FreeMono,Liberation Mono,Andale Mono,WenQuanYi Micro Hei Mono", 0, 1252},
472     {0x51a0d0e6, L"KozukaGothicPr6NM", L"FreeSerif", 0, 1252},
473     {0x531b3dea, L"BasemicSymbol", L"FreeSerif", 0, 1252},
474     {0x5333fd39, L"CalifornianFB-Reg",
475      L"Droid Sans Japanese,URW Chancery L,FreeSerif", 2, 1252},
476     {0x53561a54, L"FZYTK--GBK1-0",
477      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
478      L"Sharp,WenQuanYi Micro Hei",
479      0, 936},
480     {0x55e0dde6, L"LucidaSansTypewriter",
481      L"Ubuntu Mono,DejaVu Sans Mono,Nimbus Mono L,Liberation Mono,Courier 10 "
482      L"Pitch,FreeMono",
483      0, 1252},
484     {0x574d4d3d, L"AdobeArabic", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
485     {0x5792e759, L"STKaiti", L"WenQuanYi Micro Hei Mono", 0, 936},
486     {0x5921978e, L"LucidaSansUnicode", L"Droid Sans Japanese,DejaVu Sans", 0,
487      1252},
488     {0x594e2da4, L"Vrinda",
489      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Arabic "
490      L"Naskh,mry_KacstQurn,Droid Sans Japanese,FreeSans,FreeSerif",
491      0, 1252},
492     {0x59baa9a2, L"KaiTi_GB2312",
493      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
494      L"Sharp,WenQuanYi Micro Hei",
495      0, 1252},
496     {0x5cfedf4f, L"BaskOldFace",
497      L"KacstQurn,Droid Sans Japanese,Ubuntu,Liberation Serif", 0, 1252},
498     {0x5e16ac91, L"TrajanPro",
499      L"Nimbus Sans L,AR PL UMing HK,AR PL UKai HK,AR PL UMing TW,AR PL UMing "
500      L"TW MBE,DejaVu Sans,DejaVu Serif",
501      0, 1252},
502     {0x5f388196, L"ITCLegacySansStdMedium",
503      L"Liberation Serif,FreeSerif,FreeSans,Ubuntu", 0, 1252},
504     {0x5f97921c, L"AdobeMyungjoStdM",
505      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
506      L"Sharp,WenQuanYi Micro Hei",
507      0, 936},
508     {0x5fefbfad, L"Batang",
509      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
510      L"Sharp,WenQuanYi Micro Hei",
511      2, 1252},
512     {0x605342b9, L"DotumChe",
513      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 1,
514      1252},
515     {0x608c5f9a, L"KaiTi_GB2312",
516      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
517      L"Sharp,WenQuanYi Micro Hei",
518      0, 936},
519     {0x61efd0d1, L"MaturaMTScriptCapitals",
520      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
521      L"Sans Japanese,DejaVu Serif,DejaVu Sans",
522      0, 1252},
523     {0x626608a9, L"MVBoli",
524      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
525      L"Ethiopic,Droid Sans Japanese,DejaVu Sans",
526      0, 1252},
527     {0x630501a3, L"SmallFonts", L"DejaVu Serif", 0, 1252},
528     {0x65d0e2a9, L"FZYTK--GBK1-0",
529      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
530      L"Sharp,WenQuanYi Micro Hei",
531      0, 936},
532     {0x669f29e1, L"FZSTK--GBK1-0",
533      L"AR PL UMing CN,AR PL UKai CN, AR PL UMing HK", 0, 936},
534     {0x673a9e5f, L"Tunga",
535      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
536      L"Japanese,DejaVu Serif",
537      0, 1252},
538     {0x691aa4ce, L"NiagaraSolid", L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
539     {0x696259b7, L"Corbel", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
540     {0x696ee9be, L"STXihei", L"WenQuanYi Micro Hei Mono", 0, 936},
541     {0x6c59cf69, L"Dotum", L"WenQuanYi Zen Hei Mono", 0, 1252},
542     {0x707fa561, L"Gungsuh", L"WenQuanYi Zen Hei Mono", 2, 1252},
543     {0x71416bb2, L"ZWAdobeF",
544      L"KacstArt,KacstBookm,KacstDecorative,KacstDigital,KacstFarsi,KacstLetter,"
545      L"KacstOffice,Dingbats,FreeSerif",
546      0, 1252},
547     {0x71b41801, L"Verdana",
548      L"DejaVu Sans Condensed,Ubuntu Condensed,Droid Sans Japanese,DejaVu Sans",
549      0, 1252},
550     {0x73f25e4c, L"PalatinoLinotype", L"Droid Sans Japanese,FreeSerif", 0,
551      1252},
552     {0x73f4d19f, L"NiagaraEngraved", L"Droid Sans Japanese,FreeSerif", 0, 1252},
553     {0x74001694, L"MyriadProBlack", L"Droid Sans Japanese,AR PL UKai HK", 0,
554      1252},
555     {0x74b14d8f, L"Haettenschweiler", L"Droid Sans Japanese,DejaVu Serif", 0,
556      1252},
557     {0x74cb44ee, L"NSimSun", L"WenQuanYi Zen Hei Mono", 1, 936},
558     {0x76b4d7ff, L"Shruti",
559      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
560      L"Japanese,FreeSans",
561      0, 1252},
562     {0x788b3533, L"Webdings", L"FreeSans", 6, 42},
563     {0x797dde99, L"MSSerif", L"FreeSans", 0, 1252},
564     {0x7a0f9e9e, L"MSMincho",
565      L"WenQuanYi Micro Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW",
566      1, 1252},
567     {0x7b439caf, L"OldEnglishTextMT",
568      L"Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
569     {0x8213a433, L"LucidaSans-Typewriter",
570      L"Ubuntu Mono,Liberation Mono,DejaVu Sans Mono", 0, 1252},
571     {0x82fec929, L"AdobeSongStdL",
572      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
573      L"Sharp,WenQuanYi Micro Hei",
574      0, 936},
575     {0x83581825, L"Modern", L"FreeSans", 0, 1252},
576     {0x835a2823, L"Algerian",
577      L"KacstQurn,Droid Sans Japanese,FreeSans,Liberation Sans,Ubuntu", 0, 1252},
578     {0x83dab9f5, L"Script", L"FreeSans", 0, 1252},
579     {0x847b56da, L"Tahoma",
580      L"Droid Sans Japanese,DejaVu Sans Condensed,FreeSerif", 0, 1252},
581     {0x8a783cb2, L"SimSun-PUA",
582      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
583      L"Sharp,WenQuanYi Micro Hei",
584      0, 1252},
585     {0x8b5cac0e, L"Onyx", L"Droid Sans Japanese,Liberation Sans", 0, 1252},
586     {0x8c6a499e, L"Gulim",
587      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
588      L"Sharp,WenQuanYi Micro Hei",
589      0, 1252},
590     {0x8e0af790, L"JuiceITC", L"Droid Sans Japanese,Liberation Sans", 0, 1252},
591     {0x8e8d43b2, L"Centaur",
592      L"KacstQurn,Droid Sans Japanese,Khmer OS,Khmer OS System", 2, 1252},
593     {0x8ee4dcca, L"BookshelfSymbol7", L"Liberation Sans", 0, 1252},
594     {0x90794800, L"BellGothicStdLight", L"Liberation Sans", 0, 1252},
595     {0x909b516a, L"Century",
596      L"Droid Sans Japanese,Liberation Sans,Liberation Mono,Liberation Serif", 2,
597      1252},
598     {0x92ae370d, L"MSOutlook", L"Liberation Sans", 4, 42},
599     {0x93c9fbf1, L"LucidaFax",
600      L"KacstQurn,Droid Arabic Naskh,Droid Sans "
601      L"Ethiopic,mry_KacstQurn,Liberation Sans",
602      2, 1252},
603     {0x9565085e, L"BookAntiqua",
604      L"Droid Sans Japanese,Liberation Sans,Liberation Serif", 2, 1252},
605     {0x9856d95d, L"AdobeMingStdL", L"AR PL UMing HK", 0, 949},
606     {0x9bbadd6b, L"ColonnaMT",
607      L"KacstQurn,Droid Sans Japanese,Khmer OS,Khmer OS System", 0, 1252},
608     {0x9cbd16a4, L"ShowcardGothic-Reg",
609      L"Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
610     {0x9d73008e, L"MSSansSerif", L"FreeSerif", 0, 1252},
611     {0xa0607db1, L"GungsuhChe",
612      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
613      L"Sharp,WenQuanYi Micro Hei",
614      1, 1252},
615     {0xa0bcf6a1, L"LatinWide", L"FreeSerif", 2, 1252},
616     {0xa1429b36, L"Symbol", L"FreeSerif", 6, 42},
617     {0xa1fa5abc, L"Wingdings2", L"FreeSerif", 6, 42},
618     {0xa1fa5abd, L"Wingdings3", L"FreeSerif", 6, 42},
619     {0xa427bad4, L"InformalRoman-Regular",
620      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
621      L"Japanese,FreeSerif",
622      8, 1252},
623     {0xa8b92ece, L"FZSTK--GBK1-0", L"AR PL UMing CN", 0, 936},
624     {0xa8d83ece, L"CalifornianFB", L"Droid Sans Japanese,FreeSerif", 2, 1252},
625     {0xaa3e082c, L"Kingsoft-Phonetic",
626      L"Tibetan Machine Uni,LKLUG,Samyak Gujarati,Droid Sans "
627      L"Thai,utkal,Kedage,Mallige,AR PL UKai CN",
628      0, 1252},
629     {0xaa6bcabe, L"HarlowSolidItalic",
630      L"KacstQurn,Droid Sans Japanese,Liberation Serif", 0, 1252},
631     {0xade5337c, L"MSUIGothic",
632      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
633      L"Sharp,WenQuanYi Micro Hei",
634      0, 1252},
635     {0xb08dd941, L"WideLatin",
636      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
637      L"Sans Japanese,Liberation Serif",
638      2, 1252},
639     {0xb12765e0, L"ITCLegacySansStdBook",
640      L"AR PL UMing HK,AR PL UKai HK,FreeSerif,Ubuntu,FreeSans", 0, 1252},
641     {0xb207f05d, L"PoorRichard", L"Droid Sans Japanese,Liberation Serif", 2,
642      1252},
643     {0xb3bc492f, L"JuiceITC-Regular", L"Droid Sans Japanese,Liberation Serif",
644      0, 1252},
645     {0xb5545399, L"Marlett", L"Liberation Serif", 4, 42},
646     {0xb5dd1ebb, L"BritannicBold",
647      L"KacstQurn,Droid Arabic Naskh,Droid Sans "
648      L"Ethiopic,mry_KacstQurn,Liberation Serif",
649      0, 1252},
650     {0xb699c1c5, L"LucidaCalligraphy-Italic",
651      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
652      L"Sans Japanese,DejaVu Serif",
653      0, 1252},
654     {0xb725d629, L"TimesNewRoman", L"Droid Sans Japanese,Liberation Sans", 2,
655      1252},
656     {0xb7eaebeb, L"AdobeHeitiStdR",
657      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
658      L"Sharp,WenQuanYi Micro Hei",
659      0, 936},
660     {0xbd29c486, L"BerlinSansFBDemi-Bold", L"Droid Sans Japanese,DejaVu Serif",
661      0, 1252},
662     {0xbe8a8db4, L"BookshelfSymbolSeven", L"DejaVu Sans", 0, 1252},
663     {0xc16c0118, L"AdobeHebrew", L"Droid Sans Japanese,Ubuntu,Liberation Serif",
664      0, 1252},
665     {0xc318b0af, L"MyriadProLight",
666      L"Droid Sans Japanese,AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
667      1252},
668     {0xc65e5659, L"CambriaMath", L"Droid Sans Japanese,FreeSerif,FreeMono", 2,
669      1252},
670     {0xc75c8f05, L"LucidaConsole",
671      L"Liberation Mono,DejaVu Sans Mono,FreeMono,WenQuanYi Micro Hei Mono", 1,
672      1252},
673     {0xca7c35d6, L"Calibri", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
674     {0xcb053f53, L"MicrosoftYaHei",
675      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
676      L"Sharp,WenQuanYi Micro Hei",
677      0, 936},
678     {0xcb7190f9, L"Magneto-Bold",
679      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
680      L"Japanese,DejaVu Serif",
681      0, 1252},
682     {0xcca00cc5, L"System", L"DejaVu Sans", 0, 1252},
683     {0xccad6f76, L"Jokerman-Regular", L"Droid Sans Japanese,DejaVu Sans", 0,
684      1252},
685     {0xccc5818c, L"EuroSign", L"DejaVu Serif", 0, 1252},
686     {0xcf3d7234, L"LucidaHandwriting-Italic",
687      L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans L,DejaVu Serif", 0,
688      1252},
689     {0xcf7b8fdb, L"MinionPro", L"DejaVu Sans", 0, 1252},
690     {0xcfe5755f, L"Simhei",
691      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
692      L"Sharp,WenQuanYi Micro Hei",
693      1, 936},
694     {0xd011f4ee, L"MSPGothic",
695      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 0,
696      1252},
697     {0xd060e7ef, L"Vivaldi",
698      L"KacstQurn,Droid Sans Japanese,Liberation Sans,Ubuntu", 8, 1252},
699     {0xd07edec1, L"FranklinGothic-Medium", L"Droid Sans Japanese,Ubuntu", 0,
700      1252},
701     {0xd107243f, L"SimSun", L"WenQuanYi Zen Hei Mono", 0, 936},
702     {0xd1881562, L"ArialNarrow",
703      L"Liberation Sans Narrow,Droid Sans Japanese,FreeSerif", 0, 1252},
704     {0xd22b7dce, L"BodoniMTPosterCompressed",
705      L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
706     {0xd22bfa60, L"ComicSansMS",
707      L"Droid Sans Japanese,FreeMono,Liberation Mono", 8, 1252},
708     {0xd3bd0e35, L"Bauhaus93",
709      L"KacstQurn,Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
710     {0xd429ee7a, L"STFangsong", L"WenQuanYi Micro Hei Mono", 0, 936},
711     {0xd6679c12, L"BernardMTCondensed",
712      L"KacstQurn,Droid Sans Japanese,Nimbus Sans L,URW Chancery "
713      L"L,KacstOne,Liberation Sans",
714      0, 1252},
715     {0xd8e8a027, L"LucidaSans",
716      L"Liberation Sans Narrow,Nimbus Sans L,KacstQurn,Droid Arabic Naskh,Droid "
717      L"Sans Ethiopic,DejaVu Serif Condensed,Liberation Mono,Ubuntu",
718      0, 1252},
719     {0xd9fe7761, L"HighTowerText-Reg",
720      L"Droid Sans Japanese,Ubuntu,Liberation Serif", 2, 1252},
721     {0xda7e551e, L"STSong", L"WenQuanYi Micro Hei Mono", 0, 936},
722     {0xdaa6842d, L"STZhongsong",
723      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
724      L"Sharp,WenQuanYi Micro Hei",
725      0, 936},
726     {0xdaaab93f, L"STFangsong",
727      L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
728      L"Hei,WenQuanYi Zen Hei Sharp",
729      0, 936},
730     {0xdaeb0713, L"STSong",
731      L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
732      L"Hei,WenQuanYi Zen Hei Sharp",
733      0, 936},
734     {0xdafedbef, L"STCaiyun", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
735      936},
736     {0xdb00a3d9, L"Broadway",
737      L"KacstQurn,Droid Sans Japanese,DejaVu Sans,FreeMono,Liberation Mono", 0,
738      1252},
739     {0xdb1f5ad4, L"STXinwei", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
740      936},
741     {0xdb326e7f, L"STKaiti",
742      L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
743      L"Hei,WenQuanYi Zen Hei Sharp",
744      0, 936},
745     {0xdb69595a, L"STHupo",
746      L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
747      L"Hei,WenQuanYi Zen Hei Sharp",
748      0, 936},
749     {0xdba0082c, L"STXihei",
750      L" WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
751      L"Hei,WenQuanYi Zen Hei Sharp",
752      0, 936},
753     {0xdbd0ab18, L"STXingkai", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
754      936},
755     {0xdc1a7db1, L"STLiti", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
756      936},
757     {0xdc33075f, L"KristenITC-Regular",
758      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu Sans "
759      L"Condensed,Ubuntu,Liberation Sans",
760      8, 1252},
761     {0xdcc7009c, L"Harrington",
762      L"KacstQurn,Droid Sans Japanese,Liberation Serif,FreeSerif,Ubuntu", 0,
763      1252},
764     {0xdd712466, L"ArialBlack",
765      L"Droid Sans Japanese,DejaVu Sans,DejaVu Serif,FreeMono", 0, 1252},
766     {0xdde87b3e, L"Impact", L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
767     {0xdf69fb32, L"SnapITC",
768      L"Liberation Sans Narrow,Ubuntu Condensed,DejaVu Sans,DejaVu "
769      L"Serif,FreeMono",
770      0, 1252},
771     {0xdf8b25e8, L"CenturyGothic",
772      L"Droid Sans Japanese,Liberation Mono,Liberation Sans,Liberation Serif", 0,
773      1252},
774     {0xe0f705c0, L"KristenITC",
775      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu Sans "
776      L"Condensed,Ubuntu,Liberation Sans",
777      8, 1252},
778     {0xe1427573, L"Raavi",
779      L"Droid Arabic Naskh,Droid Sans "
780      L"Ethiopic,mry_KacstQurn,FreeSerif,Liberation Serif,Khmer OS",
781      0, 1252},
782     {0xe2cea0cb, L"Magneto",
783      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu "
784      L"Serif,DejaVu Serif Condensed,DejaVu Sans",
785      0, 1252},
786     {0xe36a9e17, L"Ravie",
787      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu "
788      L"Serif,DejaVu Sans,FreeMono",
789      0, 1252},
790     {0xe433f8e2, L"Parchment", L"Droid Sans Japanese,DejaVu Serif", 8, 1252},
791     {0xe43dff4a, L"Wingdings", L"DejaVu Serif", 4, 42},
792     {0xe4e2c405, L"MTExtra", L"DejaVu Serif", 6, 42},
793     {0xe618cc35, L"InformalRoman",
794      L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
795      L"Japanese,Nimbus Sans L,DejaVu Sans Condensed,Ubuntu,Liberation Sans",
796      8, 1252},
797     {0xe6c27ffc, L"Mistral", L"Droid Sans Japanese,DejaVu Serif", 8, 1252},
798     {0xe7ebf4b9, L"Courier", L"DejaVu Sans,DejaVu Sans Condensed,FreeSerif", 0,
799      1252},
800     {0xe8bc4a9d, L"MSReferenceSpecialty", L"DejaVu Serif", 0, 1252},
801     {0xe90fb013, L"TempusSansITC",
802      L"Droid Sans Japanese,Ubuntu,Liberation Serif,FreeSerif", 0, 1252},
803     {0xec637b42, L"Consolas",
804      L"DejaVu Sans Condensed,AR PL UKai CN,AR PL UKai HK,AR PL UKai "
805      L"TW,FreeSerif,FreeSans",
806      1, 1252},
807     {0xed3a683b, L"STXinwei", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
808      936},
809     {0xef264cd1, L"LucidaHandwriting",
810      L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans "
811      L"L,KacstQurn,Liberation Mono",
812      0, 1252},
813     {0xf086bca2, L"BaskervilleOldFace",
814      L"KacstQurn,Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 0,
815      1252},
816     {0xf1028030, L"Mangal",
817      L"FreeSans,TSCu_Paranar,Garuda,Liberation Sans,Liberation Sans "
818      L"Narrow,Nimbus Sans L",
819      2, 1252},
820     {0xf1da7eb9, L"ShowcardGothic",
821      L"Droid Sans Japanese,DejaVu Serif Condensed,DejaVu Sans "
822      L"Condensed,Liberation Sans,Ubuntu",
823      0, 1252},
824     {0xf210f06a, L"ArialMT",
825      L"Liberation Sans,Liberation Sans Narrow,FreeSans,Nimbus Sans L,Khmer OS "
826      L"System,Khmer OS",
827      0, 1252},
828     {0xf477f16a, L"Latha",
829      L"Liberation Sans Narrow,Nimbus Sans L,Droid Arabic "
830      L"Naskh,mry_KacstQurn,FreeSerif,Nimbus Sans L",
831      0, 1252},
832     {0xf616f3dd, L"LiSu",
833      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
834      L"PL UMing TW MBE",
835      1, 936},
836     {0xfa479aa6, L"MicrosoftYaHei",
837      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
838      L"Sharp,WenQuanYi Micro Hei",
839      0, 936},
840     {0xfcd19697, L"BookmanOldStyle",
841      L"Droid Sans Japanese,Liberation Mono,Liberation Sans,Liberation Serif", 0,
842      1252},
843     {0xfe209a82, L"LucidaCalligraphy",
844      L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
845      L"Sans Japanese,DejaVu Serif,DejaVu Sans,FreeMono",
846      0, 1252},
847     {0xfef135f8, L"AdobeHeitiStd-Regular",
848      L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
849      L"Sharp,WenQuanYi Micro Hei",
850      0, 936},
851 };
852 #elif _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
853 static const XFA_FONTINFO g_XFAFontsMap[] = {
854     {0x01d5d33e, L"SimSun", L"STHeiti,Heiti TC,STFangsong", 0, 936},
855     {0x01e4f102, L"YouYuan", L"STHeiti,Heiti TC,STFangsong", 1, 936},
856     {0x030549dc, L"LiSu", L"STHeiti,Heiti TC,STFangsong", 1, 936},
857     {0x032edd44, L"Simhei", L"STHeiti,Heiti TC,STFangsong", 1, 936},
858     {0x03eac6fc, L"PoorRichard-Regular",
859      L"Noteworthy,Avenir Next Condensed,Impact", 2, 1252},
860     {0x03ed90e6, L"Nina", L"Microsoft Sans Serif", 0, 1252},
861     {0x077b56b3, L"KingsoftPhoneticPlain",
862      L"LastResort,Apple "
863      L"Chancery,STIXVariants,STIXSizeOneSym,STIXSizeOneSym,Apple Braille",
864      0, 1252},
865     {0x078ed524, L"MicrosoftSansSerif", L"Songti SC,Apple Symbols", 0, 1252},
866     {0x089b18a9, L"Arial",
867      L"Arial Unicode MS,Microsoft Sans Serif,Apple Symbols", 0, 1252},
868     {0x0b2cad72, L"MonotypeCorsiva", L"Arial Narrow,Impact", 8, 1252},
869     {0x0bb003e7, L"Kartika",
870      L"Arial Unicode MS,Microsoft Sans Serif,Arial Narrow,Damascus", 2, 1252},
871     {0x0bb469df, L"VinerHandITC", L"Comic Sans MS,Songti SC,STSong", 8, 1252},
872     {0x0bc1a851, L"SegoeUI", L"Apple Symbols", 0, 1252},
873     {0x0c112ebd, L"KozukaGothicPro-VIM", L"Microsoft Sans Serif,Apple Symbols",
874      0, 1252},
875     {0x0cfcb9c1, L"AdobeThai", L"Avenir Next Condensed Ultra Light", 0, 847},
876     {0x0e7de0f9, L"Playbill", L"STIXNonUnicode", 0, 1252},
877     {0x0eff47c3, L"STHupo", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
878     {0x107ad374, L"Constantia", L"Arial Unicode MS,Palatino,Baskerville", 2,
879      1252},
880     {0x12194c2d, L"KunstlerScript",
881      L"Avenir Next Condensed Demi Bold,Arial Narrow", 8, 1252},
882     {0x135ef6a1, L"MinionProSmBd", L"Microsoft Sans Serif,Apple Symbols", 0,
883      1252},
884     {0x158c4049, L"Garamond", L"Impact,Arial Narrow", 2, 1252},
885     {0x160ecb24, L"STZhongsong", L"STFangsong,Songti SC", 0, 936},
886     {0x161ed07e, L"MSGothic",
887      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing "
888      L"TW,Microsoft Sans Serif,Apple Symbols",
889      1, 1252},
890     {0x171d1ed1, L"SnapITC-Regular", L"STHeiti,Arial Black", 0, 1252},
891     {0x18d1188f, L"Cambria", L"Arial Unicode MS", 2, 1252},
892     {0x18eaf350, L"ArialUnicodeMS", L"Microsoft Sans Serif,Apple Symbols", 0,
893      936},
894     {0x1a92d115, L"MingLiU", L"Heiti SC,STHeiti", 1, 1252},
895     {0x1cc217c6, L"TrebuchetMS", L"Damascus,Impact,Arial Narrow", 0, 1252},
896     {0x1d649596, L"BasemicTimes", L"Liberation Serif,Impact,Arial Narrow", 0,
897      1252},
898     {0x1e34ee60, L"BellMT",
899      L"Papyrus,STIXNonUnicode,Microsoft Sans Serif,Avenir Light", 2, 1252},
900     {0x1eb36945, L"CooperBlack",
901      L"Marion,STIXNonUnicode,Arial Rounded MT Bold,Lucida Grande", 2, 1252},
902     {0x1ef7787d, L"BatangChe",
903      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,,AR PL UMing HK,AR PL UMing TW,AR "
904      L"PL UMing TW MBE,Arial Unicode MS,Heiti TC",
905      1, 1252},
906     {0x20b3bd3a, L"BrushScriptMT",
907      L"STIXNonUnicode,Damascus,Arial Narrow,Avenir Next Condensed,Cochin", 8,
908      1252},
909     {0x220877aa, L"Candara", L"Cochin,Baskerville,Marion", 0, 1252},
910     {0x22135007, L"FreestyleScript-Regular",
911      L"STIXNonUnicode,Nadeem,Zapf Dingbats", 8, 1252},
912     {0x251059c3, L"Chiller",
913      L"Zapf Dingbats,Damascus,STIXNonUnicode,Papyrus,KufiStandardGK,Baghdad", 0,
914      1252},
915     {0x25bed6dd, L"MSReferenceSansSerif",
916      L"Tahoma,Apple Symbols,Apple LiGothic,Arial Unicode MS,Lucida "
917      L"Grande,Microsoft Sans Serif",
918      0, 1252},
919     {0x28154c81, L"Parchment-Regular", L"Microsoft Sans Serif,Apple Symbols", 8,
920      1252},
921     {0x29711eb9, L"STLiti", L"Kaiti SC,Songti SC", 0, 936},
922     {0x2b1993b4, L"Basemic", L"Impact,Arial Narrow", 0, 1252},
923     {0x2b316339, L"NiagaraSolid-Reg", L"Microsoft Sans Serif,Apple Symbols", 0,
924      1252},
925     {0x2c147529, L"FootlightMTLight",
926      L"STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans,Noteworthy", 0, 1252},
927     {0x2c198928, L"HarlowSolid",
928      L"Avenir Medium,Avenir Next Medium,Arial Unicode MS", 0, 1252},
929     {0x2c6ac6b2, L"LucidaBright",
930      L"PT Sans Narrow,Papyrus,Damascus,STIXNonUnicode,Arial Rounded MT "
931      L"Bold,Comic Sans MS,Avenir Next",
932      2, 1252},
933     {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"Microsoft Sans Serif,Apple Symbols",
934      0, 1252},
935     {0x2d5a47b0, L"STCaiyun", L"Kaiti SC,Songti SC", 0, 936},
936     {0x2def26bf, L"BernardMT-Condensed",
937      L"Impact,Avenir Next Condensed Demi Bold,American Typewriter", 0, 1252},
938     {0x2fd8930b, L"KozukaMinchoPr6NR", L"Microsoft Sans Serif,Apple Symbols", 0,
939      1252},
940     {0x3115525a, L"FangSong_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
941     {0x31327817, L"MyriadPro", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
942     {0x32244975, L"Helvetica",
943      L"Arial Narrow,Arial Unicode MS,Damascus,STIXNonUnicode", 0, 1252},
944     {0x32ac995c, L"Terminal", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
945     {0x338d648a, L"NiagaraEngraved-Reg", L"Microsoft Sans Serif,Apple Symbols",
946      0, 1252},
947     {0x33bb65f2, L"Sylfaen", L"Arial Unicode MS,Marion", 2, 1252},
948     {0x3402c30e, L"MSPMincho", L"Arial Unicode MS,Apple SD Gothic Neo", 2,
949      1252},
950     {0x3412bf31, L"SimSun-PUA", L"STHeiti,Heiti TC,STFangsong", 0, 936},
951     {0x36eb39b9, L"BerlinSansFB", L"American Typewriter,Impact", 0, 1252},
952     {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
953     {0x3864c4f6, L"HighTowerText", L"STIXGeneral,.Helvetica Neue Desk UI", 2,
954      1252},
955     {0x3a257d03, L"FangSong_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
956     {0x3cdae668, L"FreestyleScript", L"Nadeem,Zapf Dingbats,STIXNonUnicode", 8,
957      1252},
958     {0x3d55aed7, L"Jokerman",
959      L"Papyrus,Lucida Grande,Heiti TC,American Typewriter", 0, 1252},
960     {0x3d5b4385, L"PMingLiU", L"Heiti SC,STHeiti", 2, 1252},
961     {0x3d9b7669, L"EstrangeloEdessa", L"American Typewriter,Marion", 0, 1252},
962     {0x3e532d74, L"FranklinGothicMedium", L"Impact,Arial Narrow", 0, 1252},
963     {0x3e6aa32d, L"NSimSun", L"STHeiti,STFangsong", 1, 936},
964     {0x3f6c36a8, L"Gautami",
965      L"Damascus,STIXNonUnicode,STIXGeneral,American Typewriter", 0, 1252},
966     {0x3ff32662, L"Chiller-Regular", L"Papyrus,KufiStandardGK,Baghdad", 0,
967      1252},
968     {0x409de312, L"ModernNo.20", L"Avenir Next Condensed,Impact", 2, 1252},
969     {0x41443c5e, L"Georgia", L".Helvetica Neue Desk UI,Arial Unicode MS", 2,
970      1252},
971     {0x4160ade5, L"BellGothicStdBlack", L"Microsoft Sans Serif,Apple Symbols",
972      0, 1252},
973     {0x421976c4, L"Modern-Regular", L"Impact", 2, 1252},
974     {0x422a7252, L"Stencil", L"STIXNonUnicode,Songti SC,Georgia,Baskerville", 0,
975      1252},
976     {0x42c8554f, L"Fixedsys", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
977     {0x435cb41d, L"Roman", L"Arial Narrow", 0, 1252},
978     {0x47882383, L"CourierNew", L"PCMyungjo,Osaka,Arial Unicode MS,Songti SC",
979      1, 1252},
980     {0x480a2338, L"BerlinSansFBDemi",
981      L"STIXNonUnicode,American Typewriter,Avenir Next Condensed Heavy", 0,
982      1252},
983     {0x480bf7a4, L"CourierStd", L"Courier New", 0, 1252},
984     {0x481ad6ed, L"VladimirScript",
985      L"STIXNonUnicode,Avenir Next Condensed,Impact", 8, 1252},
986     {0x4911577a, L"YouYuan", L"STHeiti,Heiti TC", 1, 936},
987     {0x4a788d72, L"STXingkai", L"Kaiti SC,Songti SC", 0, 936},
988     {0x4bf88566, L"SegoeCondensed", L"Microsoft Sans Serif,Apple Symbols", 0,
989      1252},
990     {0x4ccf51a4, L"BerlinSansFB-Reg",
991      L"STIXNonUnicode,American Typewriter,Impact", 0, 1252},
992     {0x4ea967ce, L"GulimChe", L"Arial Unicode MS,Heiti TC,STFangsong", 1, 1252},
993     {0x4f68bd79, L"LetterGothicStd",
994      L"Courier New,Andale Mono,Ayuthaya,PCMyungjo,Osaka", 0, 1252},
995     {0x51a0d0e6, L"KozukaGothicPr6NM", L"Microsoft Sans Serif,Apple Symbols", 0,
996      1252},
997     {0x531b3dea, L"BasemicSymbol", L"Microsoft Sans Serif,Apple Symbols", 0,
998      1252},
999     {0x5333fd39, L"CalifornianFB-Reg",
1000      L"American Typewriter,Avenir Next Condensed,Impact", 2, 1252},
1001     {0x53561a54, L"FZYTK--GBK1-0", L"STFangsong,Songti SC,STSong", 0, 936},
1002     {0x55e0dde6, L"LucidaSansTypewriter", L"Menlo,Courier New,Andale Mono", 0,
1003      1252},
1004     {0x574d4d3d, L"AdobeArabic", L"Arial Narrow", 0, 1252},
1005     {0x5792e759, L"STKaiti", L"Songti SC,Arial Unicode MS", 0, 936},
1006     {0x5921978e, L"LucidaSansUnicode", L"Lucida Grande,Arial Unicode MS,Menlo",
1007      0, 1252},
1008     {0x594e2da4, L"Vrinda", L"Geeza Pro,Damascus,STIXGeneral,Gill Sans", 0,
1009      1252},
1010     {0x59baa9a2, L"KaiTi_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
1011     {0x5cfedf4f, L"BaskOldFace",
1012      L"Avenir Next Condensed Heavy,PT Sans,Avenir Next Condensed", 0, 1252},
1013     {0x5e16ac91, L"TrajanPro", L"Arial Narrow,PT Sans Narrow,Damascus", 0,
1014      1252},
1015     {0x5f97921c, L"AdobeMyungjoStdM",
1016      L"AppleMyungjo,AppleGothic,Arial Unicode MS", 0, 936},
1017     {0x5fefbfad, L"Batang", L"Arial Unicode MS,Songti SC", 2, 1252},
1018     {0x605342b9, L"DotumChe", L"Arial Unicode MS,Heiti TC", 1, 1252},
1019     {0x608c5f9a, L"KaiTi_GB2312", L"Hiragino Sans GB,STHeiti,Heiti TC", 0, 936},
1020     {0x61efd0d1, L"MaturaMTScriptCapitals",
1021      L"Kokonor,Damascus,STIXNonUnicode,STHeiti,Arial Black,Avenir Next Heavy",
1022      0, 1252},
1023     {0x626608a9, L"MVBoli",
1024      L"Apple Braille,Geeza Pro,Microsoft Sans Serif,Apple Symbols", 0, 1252},
1025     {0x630501a3, L"SmallFonts", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1026     {0x65d0e2a9, L"FZYTK--GBK1-0", L"STFangsong,Songti SC,STSong", 0, 936},
1027     {0x669f29e1, L"FZSTK--GBK1-0", L"STHeiti,Heiti TC", 0, 936},
1028     {0x673a9e5f, L"Tunga",
1029      L"Damascus,STIXNonUnicode,Avenir Next Condensed,Avenir Next Condensed "
1030      L"Ultra Light,Futura",
1031      0, 1252},
1032     {0x691aa4ce, L"NiagaraSolid", L"Microsoft Sans Serif,Apple Symbols", 0,
1033      1252},
1034     {0x696259b7, L"Corbel", L"Cochin,Baskerville,Marion", 0, 1252},
1035     {0x696ee9be, L"STXihei", L"STHeiti,Heiti TC,Songti SC,Arial Unicode MS", 0,
1036      936},
1037     {0x6c59cf69, L"Dotum", L"Arial Unicode MS,Songti SC", 0, 1252},
1038     {0x707fa561, L"Gungsuh", L"Arial Unicode MS,Heiti TC", 2, 1252},
1039     {0x71416bb2, L"ZWAdobeF",
1040      L"STIXSizeFourSym,STIXSizeThreeSym,STIXSizeTwoSym,STIXSizeOneSym", 0,
1041      1252},
1042     {0x71b41801, L"Verdana",
1043      L"Tahoma,Marion,Apple Symbols,.Helvetica Neue Desk UI,Lucida "
1044      L"Grande,Courier New",
1045      0, 1252},
1046     {0x73f25e4c, L"PalatinoLinotype", L"Palatino,Arial Unicode MS", 0, 1252},
1047     {0x73f4d19f, L"NiagaraEngraved", L"Microsoft Sans Serif,Apple Symbols", 0,
1048      1252},
1049     {0x74001694, L"MyriadProBlack", L"Palatino,Baskerville,Marion,Cochin", 0,
1050      1252},
1051     {0x74b14d8f, L"Haettenschweiler", L"Microsoft Sans Serif,Apple Symbols", 0,
1052      1252},
1053     {0x74cb44ee, L"NSimSun", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1054     {0x76b4d7ff, L"Shruti",
1055      L"Damascus,STIXNonUnicode,Arial Unicode MS,American Typewriter", 0, 1252},
1056     {0x788b3533, L"Webdings", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1057     {0x797dde99, L"MSSerif", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1058     {0x7a0f9e9e, L"MSMincho",
1059      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
1060      L"PL UMing TW MBE,Arial Unicode MS,Apple SD Gothic Neo",
1061      1, 1252},
1062     {0x7b439caf, L"OldEnglishTextMT",
1063      L"STIXNonUnicode,Arial Unicode MS,Baskerville,Avenir Next Medium", 0,
1064      1252},
1065     {0x8213a433, L"LucidaSans-Typewriter",
1066      L"Comic Sans MS,Avenir Next,Arial Rounded MT Bold", 0, 1252},
1067     {0x82fec929, L"AdobeSongStdL", L"Heiti TC,STHeiti", 0, 936},
1068     {0x83581825, L"Modern", L"Avenir Next Condensed,Impact", 0, 1252},
1069     {0x835a2823, L"Algerian",
1070      L"STIXNonUnicode,Baskerville,Avenir Next Medium,American Typewriter", 0,
1071      1252},
1072     {0x83dab9f5, L"Script", L"Arial Narrow", 0, 1252},
1073     {0x847b56da, L"Tahoma", L"Songti SC,Apple Symbols", 0, 1252},
1074     {0x8a783cb2, L"SimSun-PUA", L"STHeiti,Heiti TC,STFangsong", 0, 1252},
1075     {0x8b5cac0e, L"Onyx", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1076     {0x8c6a499e, L"Gulim", L"Arial Unicode MS,Songti SC", 0, 1252},
1077     {0x8e0af790, L"JuiceITC", L"Nadeem,Al Bayan", 0, 1252},
1078     {0x8e8d43b2, L"Centaur", L"Avenir Next Condensed,Noteworthy,Impact", 2,
1079      1252},
1080     {0x8ee4dcca, L"BookshelfSymbol7", L"Microsoft Sans Serif,Apple Symbols", 0,
1081      1252},
1082     {0x90794800, L"BellGothicStdLight", L"Microsoft Sans Serif,Apple Symbols",
1083      0, 1252},
1084     {0x909b516a, L"Century", L"Damascus,Andale Mono,Songti SC,Arial Unicode MS",
1085      2, 1252},
1086     {0x92ae370d, L"MSOutlook", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1087     {0x93c9fbf1, L"LucidaFax",
1088      L"PT Sans Narrow,Papyrus,Kokonor,Geeza Pro,Arial Rounded MT Bold,Lucida "
1089      L"Grande,Futura",
1090      2, 1252},
1091     {0x9565085e, L"BookAntiqua", L"Palatino,Microsoft Sans Serif,Apple Symbols",
1092      2, 1252},
1093     {0x9856d95d, L"AdobeMingStdL", L"AHiragino Sans GB,Heiti TC,STHeiti", 0,
1094      949},
1095     {0x9bbadd6b, L"ColonnaMT", L"Noteworthy,Avenir Next Condensed,Impact", 0,
1096      1252},
1097     {0x9cbd16a4, L"ShowcardGothic-Reg",
1098      L"Arial Unicode MS,Georgia,American Typewriter", 0, 1252},
1099     {0x9d73008e, L"MSSansSerif", L"Songti SC,Apple Symbols", 0, 1252},
1100     {0xa0607db1, L"GungsuhChe",
1101      L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
1102      L"PL UMing TW MBE,Arial Unicode MS,Heiti TC,STFangsong",
1103      1, 1252},
1104     {0xa0bcf6a1, L"LatinWide", L"Zapfino,Arial Black,STHeiti", 2, 1252},
1105     {0xa1429b36, L"Symbol", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1106     {0xa1fa5abc, L"Wingdings2", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1107     {0xa1fa5abd, L"Wingdings3", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1108     {0xa427bad4, L"InformalRoman-Regular",
1109      L"STIXNonUnicode,Arial Narrow,Avenir Next Condensed Demi Bold", 8, 1252},
1110     {0xa8b92ece, L"FZSTK--GBK1-0", L"STHeiti,Heiti TC,STFangsong", 0, 936},
1111     {0xa8d83ece, L"CalifornianFB",
1112      L"American Typewriter,Avenir Next Condensed,Impact", 2, 1252},
1113     {0xaa3e082c, L"Kingsoft-Phonetic",
1114      L"STIXVariants,STIXSizeOneSym,Apple Braille", 0, 1252},
1115     {0xaa6bcabe, L"HarlowSolidItalic",
1116      L"STIXNonUnicode,Avenir Medium,Avenir Next Medium,Arial Unicode MS", 0,
1117      1252},
1118     {0xade5337c, L"MSUIGothic", L"Arial Unicode MS,Apple SD Gothic Neo", 0,
1119      1252},
1120     {0xb08dd941, L"WideLatin",
1121      L"Marion,Papyrus,Nanum Pen Script,Zapf Dingbats,Damascus,Zapfino,Arial "
1122      L"Black,STHeiti",
1123      2, 1252},
1124     {0xb12765e0, L"ITCLegacySansStdBook",
1125      L"LastResort,.Helvetica Neue Desk UI,Arial Unicode MS,Palatino", 0, 1252},
1126     {0xb207f05d, L"PoorRichard", L"Noteworthy,Avenir Next Condensed,Impact", 2,
1127      1252},
1128     {0xb3bc492f, L"JuiceITC-Regular", L"Nadeem,Al Bayan,STIXNonUnicode", 0,
1129      1252},
1130     {0xb5545399, L"Marlett", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1131     {0xb5dd1ebb, L"BritannicBold",
1132      L"Damascus,STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans", 0, 1252},
1133     {0xb699c1c5, L"LucidaCalligraphy-Italic", L"STHeiti,Arial Black", 0, 1252},
1134     {0xb725d629, L"TimesNewRoman", L"Microsoft Sans Serif,Apple Symbols", 2,
1135      1252},
1136     {0xb7eaebeb, L"AdobeHeitiStdR", L"Heiti TC,STHeiti", 0, 936},
1137     {0xbd29c486, L"BerlinSansFBDemi-Bold",
1138      L"American Typewriter,Avenir Next Condensed Heavy", 0, 1252},
1139     {0xbe8a8db4, L"BookshelfSymbolSeven", L"Microsoft Sans Serif,Apple Symbols",
1140      0, 1252},
1141     {0xc16c0118, L"AdobeHebrew",
1142      L".Helvetica Neue Desk UI,Palatino,American Typewriter", 0, 1252},
1143     {0xc318b0af, L"MyriadProLight", L"Palatino,Baskerville,Marion", 0, 1252},
1144     {0xc65e5659, L"CambriaMath", L"Arial Unicode MS", 2, 1252},
1145     {0xc75c8f05, L"LucidaConsole", L"Courier New,Menlo,Andale Mono", 1, 1252},
1146     {0xca7c35d6, L"Calibri", L"Apple Symbols,HeadLineA", 0, 1252},
1147     {0xcb053f53, L"MicrosoftYaHei", L"Arial Unicode MS", 0, 936},
1148     {0xcb7190f9, L"Magneto-Bold", L"Lucida Grande", 0, 1252},
1149     {0xcca00cc5, L"System", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1150     {0xccad6f76, L"Jokerman-Regular", L"Lucida Grande", 0, 1252},
1151     {0xccc5818c, L"EuroSign", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1152     {0xcf3d7234, L"LucidaHandwriting-Italic",
1153      L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1154     {0xcf7b8fdb, L"MinionPro",
1155      L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
1156     {0xcfe5755f, L"Simhei", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1157     {0xd011f4ee, L"MSPGothic", L"Arial Unicode MS,Apple SD Gothic Neo", 0,
1158      1252},
1159     {0xd060e7ef, L"Vivaldi",
1160      L"STIXNonUnicode,Arial Unicode MS,Avenir Medium,Avenir Next Medium", 8,
1161      1252},
1162     {0xd07edec1, L"FranklinGothic-Medium", L"Impact,Arial Narrow", 0, 1252},
1163     {0xd107243f, L"SimSun", L"STHeiti,Heiti TC,STFangsong", 0, 936},
1164     {0xd1881562, L"ArialNarrow", L"PT Sans Narrow,Apple Symbols", 0, 1252},
1165     {0xd22b7dce, L"BodoniMTPosterCompressed",
1166      L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1167     {0xd22bfa60, L"ComicSansMS",
1168      L"Damascus,Georgia,.Helvetica Neue Desk UI,Lucida Grande,Arial Unicode MS",
1169      8, 1252},
1170     {0xd3bd0e35, L"Bauhaus93",
1171      L"STIXNonUnicode,Arial Unicode MS,Avenir Next,Avenir", 0, 1252},
1172     {0xd429ee7a, L"STFangsong", L"Songti SC,Arial Unicode MS", 0, 936},
1173     {0xd6679c12, L"BernardMTCondensed",
1174      L"Impact,Avenir Next Condensed Demi Bold", 0, 1252},
1175     {0xd8e8a027, L"LucidaSans",
1176      L"Arial Narrow,Khmer MN,Kokonor,Damascus,Microsoft Sans Serif,Apple "
1177      L"Symbols",
1178      0, 1252},
1179     {0xd9fe7761, L"HighTowerText-Reg",
1180      L"STIXGeneral,.Helvetica Neue Desk UI,Trebuchet MS", 2, 1252},
1181     {0xda7e551e, L"STSong", L"Arial Unicode MS", 0, 936},
1182     {0xdaa6842d, L"STZhongsong", L"STFangsong,Songti SC,STSong", 0, 936},
1183     {0xdaaab93f, L"STFangsong", L"Songti SC,Arial Unicode MS", 0, 936},
1184     {0xdaeb0713, L"STSong", L"Songti SC,Arial Unicode MS", 0, 936},
1185     {0xdafedbef, L"STCaiyun", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1186     {0xdb00a3d9, L"Broadway",
1187      L"Papyrus,STIXNonUnicode,Arial Black,Avenir Next Heavy,Heiti TC", 0, 1252},
1188     {0xdb1f5ad4, L"STXinwei", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1189     {0xdb326e7f, L"STKaiti", L"Songti SC,Arial Unicode MS", 0, 936},
1190     {0xdb69595a, L"STHupo", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1191     {0xdba0082c, L"STXihei", L"Songti SC,Arial Unicode MS", 0, 936},
1192     {0xdbd0ab18, L"STXingkai", L"Kaiti SC,Songti SC", 0, 936},
1193     {0xdc1a7db1, L"STLiti", L"Kaiti SC,Songti SC", 0, 936},
1194     {0xdc33075f, L"KristenITC-Regular",
1195      L"STIXNonUnicode,Damascus,Songti SC,STSong", 8, 1252},
1196     {0xdcc7009c, L"Harrington",
1197      L"STIXNonUnicode,Avenir Next Condensed Heavy,Noteworthy", 0, 1252},
1198     {0xdd712466, L"ArialBlack", L"Geeza Pro,Damascus,Songti SC,STSong", 0,
1199      1252},
1200     {0xdde87b3e, L"Impact", L"Arial Narrow,Marion", 0, 1252},
1201     {0xdf69fb32, L"SnapITC",
1202      L"Arial Narrow,PT Sans Narrow,Marion,STHeiti,Arial Black", 0, 1252},
1203     {0xdf8b25e8, L"CenturyGothic",
1204      L"Damascus,Andale Mono,Songti SC,Arial Unicode MS", 0, 1252},
1205     {0xe0f705c0, L"KristenITC", L"Songti SC,STSong", 8, 1252},
1206     {0xe1427573, L"Raavi",
1207      L"Damascus,STIXNonUnicode,Marion,Papyrus,Avenir Next Condensed "
1208      L"Heavy,American Typewriter",
1209      0, 1252},
1210     {0xe2cea0cb, L"Magneto",
1211      L"STIXNonUnicode,Damascus,Geeza Pro,Lucida Grande,Georgia,Heiti TC", 0,
1212      1252},
1213     {0xe36a9e17, L"Ravie", L"STHeiti,Arial Black", 0, 1252},
1214     {0xe433f8e2, L"Parchment", L"Microsoft Sans Serif,Apple Symbols", 8, 1252},
1215     {0xe43dff4a, L"Wingdings", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1216     {0xe4e2c405, L"MTExtra", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1217     {0xe618cc35, L"InformalRoman", L"Arial Narrow", 8, 1252},
1218     {0xe6c27ffc, L"Mistral", L"Apple Symbols", 8, 1252},
1219     {0xe7ebf4b9, L"Courier", L"Courier New", 0, 1252},
1220     {0xe8bc4a9d, L"MSReferenceSpecialty", L"Microsoft Sans Serif,Apple Symbols",
1221      0, 1252},
1222     {0xe90fb013, L"TempusSansITC",
1223      L"STIXNonUnicode,Microsoft Sans Serif,Avenir Light", 0, 1252},
1224     {0xec637b42, L"Consolas",
1225      L"AR PL UKai CN,AR PL UKai HK,AR PL UKai TW,AR PL UKai TW MBE,AR PL UMing "
1226      L"CN,AR PL UMing HK,Microsoft Sans Serif,Tahoma",
1227      1, 1252},
1228     {0xed3a683b, L"STXinwei", L"Kaiti SC,Songti SC,", 0, 936},
1229     {0xef264cd1, L"LucidaHandwriting",
1230      L"Arial Narrow,Avenir Next Condensed Demi Bold,Avenir Next "
1231      L"Condensed,Avenir Next Condensed Medium,STHeiti,Arial Black",
1232      0, 1252},
1233     {0xf086bca2, L"BaskervilleOldFace",
1234      L"STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans", 0, 1252},
1235     {0xf1028030, L"Mangal",
1236      L"Arial Unicode MS,Microsoft Sans Serif,Arial Narrow,Tahoma", 2, 1252},
1237     {0xf1da7eb9, L"ShowcardGothic",
1238      L"Papyrus,Arial Unicode MS,Georgia,American Typewriter", 0, 1252},
1239     {0xf210f06a, L"ArialMT",
1240      L"Arial Unicode MS,Arial Narrow,STIXNonUnicode,Damascus,Avenir Next "
1241      L"Condensed Demi Bold,Avenir Next Condensed Medium,Avenir Next Condensed",
1242      0, 1252},
1243     {0xf477f16a, L"Latha",
1244      L"Arial Narrow,Damascus,STIXNonUnicode,American Typewriter", 0, 1252},
1245     {0xf616f3dd, L"LiSu", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1246     {0xfa479aa6, L"MicrosoftYaHei", L"Arial Unicode MS", 0, 936},
1247     {0xfcd19697, L"BookmanOldStyle",
1248      L"Geeza Pro,Damascus,Andale Mono,Songti SC,Arial Unicode MS", 0, 1252},
1249     {0xfe209a82, L"LucidaCalligraphy",
1250      L"Kokonor,Damascus,STIXNonUnicode,STHeiti,Arial Black", 0, 1252},
1251     {0xfef135f8, L"AdobeHeitiStd-Regular", L"Heiti TC,STHeiti", 0, 936},
1252 };
1253 #elif _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1254 static const XFA_FONTINFO g_XFAFontsMap[] = {
1255     {0x01d5d33e, L"SimSun", L"Droid Sans Fallback", 0, 936},
1256     {0x01e4f102, L"YouYuan", L"Droid Sans Fallback", 1, 936},
1257     {0x030549dc, L"LiSu", L"Droid Sans Fallback", 1, 936},
1258     {0x032edd44, L"Simhei", L"Droid Sans Fallback", 1, 936},
1259     {0x03eac6fc, L"PoorRichard-Regular",
1260      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback,Droid Arabic "
1261      L"Naskh,Droid Sans Ethiopic",
1262      2, 1252},
1263     {0x03ed90e6, L"Nina",
1264      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1265     {0x077b56b3, L"KingsoftPhoneticPlain",
1266      L"Droid Sans Thai,Droid Sans Armenian,Droid Arabic Naskh,Droid Sans "
1267      L"Ethiopic,Droid Sans Fallback",
1268      0, 1252},
1269     {0x078ed524, L"MicrosoftSansSerif", L"Droid Sans Fallback", 0, 1252},
1270     {0x089b18a9, L"Arial", L"Droid Sans Fallback", 0, 1252},
1271     {0x0b2cad72, L"MonotypeCorsiva",
1272      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1273     {0x0bb003e7, L"Kartika",
1274      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1275      L"Mono",
1276      2, 1252},
1277     {0x0bb469df, L"VinerHandITC",
1278      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1279     {0x0bc1a851, L"SegoeUI", L"Droid Sans Fallback", 0, 1252},
1280     {0x0c112ebd, L"KozukaGothicPro-VIM",
1281      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1282     {0x0cfcb9c1, L"AdobeThai",
1283      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 847},
1284     {0x0e7de0f9, L"Playbill",
1285      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1286      L"Mono",
1287      0, 1252},
1288     {0x0eff47c3, L"STHupo", L"Droid Sans Fallback", 0, 936},
1289     {0x107ad374, L"Constantia",
1290      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1291     {0x12194c2d, L"KunstlerScript",
1292      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1293     {0x135ef6a1, L"MinionProSmBd",
1294      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1295     {0x158c4049, L"Garamond",
1296      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1297     {0x160ecb24, L"STZhongsong", L"Droid Sans Fallback", 0, 936},
1298     {0x161ed07e, L"MSGothic", L"Droid Sans Fallback", 1, 1252},
1299     {0x171d1ed1, L"SnapITC-Regular",
1300      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1301     {0x18d1188f, L"Cambria", L"Droid Sans Fallback", 2, 1252},
1302     {0x18eaf350, L"ArialUnicodeMS", L"Droid Sans Fallback", 0, 936},
1303     {0x1a92d115, L"MingLiU", L"Droid Sans Fallback", 1, 1252},
1304     {0x1cc217c6, L"TrebuchetMS",
1305      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1306     {0x1d649596, L"BasemicTimes",
1307      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1308     {0x1e34ee60, L"BellMT",
1309      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1310     {0x1eb36945, L"CooperBlack",
1311      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1312     {0x1ef7787d, L"BatangChe", L"Droid Sans Fallback", 1, 1252},
1313     {0x20b3bd3a, L"BrushScriptMT", L"Droid Arabic Naskh,Droid Sans Ethiopic", 8,
1314      1252},
1315     {0x220877aa, L"Candara",
1316      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1317     {0x22135007, L"FreestyleScript-Regular",
1318      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1319     {0x251059c3, L"Chiller",
1320      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 0, 1252},
1321     {0x25bed6dd, L"MSReferenceSansSerif", L"Droid Sans Fallback", 0, 1252},
1322     {0x28154c81, L"Parchment-Regular",
1323      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1324     {0x29711eb9, L"STLiti", L"Droid Sans Fallback", 0, 936},
1325     {0x2b1993b4, L"Basemic",
1326      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1327     {0x2b316339, L"NiagaraSolid-Reg",
1328      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1329     {0x2c147529, L"FootlightMTLight",
1330      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1331     {0x2c198928, L"HarlowSolid",
1332      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1333     {0x2c6ac6b2, L"LucidaBright",
1334      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 2, 1252},
1335     {0x2c9f38e2, L"KozukaMinchoPro-VIR",
1336      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1337     {0x2d5a47b0, L"STCaiyun", L"Droid Sans Fallback", 0, 936},
1338     {0x2def26bf, L"BernardMT-Condensed",
1339      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1340     {0x2fd8930b, L"KozukaMinchoPr6NR",
1341      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1342     {0x3115525a, L"FangSong_GB2312", L"Droid Sans Fallback", 0, 1252},
1343     {0x31327817, L"MyriadPro",
1344      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1345     {0x32244975, L"Helvetica",
1346      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 0, 1252},
1347     {0x32ac995c, L"Terminal",
1348      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1349     {0x338d648a, L"NiagaraEngraved-Reg",
1350      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1351     {0x33bb65f2, L"Sylfaen",
1352      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1353     {0x3402c30e, L"MSPMincho", L"Droid Sans Fallback", 2, 1252},
1354     {0x3412bf31, L"SimSun-PUA", L"Droid Sans Fallback", 0, 936},
1355     {0x36eb39b9, L"BerlinSansFB",
1356      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1357     {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
1358     {0x3864c4f6, L"HighTowerText",
1359      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1360     {0x3a257d03, L"FangSong_GB2312", L"Droid Sans Fallback", 0, 1252},
1361     {0x3cdae668, L"FreestyleScript",
1362      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1363     {0x3d55aed7, L"Jokerman",
1364      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1365     {0x3d5b4385, L"PMingLiU", L"Droid Sans Fallback", 2, 1252},
1366     {0x3d9b7669, L"EstrangeloEdessa",
1367      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1368     {0x3e532d74, L"FranklinGothicMedium",
1369      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1370     {0x3e6aa32d, L"NSimSun", L"Droid Sans Fallback", 1, 936},
1371     {0x3f6c36a8, L"Gautami",
1372      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1373      L"Mono,Droid Sans Fallback",
1374      0, 1252},
1375     {0x3ff32662, L"Chiller-Regular",
1376      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1377     {0x409de312, L"ModernNo.20",
1378      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1379     {0x41443c5e, L"Georgia",
1380      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1381     {0x4160ade5, L"BellGothicStdBlack",
1382      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1383     {0x421976c4, L"Modern-Regular",
1384      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1385     {0x422a7252, L"Stencil",
1386      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1387     {0x42c8554f, L"Fixedsys",
1388      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1389     {0x435cb41d, L"Roman",
1390      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1391     {0x47882383, L"CourierNew", L"Droid Sans Fallback", 1, 1252},
1392     {0x480a2338, L"BerlinSansFBDemi",
1393      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1394     {0x480bf7a4, L"CourierStd", L"Droid Sans Fallback", 0, 1252},
1395     {0x481ad6ed, L"VladimirScript",
1396      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1397     {0x4911577a, L"YouYuan", L"Droid Sans Fallback", 1, 936},
1398     {0x4a788d72, L"STXingkai", L"Droid Sans Fallback", 0, 936},
1399     {0x4bf88566, L"SegoeCondensed",
1400      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1401     {0x4ccf51a4, L"BerlinSansFB-Reg",
1402      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1403     {0x4ea967ce, L"GulimChe", L"Droid Sans Fallback", 1, 1252},
1404     {0x4f68bd79, L"LetterGothicStd",
1405      L"Droid Sans Mono,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
1406      L"Mono,Droid Serif,Droid Sans Fallback",
1407      0, 1252},
1408     {0x51a0d0e6, L"KozukaGothicPr6NM",
1409      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1410     {0x531b3dea, L"BasemicSymbol",
1411      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1412     {0x5333fd39, L"CalifornianFB-Reg",
1413      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1414     {0x53561a54, L"FZYTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1415     {0x55e0dde6, L"LucidaSansTypewriter",
1416      L"Droid Sans Mono,Droid Arabic Naskh,Droid Sans Ethiopic", 0, 1252},
1417     {0x574d4d3d, L"AdobeArabic",
1418      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1419     {0x5792e759, L"STKaiti", L"Droid Sans Fallback", 0, 936},
1420     {0x5921978e, L"LucidaSansUnicode", L"Droid Sans Fallback", 0, 1252},
1421     {0x594e2da4, L"Vrinda",
1422      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1423      L"Mono",
1424      0, 1252},
1425     {0x59baa9a2, L"KaiTi_GB2312", L"Droid Sans Fallback", 0, 1252},
1426     {0x5cfedf4f, L"BaskOldFace",
1427      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1428     {0x5f97921c, L"AdobeMyungjoStdM", L"Droid Sans Fallback", 0, 936},
1429     {0x5fefbfad, L"Batang", L"Droid Sans Fallback", 2, 1252},
1430     {0x605342b9, L"DotumChe", L"Droid Sans Fallback", 1, 1252},
1431     {0x608c5f9a, L"KaiTi_GB2312", L"Droid Sans Fallback", 0, 936},
1432     {0x61efd0d1, L"MaturaMTScriptCapitals",
1433      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1434      L"Mono",
1435      0, 1252},
1436     {0x626608a9, L"MVBoli",
1437      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1438      L"Mono",
1439      0, 1252},
1440     {0x630501a3, L"SmallFonts",
1441      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1442     {0x65d0e2a9, L"FZYTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1443     {0x669f29e1, L"FZSTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1444     {0x673a9e5f, L"Tunga",
1445      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1446      L"Mono,Droid Sans Fallback",
1447      0, 1252},
1448     {0x691aa4ce, L"NiagaraSolid",
1449      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1450     {0x696259b7, L"Corbel",
1451      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1452     {0x696ee9be, L"STXihei", L"Droid Sans Fallback", 0, 936},
1453     {0x6c59cf69, L"Dotum", L"Droid Sans Fallback", 0, 1252},
1454     {0x707fa561, L"Gungsuh", L"Droid Sans Fallback", 2, 1252},
1455     {0x71416bb2, L"ZWAdobeF",
1456      L"Droid Arabic Naskh,Droid Sans Armenian,Droid Sans Ethiopic,Droid Sans "
1457      L"Georgian,Droid Sans Hebrew,Droid Sans Thai",
1458      0, 1252},
1459     {0x71b41801, L"Verdana",
1460      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1461     {0x73f25e4c, L"PalatinoLinotype", L"Droid Sans Fallback", 0, 1252},
1462     {0x73f4d19f, L"NiagaraEngraved",
1463      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1464     {0x74001694, L"MyriadProBlack", L"Book Antiqua,Constantia,Dotum,Georgia", 0,
1465      1252},
1466     {0x74b14d8f, L"Haettenschweiler",
1467      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1468     {0x74cb44ee, L"NSimSun", L"Droid Sans Fallback", 1, 936},
1469     {0x76b4d7ff, L"Shruti",
1470      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1471      L"Mono",
1472      0, 1252},
1473     {0x788b3533, L"Webdings",
1474      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1475     {0x797dde99, L"MSSerif",
1476      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1477     {0x7a0f9e9e, L"MSMincho", L"Droid Sans Fallback", 1, 1252},
1478     {0x7b439caf, L"OldEnglishTextMT",
1479      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1480     {0x8213a433, L"LucidaSans-Typewriter",
1481      L"Droid Sans Mono,Droid Serif,Roboto,Droid Sans Fallback", 0, 1252},
1482     {0x82fec929, L"AdobeSongStdL", L"Droid Sans Fallback", 0, 936},
1483     {0x83581825, L"Modern",
1484      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1485     {0x835a2823, L"Algerian",
1486      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1487     {0x83dab9f5, L"Script",
1488      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1489     {0x847b56da, L"Tahoma", L"Droid Sans Fallback", 0, 1252},
1490     {0x8a783cb2, L"SimSun-PUA", L"Droid Sans Fallback", 0, 1252},
1491     {0x8b5cac0e, L"Onyx",
1492      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1493     {0x8c6a499e, L"Gulim", L"Droid Sans Fallback", 0, 1252},
1494     {0x8e0af790, L"JuiceITC",
1495      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1496     {0x8e8d43b2, L"Centaur",
1497      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1498     {0x8ee4dcca, L"BookshelfSymbol7",
1499      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1500     {0x90794800, L"BellGothicStdLight",
1501      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1502     {0x909b516a, L"Century",
1503      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1504     {0x92ae370d, L"MSOutlook",
1505      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1506     {0x93c9fbf1, L"LucidaFax",
1507      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1508      L"Mono",
1509      2, 1252},
1510     {0x9565085e, L"BookAntiqua",
1511      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1512     {0x9856d95d, L"AdobeMingStdL", L"Droid Sans Fallback", 0, 949},
1513     {0x9bbadd6b, L"ColonnaMT",
1514      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1515     {0x9cbd16a4, L"ShowcardGothic-Reg",
1516      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallbac", 0, 1252},
1517     {0x9d73008e, L"MSSansSerif",
1518      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1519     {0xa0607db1, L"GungsuhChe", L"Droid Sans Fallback", 1, 1252},
1520     {0xa0bcf6a1, L"LatinWide",
1521      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1522     {0xa1429b36, L"Symbol",
1523      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1524     {0xa1fa5abc, L"Wingdings2",
1525      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1526     {0xa1fa5abd, L"Wingdings3",
1527      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1528     {0xa427bad4, L"InformalRoman-Regular",
1529      L"Droid Arabic Naskh,Droid Sans Ethiopic", 8, 1252},
1530     {0xa8b92ece, L"FZSTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1531     {0xa8d83ece, L"CalifornianFB",
1532      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1533     {0xaa3e082c, L"Kingsoft-Phonetic",
1534      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1535     {0xaa6bcabe, L"HarlowSolidItalic",
1536      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1537     {0xade5337c, L"MSUIGothic",
1538      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1539     {0xb08dd941, L"WideLatin",
1540      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1541      L"Mono",
1542      2, 1252},
1543     {0xb207f05d, L"PoorRichard",
1544      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1545     {0xb3bc492f, L"JuiceITC-Regular",
1546      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1547     {0xb5545399, L"Marlett",
1548      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1549     {0xb5dd1ebb, L"BritannicBold", L"Droid Arabic Naskh,Droid Sans Ethiopic", 0,
1550      1252},
1551     {0xb699c1c5, L"LucidaCalligraphy-Italic",
1552      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1553     {0xb725d629, L"TimesNewRoman", L"Droid Sans Fallback", 2, 1252},
1554     {0xb7eaebeb, L"AdobeHeitiStdR", L"Droid Sans Fallback", 0, 936},
1555     {0xbd29c486, L"BerlinSansFBDemi-Bold",
1556      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1557     {0xbe8a8db4, L"BookshelfSymbolSeven",
1558      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1559     {0xc16c0118, L"AdobeHebrew",
1560      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback,Droid Arabic "
1561      L"Naskh,Droid Sans Ethiopic",
1562      0, 1252},
1563     {0xc318b0af, L"MyriadProLight",
1564      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1565     {0xc65e5659, L"CambriaMath", L"Droid Sans Fallback", 2, 1252},
1566     {0xc75c8f05, L"LucidaConsole",
1567      L"Droid Sans Mono,Droid Serif,Roboto,Droid Sans Fallback", 1, 1252},
1568     {0xca7c35d6, L"Calibri", L"Droid Sans Fallback", 0, 1252},
1569     {0xcb053f53, L"MicrosoftYaHei", L"Droid Sans Fallback", 0, 936},
1570     {0xcb7190f9, L"Magneto-Bold",
1571      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1572     {0xcca00cc5, L"System",
1573      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1574     {0xccad6f76, L"Jokerman-Regular",
1575      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1576     {0xccc5818c, L"EuroSign",
1577      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1578     {0xcf3d7234, L"LucidaHandwriting-Italic",
1579      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1580     {0xcf7b8fdb, L"MinionPro",
1581      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1582     {0xcfe5755f, L"Simhei", L"Droid Sans Fallback", 1, 936},
1583     {0xd011f4ee, L"MSPGothic", L"Droid Sans Fallback", 0, 1252},
1584     {0xd060e7ef, L"Vivaldi",
1585      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1586     {0xd07edec1, L"FranklinGothic-Medium",
1587      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1588     {0xd107243f, L"SimSun", L"Droid Sans Fallback", 0, 936},
1589     {0xd1881562, L"ArialNarrow",
1590      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1591     {0xd22b7dce, L"BodoniMTPosterCompressed",
1592      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1593     {0xd22bfa60, L"ComicSansMS", L"Droid Serif,Roboto,Droid Sans Fallback", 8,
1594      1252},
1595     {0xd3bd0e35, L"Bauhaus93",
1596      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1597     {0xd429ee7a, L"STFangsong", L"Droid Sans Fallback", 0, 936},
1598     {0xd6679c12, L"BernardMTCondensed",
1599      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1600     {0xd8e8a027, L"LucidaSans",
1601      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 0, 1252},
1602     {0xd9fe7761, L"HighTowerText-Reg",
1603      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1604     {0xda7e551e, L"STSong", L"Droid Sans Fallback", 0, 936},
1605     {0xdaa6842d, L"STZhongsong", L"Droid Sans Fallback", 0, 936},
1606     {0xdaaab93f, L"STFangsong", L"Droid Sans Fallback", 0, 936},
1607     {0xdaeb0713, L"STSong",
1608      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 936},
1609     {0xdafedbef, L"STCaiyun", L"Droid Sans Fallback", 0, 936},
1610     {0xdb00a3d9, L"Broadway",
1611      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1612     {0xdb1f5ad4, L"STXinwei", L"Droid Sans Fallback", 0, 936},
1613     {0xdb326e7f, L"STKaiti", L"Droid Sans Fallback", 0, 936},
1614     {0xdb69595a, L"STHupo", L"Droid Sans Fallback", 0, 936},
1615     {0xdba0082c, L"STXihei", L"Droid Sans Fallback", 0, 936},
1616     {0xdbd0ab18, L"STXingkai", L"Droid Sans Fallback", 0, 936},
1617     {0xdc1a7db1, L"STLiti", L"Droid Sans Fallback", 0, 936},
1618     {0xdc33075f, L"KristenITC-Regular",
1619      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 8, 1252},
1620     {0xdcc7009c, L"Harrington",
1621      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1622     {0xdd712466, L"ArialBlack",
1623      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1624     {0xdde87b3e, L"Impact",
1625      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1626     {0xdf69fb32, L"SnapITC",
1627      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1628      L"Mono",
1629      0, 1252},
1630     {0xdf8b25e8, L"CenturyGothic",
1631      L"Droid Serif,Roboto,Droid Serif,Droid Sans Mono", 0, 1252},
1632     {0xe0f705c0, L"KristenITC",
1633      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 8, 1252},
1634     {0xe1427573, L"Raavi",
1635      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1636      L"Mono",
1637      0, 1252},
1638     {0xe2cea0cb, L"Magneto",
1639      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1640      L"Mono",
1641      0, 1252},
1642     {0xe36a9e17, L"Ravie",
1643      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1644      L"Mono",
1645      0, 1252},
1646     {0xe433f8e2, L"Parchment",
1647      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1648     {0xe43dff4a, L"Wingdings",
1649      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1650     {0xe4e2c405, L"MTExtra",
1651      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1652     {0xe618cc35, L"InformalRoman",
1653      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 8, 1252},
1654     {0xe6c27ffc, L"Mistral",
1655      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1656     {0xe7ebf4b9, L"Courier", L"Droid Sans Fallback", 0, 1252},
1657     {0xe8bc4a9d, L"MSReferenceSpecialty",
1658      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1659     {0xe90fb013, L"TempusSansITC",
1660      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1661     {0xec637b42, L"Consolas", L"Droid Sans Fallback", 1, 1252},
1662     {0xed3a683b, L"STXinwei", L"Droid Sans Fallback", 0, 936},
1663     {0xef264cd1, L"LucidaHandwriting",
1664      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1665      L"Mono",
1666      0, 1252},
1667     {0xf086bca2, L"BaskervilleOldFace",
1668      L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1669     {0xf1028030, L"Mangal",
1670      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1671      L"Mono",
1672      2, 1252},
1673     {0xf1da7eb9, L"ShowcardGothic",
1674      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallbac", 0, 1252},
1675     {0xf210f06a, L"ArialMT",
1676      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 0, 1252},
1677     {0xf477f16a, L"Latha",
1678      L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1679      L"Mono",
1680      0, 1252},
1681     {0xf616f3dd, L"LiSu", L"Droid Sans Fallback", 1, 936},
1682     {0xfa479aa6, L"MicrosoftYaHei", L"Droid Sans Fallback", 0, 936},
1683     {0xfcd19697, L"BookmanOldStyle",
1684      L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1685     {0xfe209a82, L"LucidaCalligraphy",
1686      L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1687      L"Mono",
1688      0, 1252},
1689     {0xfef135f8, L"AdobeHeitiStd-Regular", L"Droid Sans Fallback", 0, 936},
1690 };
1691 #endif
XFA_LocalFontNameToEnglishName(const CFX_WideStringC & wsLocalName,CFX_WideString & wsEnglishName)1692 void XFA_LocalFontNameToEnglishName(const CFX_WideStringC& wsLocalName,
1693                                     CFX_WideString& wsEnglishName) {
1694   wsEnglishName = wsLocalName;
1695 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ || \
1696     _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ ||   \
1697     _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ ||   \
1698     _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1699   FX_DWORD dwLocalNameHash = FX_HashCode_String_GetW(
1700       wsLocalName.GetPtr(), wsLocalName.GetLength(), TRUE);
1701   int32_t iStart = 0;
1702   int32_t iEnd = sizeof(g_XFAFontsMap) / sizeof(XFA_FONTINFO) - 1;
1703   int32_t iMid = 0;
1704   do {
1705     iMid = (iStart + iEnd) / 2;
1706     FX_DWORD dwFontNameHash = g_XFAFontsMap[iMid].dwFontNameHash;
1707     if (dwFontNameHash == dwLocalNameHash) {
1708       wsEnglishName = g_XFAFontsMap[iMid].pPsName;
1709       break;
1710     } else if (dwFontNameHash < dwLocalNameHash) {
1711       iStart = iMid + 1;
1712     } else {
1713       iEnd = iMid - 1;
1714     }
1715   } while (iEnd >= iStart);
1716 #endif
1717 }
XFA_GetFontINFOByFontName(const CFX_WideStringC & wsFontName)1718 const XFA_FONTINFO* XFA_GetFontINFOByFontName(
1719     const CFX_WideStringC& wsFontName) {
1720 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ || \
1721     _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ ||   \
1722     _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ ||   \
1723     _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1724   CFX_WideString wsFontNameTemp = wsFontName;
1725   wsFontNameTemp.Remove(L' ');
1726   FX_DWORD dwCurFontNameHash =
1727       FX_HashCode_String_GetW(wsFontNameTemp, wsFontNameTemp.GetLength(), TRUE);
1728   int32_t iStart = 0;
1729   int32_t iEnd = sizeof(g_XFAFontsMap) / sizeof(XFA_FONTINFO) - 1;
1730   int32_t iMid = 0;
1731   const XFA_FONTINFO* pFontInfo = NULL;
1732   do {
1733     iMid = (iStart + iEnd) / 2;
1734     FX_DWORD dwFontNameHash = g_XFAFontsMap[iMid].dwFontNameHash;
1735     if (dwFontNameHash == dwCurFontNameHash) {
1736       pFontInfo = &g_XFAFontsMap[iMid];
1737       break;
1738     } else if (dwFontNameHash < dwCurFontNameHash) {
1739       iStart = iMid + 1;
1740     } else {
1741       iEnd = iMid - 1;
1742     }
1743   } while (iEnd >= iStart);
1744   return pFontInfo;
1745 #else
1746   return NULL;
1747 #endif
1748 }
1749 // static
CreateDefault()1750 IXFA_FontMgr* IXFA_FontMgr::CreateDefault() {
1751   return new CXFA_DefFontMgr;
1752 }
1753 // virtual
~IXFA_FontMgr()1754 IXFA_FontMgr::~IXFA_FontMgr() {}
~CXFA_DefFontMgr()1755 CXFA_DefFontMgr::~CXFA_DefFontMgr() {
1756   int32_t iCounts = m_CacheFonts.GetSize();
1757   for (int32_t i = 0; i < iCounts; i++) {
1758     ((IFX_Font*)m_CacheFonts[i])->Release();
1759   }
1760   m_CacheFonts.RemoveAll();
1761 }
1762 #define _FXFA_USEGASFONTMGR_
GetFont(IXFA_Doc * hDoc,const CFX_WideStringC & wsFontFamily,FX_DWORD dwFontStyles,FX_WORD wCodePage)1763 IFX_Font* CXFA_DefFontMgr::GetFont(IXFA_Doc* hDoc,
1764                                    const CFX_WideStringC& wsFontFamily,
1765                                    FX_DWORD dwFontStyles,
1766                                    FX_WORD wCodePage) {
1767   CFX_WideString wsFontName = wsFontFamily;
1768   IFX_FontMgr* pFDEFontMgr = ((CXFA_FFDoc*)hDoc)->GetApp()->GetFDEFontMgr();
1769 #ifdef _FXFA_USEGASFONTMGR_
1770   const XFA_FONTINFO* pCurFont = NULL;
1771   FX_BOOL bGetFontInfo = TRUE;
1772   IFX_Font* pFont = pFDEFontMgr->LoadFont((const FX_WCHAR*)wsFontName,
1773                                           dwFontStyles, wCodePage);
1774 #else
1775   const XFA_FONTINFO* pCurFont = XFA_GetFontINFOByFontName(wsFontName);
1776   FX_BOOL bGetFontInfo = FALSE;
1777   IFX_Font* pFont = IFX_Font::LoadFont(
1778       (const FX_WCHAR*)wsFontName, dwFontStyles | FX_FONTSTYLE_ExactMatch,
1779       pCurFont ? pCurFont->wCodePage : wCodePage, pFDEFontMgr);
1780 #endif
1781   if (!pFont && hDoc) {
1782     if (bGetFontInfo) {
1783       pCurFont = XFA_GetFontINFOByFontName(wsFontName);
1784     }
1785     if (pCurFont != NULL && pCurFont->pReplaceFont != NULL) {
1786       FX_DWORD dwStyle = 0;
1787       if (dwFontStyles & FX_FONTSTYLE_Bold) {
1788         dwStyle |= FX_FONTSTYLE_Bold;
1789       }
1790       if (dwFontStyles & FX_FONTSTYLE_Italic) {
1791         dwStyle |= FX_FONTSTYLE_Italic;
1792       }
1793       const FX_WCHAR* pReplace = pCurFont->pReplaceFont;
1794       int32_t iLength = FXSYS_wcslen(pReplace);
1795       while (iLength > 0) {
1796         const FX_WCHAR* pNameText = pReplace;
1797         while (*pNameText != L',' && iLength > 0) {
1798           pNameText++;
1799           iLength--;
1800         }
1801         CFX_WideString wsReplace =
1802             CFX_WideString(pReplace, pNameText - pReplace);
1803 #ifdef _FXFA_USEGASFONTMGR_
1804         pFont = pFDEFontMgr->LoadFont(wsReplace, dwStyle, wCodePage);
1805 #else
1806         pFont = IFX_Font::LoadFont((const FX_WCHAR*)wsReplace,
1807                                    dwStyle | FX_FONTSTYLE_ExactMatch,
1808                                    pCurFont->wCodePage, pFDEFontMgr);
1809 #endif
1810         if (pFont != NULL) {
1811           break;
1812         }
1813         iLength--;
1814         pNameText++;
1815         pReplace = pNameText;
1816       }
1817     }
1818   }
1819   if (pFont) {
1820     m_CacheFonts.Add(pFont);
1821   }
1822   return pFont;
1823 }
GetDefaultFont(IXFA_Doc * hDoc,const CFX_WideStringC & wsFontFamily,FX_DWORD dwFontStyles,FX_WORD wCodePage)1824 IFX_Font* CXFA_DefFontMgr::GetDefaultFont(IXFA_Doc* hDoc,
1825                                           const CFX_WideStringC& wsFontFamily,
1826                                           FX_DWORD dwFontStyles,
1827                                           FX_WORD wCodePage) {
1828   IFX_FontMgr* pFDEFontMgr = ((CXFA_FFDoc*)hDoc)->GetApp()->GetFDEFontMgr();
1829 #ifdef _FXFA_USEGASFONTMGR_
1830   IFX_Font* pFont =
1831       pFDEFontMgr->LoadFont(L"Arial Narrow", dwFontStyles, wCodePage);
1832 #else
1833   const XFA_FONTINFO* pCurFont = XFA_GetFontINFOByFontName(wsFontFamily);
1834   IFX_Font* pFont =
1835       IFX_Font::LoadFont(L"Arial Narrow", dwFontStyles,
1836                          pCurFont ? pCurFont->wCodePage : 1252, pFDEFontMgr);
1837 #endif
1838   if (!pFont)
1839 #ifdef _FXFA_USEGASFONTMGR_
1840     pFont =
1841         pFDEFontMgr->LoadFont((const FX_WCHAR*)NULL, dwFontStyles, wCodePage);
1842 #else
1843     pFont =
1844         IFX_Font::LoadFont((const FX_WCHAR*)NULL, dwFontStyles,
1845                            pCurFont ? pCurFont->wCodePage : 1252, pFDEFontMgr);
1846 #endif
1847   FXSYS_assert(pFont != NULL);
1848   if (pFont) {
1849     m_CacheFonts.Add(pFont);
1850   }
1851   return pFont;
1852 }
1853 struct XFA_PDFFONTNAME {
1854   const FX_CHAR* lpPsName;
1855   const FX_CHAR* lpNormal;
1856   const FX_CHAR* lpBold;
1857   const FX_CHAR* lpItalic;
1858   const FX_CHAR* lpBoldItalic;
1859 };
1860 const XFA_PDFFONTNAME g_XFAPDFFontName[] = {
1861     {"Adobe PI Std", "AdobePIStd", "AdobePIStd", "AdobePIStd", "AdobePIStd"},
1862     {"Myriad Pro Light", "MyriadPro-Light", "MyriadPro-Semibold",
1863      "MyriadPro-LightIt", "MyriadPro-SemiboldIt"},
1864 };
CXFA_PDFFontMgr(CXFA_FFDoc * pDoc)1865 CXFA_PDFFontMgr::CXFA_PDFFontMgr(CXFA_FFDoc* pDoc) {
1866   m_pDoc = pDoc;
1867 }
~CXFA_PDFFontMgr()1868 CXFA_PDFFontMgr::~CXFA_PDFFontMgr() {
1869   m_FDE2PDFFont.RemoveAll();
1870   FX_POSITION ps = m_FontArray.GetStartPosition();
1871   while (ps) {
1872     CFX_ByteString strKey;
1873     IFX_Font* pFont = NULL;
1874     m_FontArray.GetNextAssoc(ps, strKey, (void*&)pFont);
1875     if (pFont != NULL) {
1876       pFont->Release();
1877     }
1878   }
1879   m_FontArray.RemoveAll();
1880 }
FindFont(CFX_ByteString strPsName,FX_BOOL bBold,FX_BOOL bItalic,CPDF_Font ** pDstPDFFont,FX_BOOL bStrictMatch)1881 IFX_Font* CXFA_PDFFontMgr::FindFont(CFX_ByteString strPsName,
1882                                     FX_BOOL bBold,
1883                                     FX_BOOL bItalic,
1884                                     CPDF_Font** pDstPDFFont,
1885                                     FX_BOOL bStrictMatch) {
1886   CPDF_Document* pDoc = m_pDoc->GetPDFDoc();
1887   if (pDoc == NULL) {
1888     return NULL;
1889   }
1890   CPDF_Dictionary* pFontSetDict =
1891       pDoc->GetRoot()->GetDict("AcroForm")->GetDict("DR");
1892   if (!pFontSetDict) {
1893     return NULL;
1894   }
1895   pFontSetDict = (CPDF_Dictionary*)pFontSetDict->GetDict("Font");
1896   if (!pFontSetDict) {
1897     return NULL;
1898   }
1899   strPsName.Remove(' ');
1900   IFX_FontMgr* pFDEFontMgr = m_pDoc->GetApp()->GetFDEFontMgr();
1901   for (const auto& it : *pFontSetDict) {
1902     const CFX_ByteString& key = it.first;
1903     CPDF_Object* pObj = it.second;
1904     if (!PsNameMatchDRFontName(strPsName, bBold, bItalic, key, bStrictMatch)) {
1905       continue;
1906     }
1907     CPDF_Object* pDirect = pObj->GetDirect();
1908     if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) {
1909       return NULL;
1910     }
1911     CPDF_Dictionary* pFontDict = (CPDF_Dictionary*)pDirect;
1912     if (pFontDict->GetString("Type") != "Font") {
1913       return NULL;
1914     }
1915     CPDF_Font* pPDFFont = pDoc->LoadFont(pFontDict);
1916     if (!pPDFFont) {
1917       return NULL;
1918     }
1919     if (!pPDFFont->IsEmbedded()) {
1920       *pDstPDFFont = pPDFFont;
1921       return NULL;
1922     }
1923     return IFX_Font::LoadFont(&pPDFFont->m_Font, pFDEFontMgr);
1924   }
1925   return NULL;
1926 }
GetFont(const CFX_WideStringC & wsFontFamily,FX_DWORD dwFontStyles,CPDF_Font ** pPDFFont,FX_BOOL bStrictMatch)1927 IFX_Font* CXFA_PDFFontMgr::GetFont(const CFX_WideStringC& wsFontFamily,
1928                                    FX_DWORD dwFontStyles,
1929                                    CPDF_Font** pPDFFont,
1930                                    FX_BOOL bStrictMatch) {
1931   FX_DWORD dwHashCode =
1932       FX_HashCode_String_GetW(wsFontFamily.GetPtr(), wsFontFamily.GetLength());
1933   CFX_ByteString strKey;
1934   IFX_Font* pFont = NULL;
1935   strKey.Format("%u%u", dwHashCode, dwFontStyles);
1936   if (m_FontArray.Lookup(strKey, (void*&)pFont)) {
1937     return pFont;
1938   }
1939   CFX_ByteString bsPsName;
1940   bsPsName = CFX_ByteString::FromUnicode(wsFontFamily);
1941   FX_BOOL bBold = (dwFontStyles & FX_FONTSTYLE_Bold) == FX_FONTSTYLE_Bold;
1942   FX_BOOL bItalic = (dwFontStyles & FX_FONTSTYLE_Italic) == FX_FONTSTYLE_Italic;
1943   CFX_ByteString strFontName = PsNameToFontName(bsPsName, bBold, bItalic);
1944   pFont = FindFont(strFontName, bBold, bItalic, pPDFFont, bStrictMatch);
1945   if (pFont) {
1946     m_FontArray.SetAt(strKey, pFont);
1947   }
1948   return pFont;
1949 }
PsNameToFontName(const CFX_ByteString & strPsName,FX_BOOL bBold,FX_BOOL bItalic)1950 CFX_ByteString CXFA_PDFFontMgr::PsNameToFontName(
1951     const CFX_ByteString& strPsName,
1952     FX_BOOL bBold,
1953     FX_BOOL bItalic) {
1954   int32_t nCount = sizeof(g_XFAPDFFontName) / sizeof(XFA_PDFFONTNAME);
1955   for (int32_t i = 0; i < nCount; i++) {
1956     if (strPsName == g_XFAPDFFontName[i].lpPsName) {
1957       int32_t index = 1 + ((bItalic << 1) | bBold);
1958       return *(&g_XFAPDFFontName[i].lpPsName + index);
1959     }
1960   }
1961   return strPsName;
1962 }
PsNameMatchDRFontName(const CFX_ByteStringC & bsPsName,FX_BOOL bBold,FX_BOOL bItalic,const CFX_ByteString & bsDRFontName,FX_BOOL bStrictMatch)1963 FX_BOOL CXFA_PDFFontMgr::PsNameMatchDRFontName(
1964     const CFX_ByteStringC& bsPsName,
1965     FX_BOOL bBold,
1966     FX_BOOL bItalic,
1967     const CFX_ByteString& bsDRFontName,
1968     FX_BOOL bStrictMatch) {
1969   CFX_ByteString bsDRName = bsDRFontName;
1970   bsDRName.Remove('-');
1971   int32_t iPsLen = bsPsName.GetLength();
1972   int32_t nIndex = bsDRName.Find(bsPsName);
1973   if (nIndex != -1 && !bStrictMatch) {
1974     return TRUE;
1975   }
1976   if (nIndex != 0) {
1977     return FALSE;
1978   }
1979   int32_t iDifferLength = bsDRName.GetLength() - iPsLen;
1980   if (iDifferLength > 1 || (bBold || bItalic)) {
1981     int32_t iBoldIndex = bsDRName.Find("Bold");
1982     FX_BOOL bBoldFont = iBoldIndex > 0;
1983     if (bBold ^ bBoldFont) {
1984       return FALSE;
1985     }
1986     if (bBoldFont) {
1987       iDifferLength =
1988           std::min(iDifferLength - 4, bsDRName.GetLength() - iBoldIndex - 4);
1989     }
1990     FX_BOOL bItalicFont = TRUE;
1991     if (bsDRName.Find("Italic") > 0) {
1992       iDifferLength -= 6;
1993     } else if (bsDRName.Find("It") > 0) {
1994       iDifferLength -= 2;
1995     } else if (bsDRName.Find("Oblique") > 0) {
1996       iDifferLength -= 7;
1997     } else {
1998       bItalicFont = FALSE;
1999     }
2000     if (bItalic ^ bItalicFont) {
2001       return FALSE;
2002     }
2003     if (iDifferLength > 1) {
2004       CFX_ByteString bsDRTailer = bsDRName.Right(iDifferLength);
2005       if (bsDRTailer.Equal("MT") || bsDRTailer.Equal("PSMT") ||
2006           bsDRTailer.Equal("Regular") || bsDRTailer.Equal("Reg")) {
2007         return TRUE;
2008       }
2009       if (bBoldFont || bItalicFont) {
2010         return FALSE;
2011       }
2012       FX_BOOL bMatch = FALSE;
2013       switch (bsPsName.GetAt(iPsLen - 1)) {
2014         case 'L': {
2015           if (bsDRName.Right(5).Equal("Light")) {
2016             bMatch = TRUE;
2017           }
2018         } break;
2019         case 'R': {
2020           if (bsDRName.Right(7).Equal("Regular") ||
2021               bsDRName.Right(3).Equal("Reg")) {
2022             bMatch = TRUE;
2023           }
2024         } break;
2025         case 'M': {
2026           if (bsDRName.Right(5).Equal("Medium")) {
2027             bMatch = TRUE;
2028           }
2029         } break;
2030         default:
2031           break;
2032       }
2033       return bMatch;
2034     }
2035   }
2036   return TRUE;
2037 }
GetCharWidth(IFX_Font * pFont,FX_WCHAR wUnicode,int32_t & iWidth,FX_BOOL bCharCode)2038 FX_BOOL CXFA_PDFFontMgr::GetCharWidth(IFX_Font* pFont,
2039                                       FX_WCHAR wUnicode,
2040                                       int32_t& iWidth,
2041                                       FX_BOOL bCharCode) {
2042   if (wUnicode != 0x20 || bCharCode) {
2043     return FALSE;
2044   }
2045   CPDF_Font* pPDFFont = (CPDF_Font*)m_FDE2PDFFont.GetValueAt(pFont);
2046   if (!pPDFFont) {
2047     return FALSE;
2048   }
2049   wUnicode = (FX_WCHAR)pPDFFont->CharCodeFromUnicode(wUnicode);
2050   iWidth = pPDFFont->GetCharWidthF(wUnicode);
2051   return TRUE;
2052 }
CXFA_FontMgr()2053 CXFA_FontMgr::CXFA_FontMgr() : m_pDefFontMgr(NULL) {}
~CXFA_FontMgr()2054 CXFA_FontMgr::~CXFA_FontMgr() {
2055   DelAllMgrMap();
2056 }
GetFont(IXFA_Doc * hDoc,const CFX_WideStringC & wsFontFamily,FX_DWORD dwFontStyles,FX_WORD wCodePage)2057 IFX_Font* CXFA_FontMgr::GetFont(IXFA_Doc* hDoc,
2058                                 const CFX_WideStringC& wsFontFamily,
2059                                 FX_DWORD dwFontStyles,
2060                                 FX_WORD wCodePage) {
2061   FX_DWORD dwHash = FX_HashCode_String_GetW(wsFontFamily.GetPtr(),
2062                                             wsFontFamily.GetLength(), FALSE);
2063   CFX_ByteString bsKey;
2064   bsKey.Format("%u%u%u", dwHash, dwFontStyles, wCodePage);
2065   IFX_Font* pFont = NULL;
2066   if (m_FontArray.Lookup(bsKey, (void*&)pFont)) {
2067     return pFont;
2068   }
2069   CFX_WideString wsEnglishName;
2070   XFA_LocalFontNameToEnglishName(wsFontFamily, wsEnglishName);
2071   CXFA_PDFFontMgr* pMgr = (CXFA_PDFFontMgr*)m_PDFFontMgrArray.GetValueAt(hDoc);
2072   CPDF_Font* pPDFFont = NULL;
2073   if (pMgr != NULL) {
2074     pFont = pMgr->GetFont(wsEnglishName, dwFontStyles, &pPDFFont);
2075     if (pFont) {
2076       return pFont;
2077     }
2078   }
2079   if (pFont == NULL && m_pDefFontMgr != NULL) {
2080     pFont = m_pDefFontMgr->GetFont(hDoc, wsFontFamily, dwFontStyles, wCodePage);
2081   }
2082   if (pFont == NULL && pMgr != NULL) {
2083     pPDFFont = NULL;
2084     pFont = pMgr->GetFont(wsEnglishName, dwFontStyles, &pPDFFont, FALSE);
2085     if (pFont) {
2086       return pFont;
2087     }
2088   }
2089   if (pFont == NULL && m_pDefFontMgr != NULL) {
2090     pFont = m_pDefFontMgr->GetDefaultFont(hDoc, wsFontFamily, dwFontStyles,
2091                                           wCodePage);
2092   }
2093   FXSYS_assert(pFont != NULL);
2094   if (pFont) {
2095     if (pPDFFont) {
2096       pMgr->m_FDE2PDFFont.SetAt(pFont, pPDFFont);
2097       pFont->SetFontProvider(pMgr);
2098     }
2099     m_FontArray.SetAt(bsKey, pFont);
2100   }
2101   return pFont;
2102 }
LoadDocFonts(IXFA_Doc * hDoc)2103 void CXFA_FontMgr::LoadDocFonts(IXFA_Doc* hDoc) {
2104   if (!m_PDFFontMgrArray.GetValueAt(hDoc)) {
2105     m_PDFFontMgrArray.SetAt(hDoc, new CXFA_PDFFontMgr((CXFA_FFDoc*)hDoc));
2106   }
2107 }
ReleaseDocFonts(IXFA_Doc * hDoc)2108 void CXFA_FontMgr::ReleaseDocFonts(IXFA_Doc* hDoc) {
2109   CXFA_PDFFontMgr* pMgr = NULL;
2110   if (m_PDFFontMgrArray.Lookup(hDoc, (void*&)pMgr)) {
2111     if (pMgr != NULL) {
2112       delete pMgr;
2113     }
2114     m_PDFFontMgrArray.RemoveKey(hDoc);
2115   }
2116 }
DelAllMgrMap()2117 void CXFA_FontMgr::DelAllMgrMap() {
2118   FX_POSITION ps = m_PDFFontMgrArray.GetStartPosition();
2119   while (ps) {
2120     IXFA_Doc* hDoc = NULL;
2121     CXFA_PDFFontMgr* pMgr = NULL;
2122     m_PDFFontMgrArray.GetNextAssoc(ps, (void*&)hDoc, (void*&)pMgr);
2123     if (pMgr != NULL) {
2124       delete pMgr;
2125     }
2126   }
2127   m_PDFFontMgrArray.RemoveAll();
2128   m_FontArray.RemoveAll();
2129 }
SetDefFontMgr(IXFA_FontMgr * pFontMgr)2130 void CXFA_FontMgr::SetDefFontMgr(IXFA_FontMgr* pFontMgr) {
2131   m_pDefFontMgr = pFontMgr;
2132 }
2133