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