1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #include "pdfbuildin_fonts.hxx"
22 #include <rtl/strbuf.hxx>
26 OString
BuildinFont::getNameObject() const
28 OStringBuffer
aBuf(16);
30 const char* pRun
= m_pPSName
;
32 unsigned int nCopied
= 0;
35 if (*pRun
>= 'A' && *pRun
<= 'Z')
41 return aBuf
.makeStringAndClear();
44 const FontCharMapRef
& BuildinFont::GetFontCharMap() const
46 assert(false && "pdf::BuildinFont doesn't provide correct char maps!");
47 if (m_xFontCharMap
.is())
48 return m_xFontCharMap
;
50 m_xFontCharMap
= FontCharMap::GetDefaultMap(m_eCharSet
!= RTL_TEXTENCODING_MS_1252
);
51 return m_xFontCharMap
;
54 FontAttributes
BuildinFont::GetFontAttributes() const
57 aDFA
.SetFamilyName(OUString::createFromAscii(m_pName
));
58 aDFA
.SetStyleName(OUString::createFromAscii(m_pStyleName
));
59 aDFA
.SetFamilyType(m_eFamily
);
60 aDFA
.SetSymbolFlag(m_eCharSet
!= RTL_TEXTENCODING_MS_1252
);
61 aDFA
.SetPitch(m_ePitch
);
62 aDFA
.SetWeight(m_eWeight
);
63 aDFA
.SetItalic(m_eItalic
);
64 aDFA
.SetWidthType(m_eWidthType
);
65 aDFA
.SetQuality(50000);
69 const BuildinFont
BuildinFontFace::m_aBuildinFonts
[14]
70 = { { "Courier", // family name
74 -157, // ascend, descend
75 FAMILY_MODERN
, // family style
76 RTL_TEXTENCODING_MS_1252
, // charset
78 WIDTH_NORMAL
, // width type
79 WEIGHT_NORMAL
, // weight type
80 ITALIC_NONE
, // italic type
82 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
83 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
84 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
85 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
86 600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
87 600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
88 600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
89 600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
90 600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
91 600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
92 600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
93 600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
94 600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
95 600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
96 600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
97 600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
98 600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
99 600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
100 0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
101 600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
102 600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
103 600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
104 600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
105 600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
106 600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
107 600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
108 600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
109 600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
110 600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
111 600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
112 600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
113 600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
117 { "Courier", // family name
119 "Courier-Oblique", // PSName
121 -157, // ascend, descend
122 FAMILY_MODERN
, // family style
123 RTL_TEXTENCODING_MS_1252
, // charset
124 PITCH_FIXED
, // pitch
125 WIDTH_NORMAL
, // width type
126 WEIGHT_NORMAL
, // weight type
127 ITALIC_NORMAL
, // italic type
129 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
130 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
131 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
132 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
133 600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
134 600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
135 600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
136 600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
137 600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
138 600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
139 600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
140 600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
141 600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
142 600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
143 600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
144 600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
145 600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
146 600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
147 0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
148 600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
149 600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
150 600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
151 600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
152 600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
153 600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
154 600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
155 600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
156 600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
157 600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
158 600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
159 600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
160 600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
164 { "Courier", // family name
166 "Courier-Bold", // PSName
168 -157, // ascend, descend
169 FAMILY_MODERN
, // family style
170 RTL_TEXTENCODING_MS_1252
, // charset
171 PITCH_FIXED
, // pitch
172 WIDTH_NORMAL
, // width type
173 WEIGHT_BOLD
, // weight type
174 ITALIC_NONE
, // italic type
176 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
177 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
178 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
179 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
180 600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
181 600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
182 600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
183 600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
184 600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
185 600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
186 600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
187 600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
188 600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
189 600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
190 600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
191 600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
192 600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
193 600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
194 0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
195 600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
196 600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
197 600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
198 600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
199 600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
200 600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
201 600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
202 600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
203 600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
204 600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
205 600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
206 600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
207 600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
211 { "Courier", // family name
212 "Bold Italic", // style
213 "Courier-BoldOblique", // PSName
215 -157, // ascend, descend
216 FAMILY_MODERN
, // family style
217 RTL_TEXTENCODING_MS_1252
, // charset
218 PITCH_FIXED
, // pitch
219 WIDTH_NORMAL
, // width type
220 WEIGHT_BOLD
, // weight type
221 ITALIC_NORMAL
, // italic type
223 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
224 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
225 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
226 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
227 600, 600, 600, 600, 600, 600, 600, 600, // 32 - 39
228 600, 600, 600, 600, 600, 600, 600, 600, // 40 - 47
229 600, 600, 600, 600, 600, 600, 600, 600, // 48 - 55
230 600, 600, 600, 600, 600, 600, 600, 600, // 56 - 63
231 600, 600, 600, 600, 600, 600, 600, 600, // 64 - 71
232 600, 600, 600, 600, 600, 600, 600, 600, // 72 - 79
233 600, 600, 600, 600, 600, 600, 600, 600, // 80 - 87
234 600, 600, 600, 600, 600, 600, 600, 600, // 88 - 95
235 600, 600, 600, 600, 600, 600, 600, 600, // 96 - 103
236 600, 600, 600, 600, 600, 600, 600, 600, // 104 - 111
237 600, 600, 600, 600, 600, 600, 600, 600, // 112 - 119
238 600, 600, 600, 600, 600, 600, 600, 0, // 120 - 127
239 600, 0, 600, 600, 600, 600, 600, 600, // 128 - 135
240 600, 600, 600, 600, 600, 0, 600, 0, // 136 - 143
241 0, 600, 600, 600, 600, 600, 600, 600, // 144 - 151
242 600, 600, 600, 600, 600, 0, 600, 600, // 152 - 159
243 600, 600, 600, 600, 600, 600, 600, 600, // 160 - 167
244 600, 600, 600, 600, 600, 600, 600, 600, // 168 - 175
245 600, 600, 600, 600, 600, 600, 600, 600, // 176 - 183
246 600, 600, 600, 600, 600, 600, 600, 600, // 184 - 191
247 600, 600, 600, 600, 600, 600, 600, 600, // 192 - 199
248 600, 600, 600, 600, 600, 600, 600, 600, // 200 - 207
249 600, 600, 600, 600, 600, 600, 600, 600, // 208 - 215
250 600, 600, 600, 600, 600, 600, 600, 600, // 216 - 223
251 600, 600, 600, 600, 600, 600, 600, 600, // 224 - 231
252 600, 600, 600, 600, 600, 600, 600, 600, // 232 - 239
253 600, 600, 600, 600, 600, 600, 600, 600, // 240 - 247
254 600, 600, 600, 600, 600, 600, 600, 600 // 248 - 255
258 { "Helvetica", // family name
260 "Helvetica", // PSName
262 -207, // ascend, descend
263 FAMILY_SWISS
, // family style
264 RTL_TEXTENCODING_MS_1252
, // charset
265 PITCH_VARIABLE
, // pitch
266 WIDTH_NORMAL
, // width type
267 WEIGHT_NORMAL
, // weight type
268 ITALIC_NONE
, // italic type
270 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
271 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
272 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
273 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
274 278, 278, 355, 556, 556, 889, 667, 191, // 32 - 39
275 333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
276 556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
277 556, 556, 278, 278, 584, 584, 584, 556, // 56 - 63
278 1015, 667, 667, 722, 722, 667, 611, 778, // 64 - 71
279 722, 278, 500, 667, 556, 833, 722, 778, // 72 - 79
280 667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
281 667, 667, 611, 278, 278, 278, 469, 556, // 88 - 95
282 333, 556, 556, 500, 556, 556, 278, 556, // 96 - 103
283 556, 222, 222, 500, 222, 833, 556, 556, // 104 - 111
284 556, 556, 333, 500, 278, 556, 500, 722, // 112 - 119
285 500, 500, 500, 334, 260, 334, 584, 0, // 120 - 127
286 556, 0, 222, 556, 333, 1000, 556, 556, // 128 - 135
287 333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
288 0, 222, 222, 333, 333, 350, 556, 1000, // 144 - 151
289 333, 1000, 500, 333, 944, 0, 500, 667, // 152 - 159
290 278, 333, 556, 556, 556, 556, 260, 556, // 160 - 167
291 333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
292 400, 584, 333, 333, 333, 556, 537, 278, // 176 - 183
293 333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
294 667, 667, 667, 667, 667, 667, 1000, 722, // 192 - 199
295 667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
296 722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
297 778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
298 556, 556, 556, 556, 556, 556, 889, 500, // 224 - 231
299 556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
300 556, 556, 556, 556, 556, 556, 556, 584, // 240 - 247
301 611, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
305 { "Helvetica", // family name
307 "Helvetica-Oblique", // PSName
309 -207, // ascend, descend
310 FAMILY_SWISS
, // family style
311 RTL_TEXTENCODING_MS_1252
, // charset
312 PITCH_VARIABLE
, // pitch
313 WIDTH_NORMAL
, // width type
314 WEIGHT_NORMAL
, // weight type
315 ITALIC_NORMAL
, // italic type
317 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
318 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
319 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
320 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
321 278, 278, 355, 556, 556, 889, 667, 191, // 32 - 39
322 333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
323 556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
324 556, 556, 278, 278, 584, 584, 584, 556, // 56 - 63
325 1015, 667, 667, 722, 722, 667, 611, 778, // 64 - 71
326 722, 278, 500, 667, 556, 833, 722, 778, // 72 - 79
327 667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
328 667, 667, 611, 278, 278, 278, 469, 556, // 88 - 95
329 333, 556, 556, 500, 556, 556, 278, 556, // 96 - 103
330 556, 222, 222, 500, 222, 833, 556, 556, // 104 - 111
331 556, 556, 333, 500, 278, 556, 500, 722, // 112 - 119
332 500, 500, 500, 334, 260, 334, 584, 0, // 120 - 127
333 556, 0, 222, 556, 333, 1000, 556, 556, // 128 - 135
334 333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
335 0, 222, 222, 333, 333, 350, 556, 1000, // 144 - 151
336 333, 1000, 500, 333, 944, 0, 500, 667, // 152 - 159
337 278, 333, 556, 556, 556, 556, 260, 556, // 160 - 167
338 333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
339 400, 584, 333, 333, 333, 556, 537, 278, // 176 - 183
340 333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
341 667, 667, 667, 667, 667, 667, 1000, 722, // 192 - 199
342 667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
343 722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
344 778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
345 556, 556, 556, 556, 556, 556, 889, 500, // 224 - 231
346 556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
347 556, 556, 556, 556, 556, 556, 556, 584, // 240 - 247
348 611, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
352 { "Helvetica", // family name
354 "Helvetica-Bold", // PSName
356 -207, // ascend, descend
357 FAMILY_SWISS
, // family style
358 RTL_TEXTENCODING_MS_1252
, // charset
359 PITCH_VARIABLE
, // pitch
360 WIDTH_NORMAL
, // width type
361 WEIGHT_BOLD
, // weight type
362 ITALIC_NONE
, // italic type
364 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
365 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
366 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
367 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
368 278, 333, 474, 556, 556, 889, 722, 238, // 32 - 39
369 333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
370 556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
371 556, 556, 333, 333, 584, 584, 584, 611, // 56 - 63
372 975, 722, 722, 722, 722, 667, 611, 778, // 64 - 71
373 722, 278, 556, 722, 611, 833, 722, 778, // 72 - 79
374 667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
375 667, 667, 611, 333, 278, 333, 584, 556, // 88 - 95
376 333, 556, 611, 556, 611, 556, 333, 611, // 96 - 103
377 611, 278, 278, 556, 278, 889, 611, 611, // 104 - 111
378 611, 611, 389, 556, 333, 611, 556, 778, // 112 - 119
379 556, 556, 500, 389, 280, 389, 584, 0, // 120 - 127
380 556, 0, 278, 556, 500, 1000, 556, 556, // 128 - 135
381 333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
382 0, 278, 278, 500, 500, 350, 556, 1000, // 144 - 151
383 333, 1000, 556, 333, 944, 0, 500, 667, // 152 - 159
384 278, 333, 556, 556, 556, 556, 280, 556, // 160 - 167
385 333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
386 400, 584, 333, 333, 333, 611, 556, 278, // 176 - 183
387 333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
388 722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
389 667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
390 722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
391 778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
392 556, 556, 556, 556, 556, 556, 889, 556, // 224 - 231
393 556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
394 611, 611, 611, 611, 611, 611, 611, 584, // 240 - 247
395 611, 611, 611, 611, 611, 556, 611, 556 // 248 - 255
399 { "Helvetica", // family name
400 "Bold Italic", // style
401 "Helvetica-BoldOblique", // PSName
403 -207, // ascend, descend
404 FAMILY_SWISS
, // family style
405 RTL_TEXTENCODING_MS_1252
, // charset
406 PITCH_VARIABLE
, // pitch
407 WIDTH_NORMAL
, // width type
408 WEIGHT_BOLD
, // weight type
409 ITALIC_NORMAL
, // italic type
411 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
412 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
413 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
414 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
415 278, 333, 474, 556, 556, 889, 722, 238, // 32 - 39
416 333, 333, 389, 584, 278, 333, 278, 278, // 40 - 47
417 556, 556, 556, 556, 556, 556, 556, 556, // 48 - 55
418 556, 556, 333, 333, 584, 584, 584, 611, // 56 - 63
419 975, 722, 722, 722, 722, 667, 611, 778, // 64 - 71
420 722, 278, 556, 722, 611, 833, 722, 778, // 72 - 79
421 667, 778, 722, 667, 611, 722, 667, 944, // 80 - 87
422 667, 667, 611, 333, 278, 333, 584, 556, // 88 - 95
423 333, 556, 611, 556, 611, 556, 333, 611, // 96 - 103
424 611, 278, 278, 556, 278, 889, 611, 611, // 104 - 111
425 611, 611, 389, 556, 333, 611, 556, 778, // 112 - 119
426 556, 556, 500, 389, 280, 389, 584, 0, // 120 - 127
427 556, 0, 278, 556, 500, 1000, 556, 556, // 128 - 135
428 333, 1000, 667, 333, 1000, 0, 500, 0, // 136 - 143
429 0, 278, 278, 500, 500, 350, 556, 1000, // 144 - 151
430 333, 1000, 556, 333, 944, 0, 500, 667, // 152 - 159
431 278, 333, 556, 556, 556, 556, 280, 556, // 160 - 167
432 333, 737, 370, 556, 584, 333, 737, 333, // 168 - 175
433 400, 584, 333, 333, 333, 611, 556, 278, // 176 - 183
434 333, 333, 365, 556, 834, 834, 834, 611, // 184 - 191
435 722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
436 667, 667, 667, 667, 278, 278, 278, 278, // 200 - 207
437 722, 722, 778, 778, 778, 778, 778, 584, // 208 - 215
438 778, 722, 722, 722, 722, 667, 667, 611, // 216 - 223
439 556, 556, 556, 556, 556, 556, 889, 556, // 224 - 231
440 556, 556, 556, 556, 278, 278, 278, 278, // 232 - 239
441 611, 611, 611, 611, 611, 611, 611, 584, // 240 - 247
442 611, 611, 611, 611, 611, 556, 611, 556 // 248 - 255
446 { "Times", // family name
448 "Times-Roman", // PSName
450 -217, // ascend, descend
451 FAMILY_ROMAN
, // family style
452 RTL_TEXTENCODING_MS_1252
, // charset
453 PITCH_VARIABLE
, // pitch
454 WIDTH_NORMAL
, // width type
455 WEIGHT_NORMAL
, // weight type
456 ITALIC_NONE
, // italic type
458 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
459 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
460 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
461 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
462 250, 333, 408, 500, 500, 833, 778, 180, // 32 - 39
463 333, 333, 500, 564, 250, 333, 250, 278, // 40 - 47
464 500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
465 500, 500, 278, 278, 564, 564, 564, 444, // 56 - 63
466 921, 722, 667, 667, 722, 611, 556, 722, // 64 - 71
467 722, 333, 389, 722, 611, 889, 722, 722, // 72 - 79
468 556, 722, 667, 556, 611, 722, 722, 944, // 80 - 87
469 722, 722, 611, 333, 278, 333, 469, 500, // 88 - 95
470 333, 444, 500, 444, 500, 444, 333, 500, // 96 - 103
471 500, 278, 278, 500, 278, 778, 500, 500, // 104 - 111
472 500, 500, 333, 389, 278, 500, 500, 722, // 112 - 119
473 500, 500, 444, 480, 200, 480, 541, 0, // 120 - 127
474 500, 0, 333, 500, 444, 1000, 500, 500, // 128 - 135
475 333, 1000, 556, 333, 889, 0, 444, 0, // 136 - 143
476 0, 333, 333, 444, 444, 350, 500, 1000, // 144 - 151
477 333, 980, 389, 333, 722, 0, 444, 722, // 152 - 159
478 250, 333, 500, 500, 500, 500, 200, 500, // 160 - 167
479 333, 760, 276, 500, 564, 333, 760, 333, // 168 - 175
480 400, 564, 300, 300, 333, 500, 453, 250, // 176 - 183
481 333, 300, 310, 500, 750, 750, 750, 444, // 184 - 191
482 722, 722, 722, 722, 722, 722, 889, 667, // 192 - 199
483 611, 611, 611, 611, 333, 333, 333, 333, // 200 - 207
484 722, 722, 722, 722, 722, 722, 722, 564, // 208 - 215
485 722, 722, 722, 722, 722, 722, 556, 500, // 216 - 223
486 444, 444, 444, 444, 444, 444, 667, 444, // 224 - 231
487 444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
488 500, 500, 500, 500, 500, 500, 500, 564, // 240 - 247
489 500, 500, 500, 500, 500, 500, 500, 500 // 248 - 255
493 { "Times", // family name
495 "Times-Italic", // PSName
497 -217, // ascend, descend
498 FAMILY_ROMAN
, // family style
499 RTL_TEXTENCODING_MS_1252
, // charset
500 PITCH_VARIABLE
, // pitch
501 WIDTH_NORMAL
, // width type
502 WEIGHT_NORMAL
, // weight type
503 ITALIC_NORMAL
, // italic type
505 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
506 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
507 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
508 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
509 250, 333, 420, 500, 500, 833, 778, 214, // 32 - 39
510 333, 333, 500, 675, 250, 333, 250, 278, // 40 - 47
511 500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
512 500, 500, 333, 333, 675, 675, 675, 500, // 56 - 63
513 920, 611, 611, 667, 722, 611, 611, 722, // 64 - 71
514 722, 333, 444, 667, 556, 833, 667, 722, // 72 - 79
515 611, 722, 611, 500, 556, 722, 611, 833, // 80 - 87
516 611, 556, 556, 389, 278, 389, 422, 500, // 88 - 95
517 333, 500, 500, 444, 500, 444, 278, 500, // 96 - 103
518 500, 278, 278, 444, 278, 722, 500, 500, // 104 - 111
519 500, 500, 389, 389, 278, 500, 444, 667, // 112 - 119
520 444, 444, 389, 400, 275, 400, 541, 0, // 120 - 127
521 500, 0, 333, 500, 556, 889, 500, 500, // 128 - 135
522 333, 1000, 500, 333, 944, 0, 389, 0, // 136 - 143
523 0, 333, 333, 556, 556, 350, 500, 889, // 144 - 151
524 333, 980, 389, 333, 667, 0, 389, 556, // 152 - 159
525 250, 389, 500, 500, 500, 500, 275, 500, // 160 - 167
526 333, 760, 276, 500, 675, 333, 760, 333, // 168 - 175
527 400, 675, 300, 300, 333, 500, 523, 250, // 176 - 183
528 333, 300, 310, 500, 750, 750, 750, 500, // 184 - 191
529 611, 611, 611, 611, 611, 611, 889, 667, // 192 - 199
530 611, 611, 611, 611, 333, 333, 333, 333, // 200 - 207
531 722, 667, 722, 722, 722, 722, 722, 675, // 208 - 215
532 722, 722, 722, 722, 722, 556, 611, 500, // 216 - 223
533 500, 500, 500, 500, 500, 500, 667, 444, // 224 - 231
534 444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
535 500, 500, 500, 500, 500, 500, 500, 675, // 240 - 247
536 500, 500, 500, 500, 500, 444, 500, 444 // 248 - 255
540 { "Times", // family name
542 "Times-Bold", // PSName
544 -217, // ascend, descend
545 FAMILY_ROMAN
, // family style
546 RTL_TEXTENCODING_MS_1252
, // charset
547 PITCH_VARIABLE
, // pitch
548 WIDTH_NORMAL
, // width type
549 WEIGHT_BOLD
, // weight type
550 ITALIC_NONE
, // italic type
552 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
553 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
554 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
555 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
556 250, 333, 555, 500, 500, 1000, 833, 278, // 32 - 39
557 333, 333, 500, 570, 250, 333, 250, 278, // 40 - 47
558 500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
559 500, 500, 333, 333, 570, 570, 570, 500, // 56 - 63
560 930, 722, 667, 722, 722, 667, 611, 778, // 64 - 71
561 778, 389, 500, 778, 667, 944, 722, 778, // 72 - 79
562 611, 778, 722, 556, 667, 722, 722, 1000, // 80 - 87
563 722, 722, 667, 333, 278, 333, 581, 500, // 88 - 95
564 333, 500, 556, 444, 556, 444, 333, 500, // 96 - 103
565 556, 278, 333, 556, 278, 833, 556, 500, // 104 - 111
566 556, 556, 444, 389, 333, 556, 500, 722, // 112 - 119
567 500, 500, 444, 394, 220, 394, 520, 0, // 120 - 127
568 500, 0, 333, 500, 500, 1000, 500, 500, // 128 - 135
569 333, 1000, 556, 333, 1000, 0, 444, 0, // 136 - 143
570 0, 333, 333, 500, 500, 350, 500, 1000, // 144 - 151
571 333, 1000, 389, 333, 722, 0, 444, 722, // 152 - 159
572 250, 333, 500, 500, 500, 500, 220, 500, // 160 - 167
573 333, 747, 300, 500, 570, 333, 747, 333, // 168 - 175
574 400, 570, 300, 300, 333, 556, 540, 250, // 176 - 183
575 333, 300, 330, 500, 750, 750, 750, 500, // 184 - 191
576 722, 722, 722, 722, 722, 722, 1000, 722, // 192 - 199
577 667, 667, 667, 667, 389, 389, 389, 389, // 200 - 207
578 722, 722, 778, 778, 778, 778, 778, 570, // 208 - 215
579 778, 722, 722, 722, 722, 722, 611, 556, // 216 - 223
580 500, 500, 500, 500, 500, 500, 722, 444, // 224 - 231
581 444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
582 500, 556, 500, 500, 500, 500, 500, 570, // 240 - 247
583 500, 556, 556, 556, 556, 500, 556, 500 // 248 - 255
587 { "Times", // family name
588 "Bold Italic", // style
589 "Times-BoldItalic", // PSName
591 -217, // ascend, descend
592 FAMILY_ROMAN
, // family style
593 RTL_TEXTENCODING_MS_1252
, // charset
594 PITCH_VARIABLE
, // pitch
595 WIDTH_NORMAL
, // width type
596 WEIGHT_BOLD
, // weight type
597 ITALIC_NORMAL
, // italic type
599 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
600 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
601 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
602 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
603 250, 389, 555, 500, 500, 833, 778, 278, // 32 - 39
604 333, 333, 500, 570, 250, 333, 250, 278, // 40 - 47
605 500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
606 500, 500, 333, 333, 570, 570, 570, 500, // 56 - 63
607 832, 667, 667, 667, 722, 667, 667, 722, // 64 - 71
608 778, 389, 500, 667, 611, 889, 722, 722, // 72 - 79
609 611, 722, 667, 556, 611, 722, 667, 889, // 80 - 87
610 667, 611, 611, 333, 278, 333, 570, 500, // 88 - 95
611 333, 500, 500, 444, 500, 444, 333, 500, // 96 - 103
612 556, 278, 278, 500, 278, 778, 556, 500, // 104 - 111
613 500, 500, 389, 389, 278, 556, 444, 667, // 112 - 119
614 500, 444, 389, 348, 220, 348, 570, 0, // 120 - 127
615 500, 0, 333, 500, 500, 1000, 500, 500, // 128 - 135
616 333, 1000, 556, 333, 944, 0, 389, 0, // 136 - 143
617 0, 333, 333, 500, 500, 350, 500, 1000, // 144 - 151
618 333, 1000, 389, 333, 722, 0, 389, 611, // 152 - 159
619 250, 389, 500, 500, 500, 500, 220, 500, // 160 - 167
620 333, 747, 266, 500, 606, 333, 747, 333, // 168 - 175
621 400, 570, 300, 300, 333, 576, 500, 250, // 176 - 183
622 333, 300, 300, 500, 750, 750, 750, 500, // 184 - 191
623 667, 667, 667, 667, 667, 667, 944, 667, // 192 - 199
624 667, 667, 667, 667, 389, 389, 389, 389, // 200 - 207
625 722, 722, 722, 722, 722, 722, 722, 570, // 208 - 215
626 722, 722, 722, 722, 722, 611, 611, 500, // 216 - 223
627 500, 500, 500, 500, 500, 500, 722, 444, // 224 - 231
628 444, 444, 444, 444, 278, 278, 278, 278, // 232 - 239
629 500, 556, 500, 500, 500, 500, 500, 570, // 240 - 247
630 500, 556, 556, 556, 556, 444, 500, 444 // 248 - 255
634 // The font name "Symbol" is too generic and causes plenty of trouble.
635 // To ensure WYSIWIG the PDF-Base14 variant gets a not-confusable name
636 { "PDF_Base14_Symbol", // family name
640 -293, // ascend, descend
641 FAMILY_DONTKNOW
, // family style
642 RTL_TEXTENCODING_ADOBE_SYMBOL
, // charset
643 PITCH_VARIABLE
, // pitch
644 WIDTH_NORMAL
, // width type
645 WEIGHT_NORMAL
, // weight type
646 ITALIC_NONE
, // italic type
648 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
649 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
650 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
651 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
652 250, 333, 713, 500, 549, 833, 778, 439, // 32 - 39
653 333, 333, 500, 549, 250, 549, 250, 278, // 40 - 47
654 500, 500, 500, 500, 500, 500, 500, 500, // 48 - 55
655 500, 500, 278, 278, 549, 549, 549, 444, // 56 - 63
656 549, 722, 667, 722, 612, 611, 763, 603, // 64 - 71
657 722, 333, 631, 722, 686, 889, 722, 722, // 72 - 79
658 768, 741, 556, 592, 611, 690, 439, 768, // 80 - 87
659 645, 795, 611, 333, 863, 333, 658, 500, // 88 - 95
660 500, 631, 549, 549, 494, 439, 521, 411, // 96 - 103
661 603, 329, 603, 549, 549, 576, 521, 549, // 104 - 111
662 549, 521, 549, 603, 439, 576, 713, 686, // 112 - 119
663 493, 686, 494, 480, 200, 480, 549, 0, // 120 - 127
664 0, 0, 0, 0, 0, 0, 0, 0, // 128 - 135
665 0, 0, 0, 0, 0, 0, 0, 0, // 136 - 143
666 0, 0, 0, 0, 0, 0, 0, 0, // 144 - 151
667 0, 0, 0, 0, 0, 0, 0, 0, // 152 - 159
668 750, 620, 247, 549, 167, 713, 500, 753, // 160 - 167
669 753, 753, 753, 1042, 987, 603, 987, 603, // 168 - 175
670 400, 549, 411, 549, 549, 713, 494, 460, // 176 - 183
671 549, 549, 549, 549, 1000, 603, 1000, 658, // 184 - 191
672 823, 686, 795, 987, 768, 768, 823, 768, // 192 - 199
673 768, 713, 713, 713, 713, 713, 713, 713, // 200 - 207
674 768, 713, 790, 790, 890, 823, 549, 250, // 208 - 215
675 713, 603, 603, 1042, 987, 603, 987, 603, // 216 - 223
676 494, 329, 790, 790, 786, 713, 384, 384, // 224 - 231
677 384, 384, 384, 384, 494, 494, 494, 494, // 232 - 239
678 0, 329, 274, 686, 686, 686, 384, 384, // 240 - 247
679 384, 384, 384, 384, 494, 494, 494, 0 // 248 - 255
683 { "ZapfDingbats", // family name
685 "ZapfDingbats", // PSName
687 -143, // ascend, descend
688 FAMILY_DONTKNOW
, // family style
689 RTL_TEXTENCODING_ADOBE_DINGBATS
, // charset
690 PITCH_VARIABLE
, // pitch
691 WIDTH_NORMAL
, // width type
692 WEIGHT_NORMAL
, // weight type
693 ITALIC_NONE
, // italic type
695 0, 0, 0, 0, 0, 0, 0, 0, // 0 - 7
696 0, 0, 0, 0, 0, 0, 0, 0, // 8 - 15
697 0, 0, 0, 0, 0, 0, 0, 0, // 16 - 23
698 0, 0, 0, 0, 0, 0, 0, 0, // 24 - 31
699 278, 974, 961, 974, 980, 719, 789, 790, // 32 - 39
700 791, 690, 960, 939, 549, 855, 911, 933, // 40 - 47
701 911, 945, 974, 755, 846, 762, 761, 571, // 48 - 55
702 677, 763, 760, 759, 754, 494, 552, 537, // 56 - 63
703 577, 692, 786, 788, 788, 790, 793, 794, // 64 - 71
704 816, 823, 789, 841, 823, 833, 816, 831, // 72 - 79
705 923, 744, 723, 749, 790, 792, 695, 776, // 80 - 87
706 768, 792, 759, 707, 708, 682, 701, 826, // 88 - 95
707 815, 789, 789, 707, 687, 696, 689, 786, // 96 - 103
708 787, 713, 791, 785, 791, 873, 761, 762, // 104 - 111
709 762, 759, 759, 892, 892, 788, 784, 438, // 112 - 119
710 138, 277, 415, 392, 392, 668, 668, 0, // 120 - 127
711 390, 390, 317, 317, 276, 276, 509, 509, // 128 - 135
712 410, 410, 234, 234, 334, 334, 0, 0, // 136 - 143
713 0, 0, 0, 0, 0, 0, 0, 0, // 144 - 151
714 0, 0, 0, 0, 0, 0, 0, 0, // 152 - 159
715 0, 732, 544, 544, 910, 667, 760, 760, // 160 - 167
716 776, 595, 694, 626, 788, 788, 788, 788, // 168 - 175
717 788, 788, 788, 788, 788, 788, 788, 788, // 176 - 183
718 788, 788, 788, 788, 788, 788, 788, 788, // 184 - 191
719 788, 788, 788, 788, 788, 788, 788, 788, // 192 - 199
720 788, 788, 788, 788, 788, 788, 788, 788, // 200 - 207
721 788, 788, 788, 788, 894, 838, 1016, 458, // 208 - 215
722 748, 924, 748, 918, 927, 928, 928, 834, // 216 - 223
723 873, 828, 924, 924, 917, 930, 931, 463, // 224 - 231
724 883, 836, 836, 867, 867, 696, 696, 874, // 232 - 239
725 0, 874, 760, 946, 771, 865, 771, 888, // 240 - 247
726 967, 888, 831, 873, 927, 970, 918, 0 // 248 - 255
732 BuildinFontInstance::BuildinFontInstance(const PhysicalFontFace
& rFontFace
,
733 const FontSelectPattern
& rFSP
)
734 : LogicalFontInstance(rFontFace
, rFSP
)
738 bool BuildinFontInstance::ImplGetGlyphBoundRect(sal_GlyphId
, tools::Rectangle
&, bool) const
743 bool BuildinFontInstance::GetGlyphOutline(sal_GlyphId
, basegfx::B2DPolyPolygon
&, bool) const
748 BuildinFontFace::BuildinFontFace(int nId
)
749 : PhysicalFontFace(m_aBuildinFonts
[nId
].GetFontAttributes())
750 , mrBuildin(m_aBuildinFonts
[nId
])
754 rtl::Reference
<LogicalFontInstance
>
755 BuildinFontFace::CreateFontInstance(const FontSelectPattern
& rFSP
) const
757 return new BuildinFontInstance(*this, rFSP
);
760 } // namespace vcl::pdf
762 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */