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