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 "pdfbuildin_fonts.hxx"
21 
22 #include <rtl/strbuf.hxx>
23 
24 namespace vcl::pdf
25 {
27 {
28  OStringBuffer aBuf(16);
29  aBuf.append('/');
30  const char* pRun = m_pPSName;
31 
32  unsigned int nCopied = 0;
33  while (*pRun)
34  {
35  if (*pRun >= 'A' && *pRun <= 'Z')
36  nCopied = 0;
37  if (nCopied++ < 2)
38  aBuf.append(*pRun);
39  pRun++;
40  }
41  return aBuf.makeStringAndClear();
42 }
43 
45 {
46  assert(false && "pdf::BuildinFont doesn't provide correct char maps!");
47  if (m_xFontCharMap.is())
48  return m_xFontCharMap;
49 
50  m_xFontCharMap = FontCharMap::GetDefaultMap(m_eCharSet != RTL_TEXTENCODING_MS_1252);
51  return m_xFontCharMap;
52 }
53 
55 {
56  FontAttributes aDFA;
57  aDFA.SetFamilyName(OUString::createFromAscii(m_pName));
58  aDFA.SetStyleName(OUString::createFromAscii(m_pStyleName));
60  aDFA.SetSymbolFlag(m_eCharSet != RTL_TEXTENCODING_MS_1252);
61  aDFA.SetPitch(m_ePitch);
62  aDFA.SetWeight(m_eWeight);
63  aDFA.SetItalic(m_eItalic);
65  aDFA.SetQuality(50000);
66  return aDFA;
67 }
68 
70  = { { "Courier", // family name
71  "Normal", // style
72  "Courier", // PSName
73  629,
74  -157, // ascend, descend
75  FAMILY_MODERN, // family style
76  RTL_TEXTENCODING_MS_1252, // charset
77  PITCH_FIXED, // pitch
78  WIDTH_NORMAL, // width type
79  WEIGHT_NORMAL, // weight type
80  ITALIC_NONE, // italic type
81  {
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
114  },
115  nullptr },
116 
117  { "Courier", // family name
118  "Italic", // style
119  "Courier-Oblique", // PSName
120  629,
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
128  {
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
161  },
162  nullptr },
163 
164  { "Courier", // family name
165  "Bold", // style
166  "Courier-Bold", // PSName
167  629,
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
175  {
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
208  },
209  nullptr },
210 
211  { "Courier", // family name
212  "Bold Italic", // style
213  "Courier-BoldOblique", // PSName
214  629,
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
222  {
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
255  },
256  nullptr },
257 
258  { "Helvetica", // family name
259  "Normal", // style
260  "Helvetica", // PSName
261  718,
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
269  {
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
302  },
303  nullptr },
304 
305  { "Helvetica", // family name
306  "Italic", // style
307  "Helvetica-Oblique", // PSName
308  718,
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
316  {
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
349  },
350  nullptr },
351 
352  { "Helvetica", // family name
353  "Bold", // style
354  "Helvetica-Bold", // PSName
355  718,
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
363  {
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
396  },
397  nullptr },
398 
399  { "Helvetica", // family name
400  "Bold Italic", // style
401  "Helvetica-BoldOblique", // PSName
402  718,
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
410  {
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
443  },
444  nullptr },
445 
446  { "Times", // family name
447  "Normal", // style
448  "Times-Roman", // PSName
449  683,
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
457  {
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
490  },
491  nullptr },
492 
493  { "Times", // family name
494  "Italic", // style
495  "Times-Italic", // PSName
496  683,
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
504  {
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
537  },
538  nullptr },
539 
540  { "Times", // family name
541  "Bold", // style
542  "Times-Bold", // PSName
543  683,
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
551  {
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
584  },
585  nullptr },
586 
587  { "Times", // family name
588  "Bold Italic", // style
589  "Times-BoldItalic", // PSName
590  683,
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
598  {
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
631  },
632  nullptr },
633 
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
637  "Normal", // style
638  "Symbol", // PSName
639  1010,
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
647  {
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
680  },
681  nullptr },
682 
683  { "ZapfDingbats", // family name
684  "Normal", // style
685  "ZapfDingbats", // PSName
686  820,
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
694  {
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
727  },
728  nullptr }
729 
730  };
731 
733  const FontSelectPattern& rFSP)
734  : LogicalFontInstance(rFontFace, rFSP)
735 {
736 }
737 
739 {
740  return false;
741 }
742 
744 {
745  return false;
746 }
747 
749  : PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
750  , mrBuildin(m_aBuildinFonts[nId])
751 {
752 }
753 
756 {
757  return new BuildinFontInstance(*this, rFSP);
758 }
759 
760 } // namespace vcl::pdf
761 
762 /* 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
void SetPitch(const FontPitch ePitch)
rtl::Reference< LogicalFontInstance > CreateFontInstance(const FontSelectPattern &rFSD) const override
FAMILY_ROMAN
static const BuildinFont m_aBuildinFonts[14]
FontFamily const m_eFamily
const FontCharMapRef & GetFontCharMap() const
sal_uInt16 sal_GlyphId
Definition: glyphitem.hxx:28
WEIGHT_BOLD
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
PITCH_VARIABLE
bool ImplGetGlyphBoundRect(sal_GlyphId nID, tools::Rectangle &rRect, bool) const override
abstract base class for physical font faces
FontPitch const m_ePitch
BuildinFontInstance(const PhysicalFontFace &, const FontSelectPattern &)
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
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
void SetFamilyType(const FontFamily eFontFamily)
static FontCharMapRef GetDefaultMap(bool bSymbols)
Get the default font character map.