xref: /aoo42x/main/vcl/source/gdi/base14.cxx (revision f02e852a)
1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_vcl.hxx"
26 
27 #include "pdfwriter_impl.hxx"
28 #include <rtl/strbuf.hxx>
29 
30 using namespace vcl;
31 using namespace rtl;
32 
getNameObject() const33 OString PDFWriterImpl::BuiltinFont::getNameObject() const
34 {
35     OStringBuffer aBuf( 16 );
36     aBuf.append( '/' );
37     const char* pRun = m_pPSName;
38 
39     unsigned int nCopied = 0;
40     while( *pRun )
41     {
42         if( *pRun >= 'A' && *pRun <= 'Z' )
43             nCopied = 0;
44         if( nCopied++ < 2 )
45             aBuf.append( *pRun );
46         pRun++;
47     }
48     return aBuf.makeStringAndClear();
49 }
50 
51 const PDFWriterImpl::BuiltinFont PDFWriterImpl::m_aBuiltinFonts[ 14 ] = {
52 { "Courier", // family name
53   "Normal", // style
54   "Courier", // PSName
55   629, -157, // ascend, descend
56   FAMILY_MODERN, // family style
57   RTL_TEXTENCODING_MS_1252, // charset
58   PITCH_FIXED, // pitch
59   WIDTH_NORMAL, // width type
60   WEIGHT_NORMAL, // weight type
61   ITALIC_NONE, // italic type
62   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
63     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
64     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
65     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
66     600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
67     600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
68     600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
69     600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
70     600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
71     600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
72     600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
73     600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
74     600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
75     600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
76     600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
77     600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
78     600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
79     600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
80     0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
81     600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
82     600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
83     600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
84     600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
85     600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
86     600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
87     600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
88     600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
89     600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
90     600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
91     600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
92     600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
93     600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
94     }
95 },
96 
97 { "Courier", // family name
98   "Italic", // style
99   "Courier-Oblique", // PSName
100   629, -157, // ascend, descend
101   FAMILY_MODERN, // family style
102   RTL_TEXTENCODING_MS_1252, // charset
103   PITCH_FIXED, // pitch
104   WIDTH_NORMAL, // width type
105   WEIGHT_NORMAL, // weight type
106   ITALIC_NORMAL, // italic type
107   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
108     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
109     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
110     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
111     600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
112     600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
113     600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
114     600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
115     600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
116     600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
117     600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
118     600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
119     600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
120     600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
121     600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
122     600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
123     600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
124     600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
125     0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
126     600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
127     600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
128     600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
129     600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
130     600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
131     600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
132     600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
133     600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
134     600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
135     600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
136     600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
137     600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
138     600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
139     }
140 },
141 
142 { "Courier", // family name
143   "Bold", // style
144   "Courier-Bold", // PSName
145   629, -157, // ascend, descend
146   FAMILY_MODERN, // family style
147   RTL_TEXTENCODING_MS_1252, // charset
148   PITCH_FIXED, // pitch
149   WIDTH_NORMAL, // width type
150   WEIGHT_BOLD, // weight type
151   ITALIC_NONE, // italic type
152   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
153     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
154     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
155     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
156     600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
157     600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
158     600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
159     600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
160     600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
161     600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
162     600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
163     600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
164     600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
165     600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
166     600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
167     600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
168     600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
169     600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
170     0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
171     600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
172     600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
173     600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
174     600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
175     600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
176     600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
177     600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
178     600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
179     600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
180     600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
181     600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
182     600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
183     600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
184     }
185 },
186 
187 { "Courier", // family name
188   "Bold Italic", // style
189   "Courier-BoldOblique", // PSName
190   629, -157, // ascend, descend
191   FAMILY_MODERN, // family style
192   RTL_TEXTENCODING_MS_1252, // charset
193   PITCH_FIXED, // pitch
194   WIDTH_NORMAL, // width type
195   WEIGHT_BOLD, // weight type
196   ITALIC_NORMAL, // italic type
197   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
198     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
199     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
200     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
201     600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
202     600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
203     600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
204     600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
205     600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
206     600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
207     600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
208     600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
209     600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
210     600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
211     600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
212     600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
213     600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
214     600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
215     0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
216     600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
217     600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
218     600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
219     600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
220     600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
221     600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
222     600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
223     600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
224     600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
225     600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
226     600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
227     600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
228     600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
229     }
230 },
231 
232 { "Helvetica", // family name
233   "Normal", // style
234   "Helvetica", // PSName
235   718, -207, // ascend, descend
236   FAMILY_SWISS, // family style
237   RTL_TEXTENCODING_MS_1252, // charset
238   PITCH_VARIABLE, // pitch
239   WIDTH_NORMAL, // width type
240   WEIGHT_NORMAL, // weight type
241   ITALIC_NONE, // italic type
242   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
243     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
244     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
245     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
246     278, 278, 355, 556, 556, 889, 667, 191, // 32 - 39
247     333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
248     556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
249     556, 556, 278, 278, 584, 584, 584, 556, // 56 - 63
250     1015, 667, 667, 722, 722, 667, 611, 778, // 64 - 71
251     722, 278, 500, 667, 556, 833, 722, 778, // 72 - 79
252     667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
253     667, 667, 611, 278, 278, 278, 469, 556, // 88 - 95
254     333, 556, 556, 500, 556, 556, 278, 556, // 96 - 103
255     556, 222, 222, 500, 222, 833, 556, 556, // 104 - 111
256     556, 556, 333, 500, 278, 556, 500, 722, // 112 - 119
257     500, 500, 500, 334, 260, 334, 584, 0, // 120 - 127
258     556, 0, 222, 556, 333, 1000, 556, 556, // 128 - 135
259     333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
260     0, 222, 222, 333, 333, 350, 556, 1000, // 144 - 151
261     333, 1000, 500, 333, 944, 0, 500, 667, // 152 - 159
262     278, 333, 556, 556, 556, 556, 260, 556, // 160 - 167
263     333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
264     400, 584, 333, 333, 333, 556, 537, 278, // 176 - 183
265     333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
266     667, 667, 667, 667, 667, 667, 1000, 722, // 192 - 199
267     667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
268     722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
269     778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
270     556, 556, 556, 556, 556, 556, 889, 500, // 224 - 231
271     556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
272     556, 556, 556, 556, 556, 556, 556, 584, // 240 - 247
273     611, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
274     }
275 },
276 
277 { "Helvetica", // family name
278   "Italic", // style
279   "Helvetica-Oblique", // PSName
280   718, -207, // ascend, descend
281   FAMILY_SWISS, // family style
282   RTL_TEXTENCODING_MS_1252, // charset
283   PITCH_VARIABLE, // pitch
284   WIDTH_NORMAL, // width type
285   WEIGHT_NORMAL, // weight type
286   ITALIC_NORMAL, // italic type
287   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
288     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
289     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
290     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
291     278, 278, 355, 556, 556, 889, 667, 191, // 32 - 39
292     333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
293     556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
294     556, 556, 278, 278, 584, 584, 584, 556, // 56 - 63
295     1015, 667, 667, 722, 722, 667, 611, 778, // 64 - 71
296     722, 278, 500, 667, 556, 833, 722, 778, // 72 - 79
297     667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
298     667, 667, 611, 278, 278, 278, 469, 556, // 88 - 95
299     333, 556, 556, 500, 556, 556, 278, 556, // 96 - 103
300     556, 222, 222, 500, 222, 833, 556, 556, // 104 - 111
301     556, 556, 333, 500, 278, 556, 500, 722, // 112 - 119
302     500, 500, 500, 334, 260, 334, 584, 0, // 120 - 127
303     556, 0, 222, 556, 333, 1000, 556, 556, // 128 - 135
304     333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
305     0, 222, 222, 333, 333, 350, 556, 1000, // 144 - 151
306     333, 1000, 500, 333, 944, 0, 500, 667, // 152 - 159
307     278, 333, 556, 556, 556, 556, 260, 556, // 160 - 167
308     333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
309     400, 584, 333, 333, 333, 556, 537, 278, // 176 - 183
310     333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
311     667, 667, 667, 667, 667, 667, 1000, 722, // 192 - 199
312     667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
313     722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
314     778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
315     556, 556, 556, 556, 556, 556, 889, 500, // 224 - 231
316     556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
317     556, 556, 556, 556, 556, 556, 556, 584, // 240 - 247
318     611, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
319     }
320 },
321 
322 { "Helvetica", // family name
323   "Bold", // style
324   "Helvetica-Bold", // PSName
325   718, -207, // ascend, descend
326   FAMILY_SWISS, // family style
327   RTL_TEXTENCODING_MS_1252, // charset
328   PITCH_VARIABLE, // pitch
329   WIDTH_NORMAL, // width type
330   WEIGHT_BOLD, // weight type
331   ITALIC_NONE, // italic type
332   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
333     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
334     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
335     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
336     278, 333, 474, 556, 556, 889, 722, 238, // 32 - 39
337     333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
338     556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
339     556, 556, 333, 333, 584, 584, 584, 611, // 56 - 63
340     975, 722, 722, 722, 722, 667, 611, 778, // 64 - 71
341     722, 278, 556, 722, 611, 833, 722, 778, // 72 - 79
342     667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
343     667, 667, 611, 333, 278, 333, 584, 556, // 88 - 95
344     333, 556, 611, 556, 611, 556, 333, 611, // 96 - 103
345     611, 278, 278, 556, 278, 889, 611, 611, // 104 - 111
346     611, 611, 389, 556, 333, 611, 556, 778, // 112 - 119
347     556, 556, 500, 389, 280, 389, 584, 0, // 120 - 127
348     556, 0, 278, 556, 500, 1000, 556, 556, // 128 - 135
349     333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
350     0, 278, 278, 500, 500, 350, 556, 1000, // 144 - 151
351     333, 1000, 556, 333, 944, 0, 500, 667, // 152 - 159
352     278, 333, 556, 556, 556, 556, 280, 556, // 160 - 167
353     333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
354     400, 584, 333, 333, 333, 611, 556, 278, // 176 - 183
355     333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
356     722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
357     667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
358     722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
359     778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
360     556, 556, 556, 556, 556, 556, 889, 556, // 224 - 231
361     556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
362     611, 611, 611, 611, 611, 611, 611, 584, // 240 - 247
363     611, 611, 611, 611, 611, 556, 611, 556 // 248 - 255
364     }
365 },
366 
367 { "Helvetica", // family name
368   "Bold Italic", // style
369   "Helvetica-BoldOblique", // PSName
370   718, -207, // ascend, descend
371   FAMILY_SWISS, // family style
372   RTL_TEXTENCODING_MS_1252, // charset
373   PITCH_VARIABLE, // pitch
374   WIDTH_NORMAL, // width type
375   WEIGHT_BOLD, // weight type
376   ITALIC_NORMAL, // italic type
377   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
378     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
379     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
380     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
381     278, 333, 474, 556, 556, 889, 722, 238, // 32 - 39
382     333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
383     556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
384     556, 556, 333, 333, 584, 584, 584, 611, // 56 - 63
385     975, 722, 722, 722, 722, 667, 611, 778, // 64 - 71
386     722, 278, 556, 722, 611, 833, 722, 778, // 72 - 79
387     667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
388     667, 667, 611, 333, 278, 333, 584, 556, // 88 - 95
389     333, 556, 611, 556, 611, 556, 333, 611, // 96 - 103
390     611, 278, 278, 556, 278, 889, 611, 611, // 104 - 111
391     611, 611, 389, 556, 333, 611, 556, 778, // 112 - 119
392     556, 556, 500, 389, 280, 389, 584, 0, // 120 - 127
393     556, 0, 278, 556, 500, 1000, 556, 556, // 128 - 135
394     333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
395     0, 278, 278, 500, 500, 350, 556, 1000, // 144 - 151
396     333, 1000, 556, 333, 944, 0, 500, 667, // 152 - 159
397     278, 333, 556, 556, 556, 556, 280, 556, // 160 - 167
398     333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
399     400, 584, 333, 333, 333, 611, 556, 278, // 176 - 183
400     333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
401     722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
402     667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
403     722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
404     778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
405     556, 556, 556, 556, 556, 556, 889, 556, // 224 - 231
406     556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
407     611, 611, 611, 611, 611, 611, 611, 584, // 240 - 247
408     611, 611, 611, 611, 611, 556, 611, 556 // 248 - 255
409     }
410 },
411 
412 { "Times", // family name
413   "Normal", // style
414   "Times-Roman", // PSName
415   683, -217, // ascend, descend
416   FAMILY_ROMAN, // family style
417   RTL_TEXTENCODING_MS_1252, // charset
418   PITCH_VARIABLE, // pitch
419   WIDTH_NORMAL, // width type
420   WEIGHT_NORMAL, // weight type
421   ITALIC_NONE, // italic type
422   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
423     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
424     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
425     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
426     250, 333, 408, 500, 500, 833, 778, 180, // 32 - 39
427     333, 333, 500, 564, 250, 333, 250, 278, // 40 - 47
428     500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
429     500, 500, 278, 278, 564, 564, 564, 444, // 56 - 63
430     921, 722, 667, 667, 722, 611, 556, 722, // 64 - 71
431     722, 333, 389, 722, 611, 889, 722, 722, // 72 - 79
432     556, 722, 667, 556, 611, 722, 722, 944, // 80 - 87
433     722, 722, 611, 333, 278, 333, 469, 500, // 88 - 95
434     333, 444, 500, 444, 500, 444, 333, 500, // 96 - 103
435     500, 278, 278, 500, 278, 778, 500, 500, // 104 - 111
436     500, 500, 333, 389, 278, 500, 500, 722, // 112 - 119
437     500, 500, 444, 480, 200, 480, 541, 0, // 120 - 127
438     500, 0, 333, 500, 444, 1000, 500, 500, // 128 - 135
439     333, 1000, 556, 333, 889, 0, 444, 0, // 136 - 143
440     0, 333, 333, 444, 444, 350, 500, 1000, // 144 - 151
441     333, 980, 389, 333, 722, 0, 444, 722, // 152 - 159
442     250, 333, 500, 500, 500, 500, 200, 500, // 160 - 167
443     333, 760, 276, 500, 564, 333, 760, 333, // 168 - 175
444     400, 564, 300, 300, 333, 500, 453, 250, // 176 - 183
445     333, 300, 310, 500, 750, 750, 750, 444, // 184 - 191
446     722, 722, 722, 722, 722, 722, 889, 667, // 192 - 199
447     611, 611, 611, 611, 333, 333, 333, 333, // 200 - 207
448     722, 722, 722, 722, 722, 722, 722, 564, // 208 - 215
449     722, 722, 722, 722, 722, 722, 556, 500, // 216 - 223
450     444, 444, 444, 444, 444, 444, 667, 444, // 224 - 231
451     444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
452     500, 500, 500, 500, 500, 500, 500, 564, // 240 - 247
453     500, 500, 500, 500, 500, 500, 500, 500 // 248 - 255
454     }
455 },
456 
457 { "Times", // family name
458   "Italic", // style
459   "Times-Italic", // PSName
460   683, -217, // ascend, descend
461   FAMILY_ROMAN, // family style
462   RTL_TEXTENCODING_MS_1252, // charset
463   PITCH_VARIABLE, // pitch
464   WIDTH_NORMAL, // width type
465   WEIGHT_NORMAL, // weight type
466   ITALIC_NORMAL, // italic type
467   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
468     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
469     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
470     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
471     250, 333, 420, 500, 500, 833, 778, 214, // 32 - 39
472     333, 333, 500, 675, 250, 333, 250, 278, // 40 - 47
473     500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
474     500, 500, 333, 333, 675, 675, 675, 500, // 56 - 63
475     920, 611, 611, 667, 722, 611, 611, 722, // 64 - 71
476     722, 333, 444, 667, 556, 833, 667, 722, // 72 - 79
477     611, 722, 611, 500, 556, 722, 611, 833, // 80 - 87
478     611, 556, 556, 389, 278, 389, 422, 500, // 88 - 95
479     333, 500, 500, 444, 500, 444, 278, 500, // 96 - 103
480     500, 278, 278, 444, 278, 722, 500, 500, // 104 - 111
481     500, 500, 389, 389, 278, 500, 444, 667, // 112 - 119
482     444, 444, 389, 400, 275, 400, 541, 0, // 120 - 127
483     500, 0, 333, 500, 556, 889, 500, 500, // 128 - 135
484     333, 1000, 500, 333, 944, 0, 389, 0, // 136 - 143
485     0, 333, 333, 556, 556, 350, 500, 889, // 144 - 151
486     333, 980, 389, 333, 667, 0, 389, 556, // 152 - 159
487     250, 389, 500, 500, 500, 500, 275, 500, // 160 - 167
488     333, 760, 276, 500, 675, 333, 760, 333, // 168 - 175
489     400, 675, 300, 300, 333, 500, 523, 250, // 176 - 183
490     333, 300, 310, 500, 750, 750, 750, 500, // 184 - 191
491     611, 611, 611, 611, 611, 611, 889, 667, // 192 - 199
492     611, 611, 611, 611, 333, 333, 333, 333, // 200 - 207
493     722, 667, 722, 722, 722, 722, 722, 675, // 208 - 215
494     722, 722, 722, 722, 722, 556, 611, 500, // 216 - 223
495     500, 500, 500, 500, 500, 500, 667, 444, // 224 - 231
496     444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
497     500, 500, 500, 500, 500, 500, 500, 675, // 240 - 247
498     500, 500, 500, 500, 500, 444, 500, 444 // 248 - 255
499     }
500 },
501 
502 { "Times", // family name
503   "Bold", // style
504   "Times-Bold", // PSName
505   683, -217, // ascend, descend
506   FAMILY_ROMAN, // family style
507   RTL_TEXTENCODING_MS_1252, // charset
508   PITCH_VARIABLE, // pitch
509   WIDTH_NORMAL, // width type
510   WEIGHT_BOLD, // weight type
511   ITALIC_NONE, // italic type
512   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
513     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
514     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
515     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
516     250, 333, 555, 500, 500, 1000, 833, 278, // 32 - 39
517     333, 333, 500, 570, 250, 333, 250, 278, // 40 - 47
518     500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
519     500, 500, 333, 333, 570, 570, 570, 500, // 56 - 63
520     930, 722, 667, 722, 722, 667, 611, 778, // 64 - 71
521     778, 389, 500, 778, 667, 944, 722, 778, // 72 - 79
522     611, 778, 722, 556, 667, 722, 722, 1000, // 80 - 87
523     722, 722, 667, 333, 278, 333, 581, 500, // 88 - 95
524     333, 500, 556, 444, 556, 444, 333, 500, // 96 - 103
525     556, 278, 333, 556, 278, 833, 556, 500, // 104 - 111
526     556, 556, 444, 389, 333, 556, 500, 722, // 112 - 119
527     500, 500, 444, 394, 220, 394, 520, 0, // 120 - 127
528     500, 0, 333, 500, 500, 1000, 500, 500, // 128 - 135
529     333, 1000, 556, 333, 1000, 0, 444, 0, // 136 - 143
530     0, 333, 333, 500, 500, 350, 500, 1000, // 144 - 151
531     333, 1000, 389, 333, 722, 0, 444, 722, // 152 - 159
532     250, 333, 500, 500, 500, 500, 220, 500, // 160 - 167
533     333, 747, 300, 500, 570, 333, 747, 333, // 168 - 175
534     400, 570, 300, 300, 333, 556, 540, 250, // 176 - 183
535     333, 300, 330, 500, 750, 750, 750, 500, // 184 - 191
536     722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
537     667, 667, 667, 667, 389, 389, 389, 389, // 200 - 207
538     722, 722, 778, 778, 778, 778, 778, 570, // 208 - 215
539     778, 722, 722, 722, 722, 722, 611, 556, // 216 - 223
540     500, 500, 500, 500, 500, 500, 722, 444, // 224 - 231
541     444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
542     500, 556, 500, 500, 500, 500, 500, 570, // 240 - 247
543     500, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
544     }
545 },
546 
547 { "Times", // family name
548   "Bold Italic", // style
549   "Times-BoldItalic", // PSName
550   683, -217, // ascend, descend
551   FAMILY_ROMAN, // family style
552   RTL_TEXTENCODING_MS_1252, // charset
553   PITCH_VARIABLE, // pitch
554   WIDTH_NORMAL, // width type
555   WEIGHT_BOLD, // weight type
556   ITALIC_NORMAL, // italic type
557   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
558     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
559     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
560     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
561     250, 389, 555, 500, 500, 833, 778, 278, // 32 - 39
562     333, 333, 500, 570, 250, 333, 250, 278, // 40 - 47
563     500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
564     500, 500, 333, 333, 570, 570, 570, 500, // 56 - 63
565     832, 667, 667, 667, 722, 667, 667, 722, // 64 - 71
566     778, 389, 500, 667, 611, 889, 722, 722, // 72 - 79
567     611, 722, 667, 556, 611, 722, 667, 889, // 80 - 87
568     667, 611, 611, 333, 278, 333, 570, 500, // 88 - 95
569     333, 500, 500, 444, 500, 444, 333, 500, // 96 - 103
570     556, 278, 278, 500, 278, 778, 556, 500, // 104 - 111
571     500, 500, 389, 389, 278, 556, 444, 667, // 112 - 119
572     500, 444, 389, 348, 220, 348, 570, 0, // 120 - 127
573     500, 0, 333, 500, 500, 1000, 500, 500, // 128 - 135
574     333, 1000, 556, 333, 944, 0, 389, 0, // 136 - 143
575     0, 333, 333, 500, 500, 350, 500, 1000, // 144 - 151
576     333, 1000, 389, 333, 722, 0, 389, 611, // 152 - 159
577     250, 389, 500, 500, 500, 500, 220, 500, // 160 - 167
578     333, 747, 266, 500, 606, 333, 747, 333, // 168 - 175
579     400, 570, 300, 300, 333, 576, 500, 250, // 176 - 183
580     333, 300, 300, 500, 750, 750, 750, 500, // 184 - 191
581     667, 667, 667, 667, 667, 667, 944, 667, // 192 - 199
582     667, 667, 667, 667, 389, 389, 389, 389, // 200 - 207
583     722, 722, 722, 722, 722, 722, 722, 570, // 208 - 215
584     722, 722, 722, 722, 722, 611, 611, 500, // 216 - 223
585     500, 500, 500, 500, 500, 500, 722, 444, // 224 - 231
586     444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
587     500, 556, 500, 500, 500, 500, 500, 570, // 240 - 247
588     500, 556, 556, 556, 556, 444, 500, 444 // 248 - 255
589     }
590 },
591 
592 // The font name "Symbol" is too generic and causes plenty of trouble.
593 // To ensure WYSIWIG the PDF-Base14 variant gets a not-confusable name
594 { "PDF_Base14_Symbol", // family name
595   "Normal", // style
596   "Symbol", // PSName
597   1010, -293, // ascend, descend
598   FAMILY_DONTKNOW, // family style
599   RTL_TEXTENCODING_ADOBE_SYMBOL, // charset
600   PITCH_VARIABLE, // pitch
601   WIDTH_NORMAL, // width type
602   WEIGHT_NORMAL, // weight type
603   ITALIC_NONE, // italic type
604   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
605     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
606     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
607     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
608     250, 333, 713, 500, 549, 833, 778, 439, // 32 - 39
609     333, 333, 500, 549, 250, 549, 250, 278, // 40 - 47
610     500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
611     500, 500, 278, 278, 549, 549, 549, 444, // 56 - 63
612     549, 722, 667, 722, 612, 611, 763, 603, // 64 - 71
613     722, 333, 631, 722, 686, 889, 722, 722, // 72 - 79
614     768, 741, 556, 592, 611, 690, 439, 768, // 80 - 87
615     645, 795, 611, 333, 863, 333, 658, 500, // 88 - 95
616     500, 631, 549, 549, 494, 439, 521, 411, // 96 - 103
617     603, 329, 603, 549, 549, 576, 521, 549, // 104 - 111
618     549, 521, 549, 603, 439, 576, 713, 686, // 112 - 119
619     493, 686, 494, 480, 200, 480, 549, 0, // 120 - 127
620     0, 0, 0, 0, 0, 0, 0, 0, // 128 - 135
621     0, 0, 0, 0, 0, 0, 0, 0, // 136 - 143
622     0, 0, 0, 0, 0, 0, 0, 0, // 144 - 151
623     0, 0, 0, 0, 0, 0, 0, 0, // 152 - 159
624     750, 620, 247, 549, 167, 713, 500, 753, // 160 - 167
625     753, 753, 753, 1042, 987, 603, 987, 603, // 168 - 175
626     400, 549, 411, 549, 549, 713, 494, 460, // 176 - 183
627     549, 549, 549, 549, 1000, 603, 1000, 658, // 184 - 191
628     823, 686, 795, 987, 768, 768, 823, 768, // 192 - 199
629     768, 713, 713, 713, 713, 713, 713, 713, // 200 - 207
630     768, 713, 790, 790, 890, 823, 549, 250, // 208 - 215
631     713, 603, 603, 1042, 987, 603, 987, 603, // 216 - 223
632     494, 329, 790, 790, 786, 713, 384, 384, // 224 - 231
633     384, 384, 384, 384, 494, 494, 494, 494, // 232 - 239
634     0, 329, 274, 686, 686, 686, 384, 384, // 240 - 247
635     384, 384, 384, 384, 494, 494, 494, 0 // 248 - 255
636     }
637 },
638 
639 { "ZapfDingbats", // family name
640   "Normal", // style
641   "ZapfDingbats", // PSName
642   820, -143, // ascend, descend
643   FAMILY_DONTKNOW, // family style
644   RTL_TEXTENCODING_ADOBE_DINGBATS, // charset
645   PITCH_VARIABLE, // pitch
646   WIDTH_NORMAL, // width type
647   WEIGHT_NORMAL, // weight type
648   ITALIC_NONE, // italic type
649   { 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
650     0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
651     0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
652     0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
653     278, 974, 961, 974, 980, 719, 789, 790, // 32 - 39
654     791, 690, 960, 939, 549, 855, 911, 933, // 40 - 47
655     911, 945, 974, 755, 846, 762, 761, 571, // 48 - 55
656     677, 763, 760, 759, 754, 494, 552, 537, // 56 - 63
657     577, 692, 786, 788, 788, 790, 793, 794, // 64 - 71
658     816, 823, 789, 841, 823, 833, 816, 831, // 72 - 79
659     923, 744, 723, 749, 790, 792, 695, 776, // 80 - 87
660     768, 792, 759, 707, 708, 682, 701, 826, // 88 - 95
661     815, 789, 789, 707, 687, 696, 689, 786, // 96 - 103
662     787, 713, 791, 785, 791, 873, 761, 762, // 104 - 111
663     762, 759, 759, 892, 892, 788, 784, 438, // 112 - 119
664     138, 277, 415, 392, 392, 668, 668, 0, // 120 - 127
665     390, 390, 317, 317, 276, 276, 509, 509, // 128 - 135
666     410, 410, 234, 234, 334, 334, 0, 0, // 136 - 143
667     0, 0, 0, 0, 0, 0, 0, 0, // 144 - 151
668     0, 0, 0, 0, 0, 0, 0, 0, // 152 - 159
669     0, 732, 544, 544, 910, 667, 760, 760, // 160 - 167
670     776, 595, 694, 626, 788, 788, 788, 788, // 168 - 175
671     788, 788, 788, 788, 788, 788, 788, 788, // 176 - 183
672     788, 788, 788, 788, 788, 788, 788, 788, // 184 - 191
673     788, 788, 788, 788, 788, 788, 788, 788, // 192 - 199
674     788, 788, 788, 788, 788, 788, 788, 788, // 200 - 207
675     788, 788, 788, 788, 894, 838, 1016, 458, // 208 - 215
676     748, 924, 748, 918, 927, 928, 928, 834, // 216 - 223
677     873, 828, 924, 924, 917, 930, 931, 463, // 224 - 231
678     883, 836, 836, 867, 867, 696, 696, 874, // 232 - 239
679     0, 874, 760, 946, 771, 865, 771, 888, // 240 - 247
680     967, 888, 831, 873, 927, 970, 918, 0 // 248 - 255
681     }
682 }
683 
684 };
685 
686