/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <sal/config.h>
#include <rtl/strbuf.hxx>
#include <pdf/pdfbuildin_fonts.hxx>
namespace vcl::pdf
{
OString BuildinFont::getNameObject()
const
{
OStringBuffer aBuf(16);
aBuf.append(
'/');
const char* pRun = m_pPSName;
unsigned int nCopied = 0;
while (*pRun)
{
if (*pRun >=
'A' && *pRun <=
'Z')
nCopied = 0;
if (nCopied++ < 2)
aBuf.append(*pRun);
pRun++;
}
return aBuf.makeStringAndClear();
}
const FontCharMapRef& BuildinFont::GetFontCharMap()
const
{
assert(
false &&
"pdf::BuildinFont doesn't provide correct char maps!");
if (m_xFontCharMap.is())
return m_xFontCharMap;
m_xFontCharMap = FontCharMap::GetDefaultMap(m_eCharSet != RTL_TEXTENCODING_MS_1252);
return m_xFontCharMap;
}
FontAttributes BuildinFont::GetFontAttributes()
const
{
FontAttributes aDFA;
aDFA.SetFamilyName(m_aName);
aDFA.SetStyleName(m_aStyleName);
aDFA.SetFamilyType(m_eFamily);
// dubious, see BuildinFont::GetFontCharMap
aDFA.SetMicrosoftSymbolEncoded(m_eCharSet != RTL_TEXTENCODING_MS_1252);
aDFA.SetPitch(m_ePitch);
aDFA.SetWeight(m_eWeight);
aDFA.SetItalic(m_eItalic);
aDFA.SetWidthType(m_eWidthType);
aDFA.SetQuality(50000);
return aDFA;
}
const BuildinFont BuildinFontFace::m_aBuildinFonts[14]
= { { u
"Courier"_ustr,
// family name
u
"Normal"_ustr,
// style
"Courier",
// PSName
629,
-157,
// ascend, descend
FAMILY_MODERN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_FIXED,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
600, 600, 600, 600, 600, 600, 600, 600,
// 32 - 39
600, 600, 600, 600, 600, 600, 600, 600,
// 40 - 47
600, 600, 600, 600, 600, 600, 600, 600,
// 48 - 55
600, 600, 600, 600, 600, 600, 600, 600,
// 56 - 63
600, 600, 600, 600, 600, 600, 600, 600,
// 64 - 71
600, 600, 600, 600, 600, 600, 600, 600,
// 72 - 79
600, 600, 600, 600, 600, 600, 600, 600,
// 80 - 87
600, 600, 600, 600, 600, 600, 600, 600,
// 88 - 95
600, 600, 600, 600, 600, 600, 600, 600,
// 96 - 103
600, 600, 600, 600, 600, 600, 600, 600,
// 104 - 111
600, 600, 600, 600, 600, 600, 600, 600,
// 112 - 119
600, 600, 600, 600, 600, 600, 600, 0,
// 120 - 127
600, 0, 600, 600, 600, 600, 600, 600,
// 128 - 135
600, 600, 600, 600, 600, 0, 600, 0,
// 136 - 143
0, 600, 600, 600, 600, 600, 600, 600,
// 144 - 151
600, 600, 600, 600, 600, 0, 600, 600,
// 152 - 159
600, 600, 600, 600, 600, 600, 600, 600,
// 160 - 167
600, 600, 600, 600, 600, 600, 600, 600,
// 168 - 175
600, 600, 600, 600, 600, 600, 600, 600,
// 176 - 183
600, 600, 600, 600, 600, 600, 600, 600,
// 184 - 191
600, 600, 600, 600, 600, 600, 600, 600,
// 192 - 199
600, 600, 600, 600, 600, 600, 600, 600,
// 200 - 207
600, 600, 600, 600, 600, 600, 600, 600,
// 208 - 215
600, 600, 600, 600, 600, 600, 600, 600,
// 216 - 223
600, 600, 600, 600, 600, 600, 600, 600,
// 224 - 231
600, 600, 600, 600, 600, 600, 600, 600,
// 232 - 239
600, 600, 600, 600, 600, 600, 600, 600,
// 240 - 247
600, 600, 600, 600, 600, 600, 600, 600
// 248 - 255
},
FontCharMapRef() },
{ u
"Courier"_ustr,
// family name
u
"Italic"_ustr,
// style
"Courier-Oblique",
// PSName
629,
-157,
// ascend, descend
FAMILY_MODERN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_FIXED,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
600, 600, 600, 600, 600, 600, 600, 600,
// 32 - 39
600, 600, 600, 600, 600, 600, 600, 600,
// 40 - 47
600, 600, 600, 600, 600, 600, 600, 600,
// 48 - 55
600, 600, 600, 600, 600, 600, 600, 600,
// 56 - 63
600, 600, 600, 600, 600, 600, 600, 600,
// 64 - 71
600, 600, 600, 600, 600, 600, 600, 600,
// 72 - 79
600, 600, 600, 600, 600, 600, 600, 600,
// 80 - 87
600, 600, 600, 600, 600, 600, 600, 600,
// 88 - 95
600, 600, 600, 600, 600, 600, 600, 600,
// 96 - 103
600, 600, 600, 600, 600, 600, 600, 600,
// 104 - 111
600, 600, 600, 600, 600, 600, 600, 600,
// 112 - 119
600, 600, 600, 600, 600, 600, 600, 0,
// 120 - 127
600, 0, 600, 600, 600, 600, 600, 600,
// 128 - 135
600, 600, 600, 600, 600, 0, 600, 0,
// 136 - 143
0, 600, 600, 600, 600, 600, 600, 600,
// 144 - 151
600, 600, 600, 600, 600, 0, 600, 600,
// 152 - 159
600, 600, 600, 600, 600, 600, 600, 600,
// 160 - 167
600, 600, 600, 600, 600, 600, 600, 600,
// 168 - 175
600, 600, 600, 600, 600, 600, 600, 600,
// 176 - 183
600, 600, 600, 600, 600, 600, 600, 600,
// 184 - 191
600, 600, 600, 600, 600, 600, 600, 600,
// 192 - 199
600, 600, 600, 600, 600, 600, 600, 600,
// 200 - 207
600, 600, 600, 600, 600, 600, 600, 600,
// 208 - 215
600, 600, 600, 600, 600, 600, 600, 600,
// 216 - 223
600, 600, 600, 600, 600, 600, 600, 600,
// 224 - 231
600, 600, 600, 600, 600, 600, 600, 600,
// 232 - 239
600, 600, 600, 600, 600, 600, 600, 600,
// 240 - 247
600, 600, 600, 600, 600, 600, 600, 600
// 248 - 255
},
FontCharMapRef() },
{ u
"Courier"_ustr,
// family name
u
"Bold"_ustr,
// style
"Courier-Bold",
// PSName
629,
-157,
// ascend, descend
FAMILY_MODERN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_FIXED,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
600, 600, 600, 600, 600, 600, 600, 600,
// 32 - 39
600, 600, 600, 600, 600, 600, 600, 600,
// 40 - 47
600, 600, 600, 600, 600, 600, 600, 600,
// 48 - 55
600, 600, 600, 600, 600, 600, 600, 600,
// 56 - 63
600, 600, 600, 600, 600, 600, 600, 600,
// 64 - 71
600, 600, 600, 600, 600, 600, 600, 600,
// 72 - 79
600, 600, 600, 600, 600, 600, 600, 600,
// 80 - 87
600, 600, 600, 600, 600, 600, 600, 600,
// 88 - 95
600, 600, 600, 600, 600, 600, 600, 600,
// 96 - 103
600, 600, 600, 600, 600, 600, 600, 600,
// 104 - 111
600, 600, 600, 600, 600, 600, 600, 600,
// 112 - 119
600, 600, 600, 600, 600, 600, 600, 0,
// 120 - 127
600, 0, 600, 600, 600, 600, 600, 600,
// 128 - 135
600, 600, 600, 600, 600, 0, 600, 0,
// 136 - 143
0, 600, 600, 600, 600, 600, 600, 600,
// 144 - 151
600, 600, 600, 600, 600, 0, 600, 600,
// 152 - 159
600, 600, 600, 600, 600, 600, 600, 600,
// 160 - 167
600, 600, 600, 600, 600, 600, 600, 600,
// 168 - 175
600, 600, 600, 600, 600, 600, 600, 600,
// 176 - 183
600, 600, 600, 600, 600, 600, 600, 600,
// 184 - 191
600, 600, 600, 600, 600, 600, 600, 600,
// 192 - 199
600, 600, 600, 600, 600, 600, 600, 600,
// 200 - 207
600, 600, 600, 600, 600, 600, 600, 600,
// 208 - 215
600, 600, 600, 600, 600, 600, 600, 600,
// 216 - 223
600, 600, 600, 600, 600, 600, 600, 600,
// 224 - 231
600, 600, 600, 600, 600, 600, 600, 600,
// 232 - 239
600, 600, 600, 600, 600, 600, 600, 600,
// 240 - 247
600, 600, 600, 600, 600, 600, 600, 600
// 248 - 255
},
FontCharMapRef() },
{ u
"Courier"_ustr,
// family name
u
"Bold Italic"_ustr,
// style
"Courier-BoldOblique",
// PSName
629,
-157,
// ascend, descend
FAMILY_MODERN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_FIXED,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
600, 600, 600, 600, 600, 600, 600, 600,
// 32 - 39
600, 600, 600, 600, 600, 600, 600, 600,
// 40 - 47
600, 600, 600, 600, 600, 600, 600, 600,
// 48 - 55
600, 600, 600, 600, 600, 600, 600, 600,
// 56 - 63
600, 600, 600, 600, 600, 600, 600, 600,
// 64 - 71
600, 600, 600, 600, 600, 600, 600, 600,
// 72 - 79
600, 600, 600, 600, 600, 600, 600, 600,
// 80 - 87
600, 600, 600, 600, 600, 600, 600, 600,
// 88 - 95
600, 600, 600, 600, 600, 600, 600, 600,
// 96 - 103
600, 600, 600, 600, 600, 600, 600, 600,
// 104 - 111
600, 600, 600, 600, 600, 600, 600, 600,
// 112 - 119
600, 600, 600, 600, 600, 600, 600, 0,
// 120 - 127
600, 0, 600, 600, 600, 600, 600, 600,
// 128 - 135
600, 600, 600, 600, 600, 0, 600, 0,
// 136 - 143
0, 600, 600, 600, 600, 600, 600, 600,
// 144 - 151
600, 600, 600, 600, 600, 0, 600, 600,
// 152 - 159
600, 600, 600, 600, 600, 600, 600, 600,
// 160 - 167
600, 600, 600, 600, 600, 600, 600, 600,
// 168 - 175
600, 600, 600, 600, 600, 600, 600, 600,
// 176 - 183
600, 600, 600, 600, 600, 600, 600, 600,
// 184 - 191
600, 600, 600, 600, 600, 600, 600, 600,
// 192 - 199
600, 600, 600, 600, 600, 600, 600, 600,
// 200 - 207
600, 600, 600, 600, 600, 600, 600, 600,
// 208 - 215
600, 600, 600, 600, 600, 600, 600, 600,
// 216 - 223
600, 600, 600, 600, 600, 600, 600, 600,
// 224 - 231
600, 600, 600, 600, 600, 600, 600, 600,
// 232 - 239
600, 600, 600, 600, 600, 600, 600, 600,
// 240 - 247
600, 600, 600, 600, 600, 600, 600, 600
// 248 - 255
},
FontCharMapRef() },
{ u
"Helvetica"_ustr,
// family name
u
"Normal"_ustr,
// style
"Helvetica",
// PSName
718,
-207,
// ascend, descend
FAMILY_SWISS,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
278, 278, 355, 556, 556, 889, 667, 191,
// 32 - 39
333, 333, 389, 584, 278, 333, 278, 278,
// 40 - 47
556, 556, 556, 556, 556, 556, 556, 556,
// 48 - 55
556, 556, 278, 278, 584, 584, 584, 556,
// 56 - 63
1015, 667, 667, 722, 722, 667, 611, 778,
// 64 - 71
722, 278, 500, 667, 556, 833, 722, 778,
// 72 - 79
667, 778, 722, 667, 611, 722, 667, 944,
// 80 - 87
667, 667, 611, 278, 278, 278, 469, 556,
// 88 - 95
333, 556, 556, 500, 556, 556, 278, 556,
// 96 - 103
556, 222, 222, 500, 222, 833, 556, 556,
// 104 - 111
556, 556, 333, 500, 278, 556, 500, 722,
// 112 - 119
500, 500, 500, 334, 260, 334, 584, 0,
// 120 - 127
556, 0, 222, 556, 333, 1000, 556, 556,
// 128 - 135
333, 1000, 667, 333, 1000, 0, 500, 0,
// 136 - 143
0, 222, 222, 333, 333, 350, 556, 1000,
// 144 - 151
333, 1000, 500, 333, 944, 0, 500, 667,
// 152 - 159
278, 333, 556, 556, 556, 556, 260, 556,
// 160 - 167
333, 737, 370, 556, 584, 333, 737, 333,
// 168 - 175
400, 584, 333, 333, 333, 556, 537, 278,
// 176 - 183
333, 333, 365, 556, 834, 834, 834, 611,
// 184 - 191
667, 667, 667, 667, 667, 667, 1000, 722,
// 192 - 199
667, 667, 667, 667, 278, 278, 278, 278,
// 200 - 207
722, 722, 778, 778, 778, 778, 778, 584,
// 208 - 215
778, 722, 722, 722, 722, 667, 667, 611,
// 216 - 223
556, 556, 556, 556, 556, 556, 889, 500,
// 224 - 231
556, 556, 556, 556, 278, 278, 278, 278,
// 232 - 239
556, 556, 556, 556, 556, 556, 556, 584,
// 240 - 247
611, 556, 556, 556, 556, 500, 556, 500
// 248 - 255
},
FontCharMapRef() },
{ u
"Helvetica"_ustr,
// family name
u
"Italic"_ustr,
// style
"Helvetica-Oblique",
// PSName
718,
-207,
// ascend, descend
FAMILY_SWISS,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
278, 278, 355, 556, 556, 889, 667, 191,
// 32 - 39
333, 333, 389, 584, 278, 333, 278, 278,
// 40 - 47
556, 556, 556, 556, 556, 556, 556, 556,
// 48 - 55
556, 556, 278, 278, 584, 584, 584, 556,
// 56 - 63
1015, 667, 667, 722, 722, 667, 611, 778,
// 64 - 71
722, 278, 500, 667, 556, 833, 722, 778,
// 72 - 79
667, 778, 722, 667, 611, 722, 667, 944,
// 80 - 87
667, 667, 611, 278, 278, 278, 469, 556,
// 88 - 95
333, 556, 556, 500, 556, 556, 278, 556,
// 96 - 103
556, 222, 222, 500, 222, 833, 556, 556,
// 104 - 111
556, 556, 333, 500, 278, 556, 500, 722,
// 112 - 119
500, 500, 500, 334, 260, 334, 584, 0,
// 120 - 127
556, 0, 222, 556, 333, 1000, 556, 556,
// 128 - 135
333, 1000, 667, 333, 1000, 0, 500, 0,
// 136 - 143
0, 222, 222, 333, 333, 350, 556, 1000,
// 144 - 151
333, 1000, 500, 333, 944, 0, 500, 667,
// 152 - 159
278, 333, 556, 556, 556, 556, 260, 556,
// 160 - 167
333, 737, 370, 556, 584, 333, 737, 333,
// 168 - 175
400, 584, 333, 333, 333, 556, 537, 278,
// 176 - 183
333, 333, 365, 556, 834, 834, 834, 611,
// 184 - 191
667, 667, 667, 667, 667, 667, 1000, 722,
// 192 - 199
667, 667, 667, 667, 278, 278, 278, 278,
// 200 - 207
722, 722, 778, 778, 778, 778, 778, 584,
// 208 - 215
778, 722, 722, 722, 722, 667, 667, 611,
// 216 - 223
556, 556, 556, 556, 556, 556, 889, 500,
// 224 - 231
556, 556, 556, 556, 278, 278, 278, 278,
// 232 - 239
556, 556, 556, 556, 556, 556, 556, 584,
// 240 - 247
611, 556, 556, 556, 556, 500, 556, 500
// 248 - 255
},
FontCharMapRef() },
{ u
"Helvetica"_ustr,
// family name
u
"Bold"_ustr,
// style
"Helvetica-Bold",
// PSName
718,
-207,
// ascend, descend
FAMILY_SWISS,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
278, 333, 474, 556, 556, 889, 722, 238,
// 32 - 39
333, 333, 389, 584, 278, 333, 278, 278,
// 40 - 47
556, 556, 556, 556, 556, 556, 556, 556,
// 48 - 55
556, 556, 333, 333, 584, 584, 584, 611,
// 56 - 63
975, 722, 722, 722, 722, 667, 611, 778,
// 64 - 71
722, 278, 556, 722, 611, 833, 722, 778,
// 72 - 79
667, 778, 722, 667, 611, 722, 667, 944,
// 80 - 87
667, 667, 611, 333, 278, 333, 584, 556,
// 88 - 95
333, 556, 611, 556, 611, 556, 333, 611,
// 96 - 103
611, 278, 278, 556, 278, 889, 611, 611,
// 104 - 111
611, 611, 389, 556, 333, 611, 556, 778,
// 112 - 119
556, 556, 500, 389, 280, 389, 584, 0,
// 120 - 127
556, 0, 278, 556, 500, 1000, 556, 556,
// 128 - 135
333, 1000, 667, 333, 1000, 0, 500, 0,
// 136 - 143
0, 278, 278, 500, 500, 350, 556, 1000,
// 144 - 151
333, 1000, 556, 333, 944, 0, 500, 667,
// 152 - 159
278, 333, 556, 556, 556, 556, 280, 556,
// 160 - 167
333, 737, 370, 556, 584, 333, 737, 333,
// 168 - 175
400, 584, 333, 333, 333, 611, 556, 278,
// 176 - 183
333, 333, 365, 556, 834, 834, 834, 611,
// 184 - 191
722, 722, 722, 722, 722, 722, 1000, 722,
// 192 - 199
667, 667, 667, 667, 278, 278, 278, 278,
// 200 - 207
722, 722, 778, 778, 778, 778, 778, 584,
// 208 - 215
778, 722, 722, 722, 722, 667, 667, 611,
// 216 - 223
556, 556, 556, 556, 556, 556, 889, 556,
// 224 - 231
556, 556, 556, 556, 278, 278, 278, 278,
// 232 - 239
611, 611, 611, 611, 611, 611, 611, 584,
// 240 - 247
611, 611, 611, 611, 611, 556, 611, 556
// 248 - 255
},
FontCharMapRef() },
{ u
"Helvetica"_ustr,
// family name
u
"Bold Italic"_ustr,
// style
"Helvetica-BoldOblique",
// PSName
718,
-207,
// ascend, descend
FAMILY_SWISS,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
278, 333, 474, 556, 556, 889, 722, 238,
// 32 - 39
333, 333, 389, 584, 278, 333, 278, 278,
// 40 - 47
556, 556, 556, 556, 556, 556, 556, 556,
// 48 - 55
556, 556, 333, 333, 584, 584, 584, 611,
// 56 - 63
975, 722, 722, 722, 722, 667, 611, 778,
// 64 - 71
722, 278, 556, 722, 611, 833, 722, 778,
// 72 - 79
667, 778, 722, 667, 611, 722, 667, 944,
// 80 - 87
667, 667, 611, 333, 278, 333, 584, 556,
// 88 - 95
333, 556, 611, 556, 611, 556, 333, 611,
// 96 - 103
611, 278, 278, 556, 278, 889, 611, 611,
// 104 - 111
611, 611, 389, 556, 333, 611, 556, 778,
// 112 - 119
556, 556, 500, 389, 280, 389, 584, 0,
// 120 - 127
556, 0, 278, 556, 500, 1000, 556, 556,
// 128 - 135
333, 1000, 667, 333, 1000, 0, 500, 0,
// 136 - 143
0, 278, 278, 500, 500, 350, 556, 1000,
// 144 - 151
333, 1000, 556, 333, 944, 0, 500, 667,
// 152 - 159
278, 333, 556, 556, 556, 556, 280, 556,
// 160 - 167
333, 737, 370, 556, 584, 333, 737, 333,
// 168 - 175
400, 584, 333, 333, 333, 611, 556, 278,
// 176 - 183
333, 333, 365, 556, 834, 834, 834, 611,
// 184 - 191
722, 722, 722, 722, 722, 722, 1000, 722,
// 192 - 199
667, 667, 667, 667, 278, 278, 278, 278,
// 200 - 207
722, 722, 778, 778, 778, 778, 778, 584,
// 208 - 215
778, 722, 722, 722, 722, 667, 667, 611,
// 216 - 223
556, 556, 556, 556, 556, 556, 889, 556,
// 224 - 231
556, 556, 556, 556, 278, 278, 278, 278,
// 232 - 239
611, 611, 611, 611, 611, 611, 611, 584,
// 240 - 247
611, 611, 611, 611, 611, 556, 611, 556
// 248 - 255
},
FontCharMapRef() },
{ u
"Times"_ustr,
// family name
u
"Normal"_ustr,
// style
"Times-Roman",
// PSName
683,
-217,
// ascend, descend
FAMILY_ROMAN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
250, 333, 408, 500, 500, 833, 778, 180,
// 32 - 39
333, 333, 500, 564, 250, 333, 250, 278,
// 40 - 47
500, 500, 500, 500, 500, 500, 500, 500,
// 48 - 55
500, 500, 278, 278, 564, 564, 564, 444,
// 56 - 63
921, 722, 667, 667, 722, 611, 556, 722,
// 64 - 71
722, 333, 389, 722, 611, 889, 722, 722,
// 72 - 79
556, 722, 667, 556, 611, 722, 722, 944,
// 80 - 87
722, 722, 611, 333, 278, 333, 469, 500,
// 88 - 95
333, 444, 500, 444, 500, 444, 333, 500,
// 96 - 103
500, 278, 278, 500, 278, 778, 500, 500,
// 104 - 111
500, 500, 333, 389, 278, 500, 500, 722,
// 112 - 119
500, 500, 444, 480, 200, 480, 541, 0,
// 120 - 127
500, 0, 333, 500, 444, 1000, 500, 500,
// 128 - 135
333, 1000, 556, 333, 889, 0, 444, 0,
// 136 - 143
0, 333, 333, 444, 444, 350, 500, 1000,
// 144 - 151
333, 980, 389, 333, 722, 0, 444, 722,
// 152 - 159
250, 333, 500, 500, 500, 500, 200, 500,
// 160 - 167
333, 760, 276, 500, 564, 333, 760, 333,
// 168 - 175
400, 564, 300, 300, 333, 500, 453, 250,
// 176 - 183
333, 300, 310, 500, 750, 750, 750, 444,
// 184 - 191
722, 722, 722, 722, 722, 722, 889, 667,
// 192 - 199
611, 611, 611, 611, 333, 333, 333, 333,
// 200 - 207
722, 722, 722, 722, 722, 722, 722, 564,
// 208 - 215
722, 722, 722, 722, 722, 722, 556, 500,
// 216 - 223
444, 444, 444, 444, 444, 444, 667, 444,
// 224 - 231
444, 444, 444, 444, 278, 278, 278, 278,
// 232 - 239
500, 500, 500, 500, 500, 500, 500, 564,
// 240 - 247
500, 500, 500, 500, 500, 500, 500, 500
// 248 - 255
},
FontCharMapRef() },
{ u
"Times"_ustr,
// family name
u
"Italic"_ustr,
// style
"Times-Italic",
// PSName
683,
-217,
// ascend, descend
FAMILY_ROMAN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
250, 333, 420, 500, 500, 833, 778, 214,
// 32 - 39
333, 333, 500, 675, 250, 333, 250, 278,
// 40 - 47
500, 500, 500, 500, 500, 500, 500, 500,
// 48 - 55
500, 500, 333, 333, 675, 675, 675, 500,
// 56 - 63
920, 611, 611, 667, 722, 611, 611, 722,
// 64 - 71
722, 333, 444, 667, 556, 833, 667, 722,
// 72 - 79
611, 722, 611, 500, 556, 722, 611, 833,
// 80 - 87
611, 556, 556, 389, 278, 389, 422, 500,
// 88 - 95
333, 500, 500, 444, 500, 444, 278, 500,
// 96 - 103
500, 278, 278, 444, 278, 722, 500, 500,
// 104 - 111
500, 500, 389, 389, 278, 500, 444, 667,
// 112 - 119
444, 444, 389, 400, 275, 400, 541, 0,
// 120 - 127
500, 0, 333, 500, 556, 889, 500, 500,
// 128 - 135
333, 1000, 500, 333, 944, 0, 389, 0,
// 136 - 143
0, 333, 333, 556, 556, 350, 500, 889,
// 144 - 151
333, 980, 389, 333, 667, 0, 389, 556,
// 152 - 159
250, 389, 500, 500, 500, 500, 275, 500,
// 160 - 167
333, 760, 276, 500, 675, 333, 760, 333,
// 168 - 175
400, 675, 300, 300, 333, 500, 523, 250,
// 176 - 183
333, 300, 310, 500, 750, 750, 750, 500,
// 184 - 191
611, 611, 611, 611, 611, 611, 889, 667,
// 192 - 199
611, 611, 611, 611, 333, 333, 333, 333,
// 200 - 207
722, 667, 722, 722, 722, 722, 722, 675,
// 208 - 215
722, 722, 722, 722, 722, 556, 611, 500,
// 216 - 223
500, 500, 500, 500, 500, 500, 667, 444,
// 224 - 231
444, 444, 444, 444, 278, 278, 278, 278,
// 232 - 239
500, 500, 500, 500, 500, 500, 500, 675,
// 240 - 247
500, 500, 500, 500, 500, 444, 500, 444
// 248 - 255
},
FontCharMapRef() },
{ u
"Times"_ustr,
// family name
u
"Bold"_ustr,
// style
"Times-Bold",
// PSName
683,
-217,
// ascend, descend
FAMILY_ROMAN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
250, 333, 555, 500, 500, 1000, 833, 278,
// 32 - 39
333, 333, 500, 570, 250, 333, 250, 278,
// 40 - 47
500, 500, 500, 500, 500, 500, 500, 500,
// 48 - 55
500, 500, 333, 333, 570, 570, 570, 500,
// 56 - 63
930, 722, 667, 722, 722, 667, 611, 778,
// 64 - 71
778, 389, 500, 778, 667, 944, 722, 778,
// 72 - 79
611, 778, 722, 556, 667, 722, 722, 1000,
// 80 - 87
722, 722, 667, 333, 278, 333, 581, 500,
// 88 - 95
333, 500, 556, 444, 556, 444, 333, 500,
// 96 - 103
556, 278, 333, 556, 278, 833, 556, 500,
// 104 - 111
556, 556, 444, 389, 333, 556, 500, 722,
// 112 - 119
500, 500, 444, 394, 220, 394, 520, 0,
// 120 - 127
500, 0, 333, 500, 500, 1000, 500, 500,
// 128 - 135
333, 1000, 556, 333, 1000, 0, 444, 0,
// 136 - 143
0, 333, 333, 500, 500, 350, 500, 1000,
// 144 - 151
333, 1000, 389, 333, 722, 0, 444, 722,
// 152 - 159
250, 333, 500, 500, 500, 500, 220, 500,
// 160 - 167
333, 747, 300, 500, 570, 333, 747, 333,
// 168 - 175
400, 570, 300, 300, 333, 556, 540, 250,
// 176 - 183
333, 300, 330, 500, 750, 750, 750, 500,
// 184 - 191
722, 722, 722, 722, 722, 722, 1000, 722,
// 192 - 199
667, 667, 667, 667, 389, 389, 389, 389,
// 200 - 207
722, 722, 778, 778, 778, 778, 778, 570,
// 208 - 215
778, 722, 722, 722, 722, 722, 611, 556,
// 216 - 223
500, 500, 500, 500, 500, 500, 722, 444,
// 224 - 231
444, 444, 444, 444, 278, 278, 278, 278,
// 232 - 239
500, 556, 500, 500, 500, 500, 500, 570,
// 240 - 247
500, 556, 556, 556, 556, 500, 556, 500
// 248 - 255
},
FontCharMapRef() },
{ u
"Times"_ustr,
// family name
u
"Bold Italic"_ustr,
// style
"Times-BoldItalic",
// PSName
683,
-217,
// ascend, descend
FAMILY_ROMAN,
// family style
RTL_TEXTENCODING_MS_1252,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_BOLD,
// weight type
ITALIC_NORMAL,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
250, 389, 555, 500, 500, 833, 778, 278,
// 32 - 39
333, 333, 500, 570, 250, 333, 250, 278,
// 40 - 47
500, 500, 500, 500, 500, 500, 500, 500,
// 48 - 55
500, 500, 333, 333, 570, 570, 570, 500,
// 56 - 63
832, 667, 667, 667, 722, 667, 667, 722,
// 64 - 71
778, 389, 500, 667, 611, 889, 722, 722,
// 72 - 79
611, 722, 667, 556, 611, 722, 667, 889,
// 80 - 87
667, 611, 611, 333, 278, 333, 570, 500,
// 88 - 95
333, 500, 500, 444, 500, 444, 333, 500,
// 96 - 103
556, 278, 278, 500, 278, 778, 556, 500,
// 104 - 111
500, 500, 389, 389, 278, 556, 444, 667,
// 112 - 119
500, 444, 389, 348, 220, 348, 570, 0,
// 120 - 127
500, 0, 333, 500, 500, 1000, 500, 500,
// 128 - 135
333, 1000, 556, 333, 944, 0, 389, 0,
// 136 - 143
0, 333, 333, 500, 500, 350, 500, 1000,
// 144 - 151
333, 1000, 389, 333, 722, 0, 389, 611,
// 152 - 159
250, 389, 500, 500, 500, 500, 220, 500,
// 160 - 167
333, 747, 266, 500, 606, 333, 747, 333,
// 168 - 175
400, 570, 300, 300, 333, 576, 500, 250,
// 176 - 183
333, 300, 300, 500, 750, 750, 750, 500,
// 184 - 191
667, 667, 667, 667, 667, 667, 944, 667,
// 192 - 199
667, 667, 667, 667, 389, 389, 389, 389,
// 200 - 207
722, 722, 722, 722, 722, 722, 722, 570,
// 208 - 215
722, 722, 722, 722, 722, 611, 611, 500,
// 216 - 223
500, 500, 500, 500, 500, 500, 722, 444,
// 224 - 231
444, 444, 444, 444, 278, 278, 278, 278,
// 232 - 239
500, 556, 500, 500, 500, 500, 500, 570,
// 240 - 247
500, 556, 556, 556, 556, 444, 500, 444
// 248 - 255
},
FontCharMapRef() },
// The font name "Symbol" is too generic and causes plenty of trouble.
// To ensure WYSIWIG the PDF-Base14 variant gets a not-confusable name
{ u
"PDF_Base14_Symbol"_ustr,
// family name
u
"Normal"_ustr,
// style
"Symbol",
// PSName
1010,
-293,
// ascend, descend
FAMILY_DONTKNOW,
// family style
RTL_TEXTENCODING_ADOBE_SYMBOL,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
250, 333, 713, 500, 549, 833, 778, 439,
// 32 - 39
333, 333, 500, 549, 250, 549, 250, 278,
// 40 - 47
500, 500, 500, 500, 500, 500, 500, 500,
// 48 - 55
500, 500, 278, 278, 549, 549, 549, 444,
// 56 - 63
549, 722, 667, 722, 612, 611, 763, 603,
// 64 - 71
722, 333, 631, 722, 686, 889, 722, 722,
// 72 - 79
768, 741, 556, 592, 611, 690, 439, 768,
// 80 - 87
645, 795, 611, 333, 863, 333, 658, 500,
// 88 - 95
500, 631, 549, 549, 494, 439, 521, 411,
// 96 - 103
603, 329, 603, 549, 549, 576, 521, 549,
// 104 - 111
549, 521, 549, 603, 439, 576, 713, 686,
// 112 - 119
493, 686, 494, 480, 200, 480, 549, 0,
// 120 - 127
0, 0, 0, 0, 0, 0, 0, 0,
// 128 - 135
0, 0, 0, 0, 0, 0, 0, 0,
// 136 - 143
0, 0, 0, 0, 0, 0, 0, 0,
// 144 - 151
0, 0, 0, 0, 0, 0, 0, 0,
// 152 - 159
750, 620, 247, 549, 167, 713, 500, 753,
// 160 - 167
753, 753, 753, 1042, 987, 603, 987, 603,
// 168 - 175
400, 549, 411, 549, 549, 713, 494, 460,
// 176 - 183
549, 549, 549, 549, 1000, 603, 1000, 658,
// 184 - 191
823, 686, 795, 987, 768, 768, 823, 768,
// 192 - 199
768, 713, 713, 713, 713, 713, 713, 713,
// 200 - 207
768, 713, 790, 790, 890, 823, 549, 250,
// 208 - 215
713, 603, 603, 1042, 987, 603, 987, 603,
// 216 - 223
494, 329, 790, 790, 786, 713, 384, 384,
// 224 - 231
384, 384, 384, 384, 494, 494, 494, 494,
// 232 - 239
0, 329, 274, 686, 686, 686, 384, 384,
// 240 - 247
384, 384, 384, 384, 494, 494, 494, 0
// 248 - 255
},
FontCharMapRef() },
{ u
"ZapfDingbats"_ustr,
// family name
u
"Normal"_ustr,
// style
"ZapfDingbats",
// PSName
820,
-143,
// ascend, descend
FAMILY_DONTKNOW,
// family style
RTL_TEXTENCODING_ADOBE_DINGBATS,
// charset
PITCH_VARIABLE,
// pitch
WIDTH_NORMAL,
// width type
WEIGHT_NORMAL,
// weight type
ITALIC_NONE,
// italic type
{
0, 0, 0, 0, 0, 0, 0, 0,
// 0 - 7
0, 0, 0, 0, 0, 0, 0, 0,
// 8 - 15
0, 0, 0, 0, 0, 0, 0, 0,
// 16 - 23
0, 0, 0, 0, 0, 0, 0, 0,
// 24 - 31
278, 974, 961, 974, 980, 719, 789, 790,
// 32 - 39
791, 690, 960, 939, 549, 855, 911, 933,
// 40 - 47
911, 945, 974, 755, 846, 762, 761, 571,
// 48 - 55
677, 763, 760, 759, 754, 494, 552, 537,
// 56 - 63
577, 692, 786, 788, 788, 790, 793, 794,
// 64 - 71
816, 823, 789, 841, 823, 833, 816, 831,
// 72 - 79
923, 744, 723, 749, 790, 792, 695, 776,
// 80 - 87
768, 792, 759, 707, 708, 682, 701, 826,
// 88 - 95
815, 789, 789, 707, 687, 696, 689, 786,
// 96 - 103
787, 713, 791, 785, 791, 873, 761, 762,
// 104 - 111
762, 759, 759, 892, 892, 788, 784, 438,
// 112 - 119
138, 277, 415, 392, 392, 668, 668, 0,
// 120 - 127
390, 390, 317, 317, 276, 276, 509, 509,
// 128 - 135
410, 410, 234, 234, 334, 334, 0, 0,
// 136 - 143
0, 0, 0, 0, 0, 0, 0, 0,
// 144 - 151
0, 0, 0, 0, 0, 0, 0, 0,
// 152 - 159
0, 732, 544, 544, 910, 667, 760, 760,
// 160 - 167
776, 595, 694, 626, 788, 788, 788, 788,
// 168 - 175
788, 788, 788, 788, 788, 788, 788, 788,
// 176 - 183
788, 788, 788, 788, 788, 788, 788, 788,
// 184 - 191
788, 788, 788, 788, 788, 788, 788, 788,
// 192 - 199
788, 788, 788, 788, 788, 788, 788, 788,
// 200 - 207
788, 788, 788, 788, 894, 838, 1016, 458,
// 208 - 215
748, 924, 748, 918, 927, 928, 928, 834,
// 216 - 223
873, 828, 924, 924, 917, 930, 931, 463,
// 224 - 231
883, 836, 836, 867, 867, 696, 696, 874,
// 232 - 239
0, 874, 760, 946, 771, 865, 771, 888,
// 240 - 247
967, 888, 831, 873, 927, 970, 918, 0
// 248 - 255
},
FontCharMapRef() }
};
BuildinFontInstance::BuildinFontInstance(
const vcl::font::PhysicalFontFace& rF
ontFace,
const vcl::font::FontSelectPattern& rFSP)
: LogicalFontInstance(rFontFace, rFSP)
{
}
bool BuildinFontInstance::GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon&, bool) const
{
return false;
}
BuildinFontFace::BuildinFontFace(int nId)
: vcl::font::PhysicalFontFace(m_aBuildinFonts[nId].GetFontAttributes())
, mrBuildin(m_aBuildinFonts[nId])
{
}
rtl::Reference<LogicalFontInstance>
BuildinFontFace::CreateFontInstance(const vcl::font::FontSelectPattern& rFSP) const
{
return new BuildinFontInstance(*this, rFSP);
}
} // namespace vcl::pdf
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */