PoDoFo 1.2.0
Loading...
Searching...
No Matches
PdfEncodingMapFactory.h
1// SPDX-FileCopyrightText: 2007 Dominik Seichter <domseichter@web.de>
2// SPDX-FileCopyrightText: 2020 Francesco Pretto <ceztko@gmail.com>
3// SPDX-License-Identifier: LGPL-2.0-or-later OR MPL-2.0
4
5#ifndef PDF_ENCODING_MAP_FACTORY_H
6#define PDF_ENCODING_MAP_FACTORY_H
7
8#include "PdfEncodingMap.h"
9#include "PdfCMapEncoding.h"
10
11namespace PoDoFo {
12
15{
16 friend class PdfEncoding;
17 friend class PdfEncodingFactory;
18 friend class PdfDifferenceEncoding;
19 friend class PdfFontMetricsFreetype;
20 friend class PdfFontMetrics;
21
22public:
25 static bool TryParseCMapEncoding(const PdfObject& cmapObj, std::unique_ptr<PdfEncodingMap>& encoding);
26
30 static std::unique_ptr<PdfEncodingMap> ParseCMapEncoding(const PdfObject& cmapObj);
31
36 static PdfBuiltInEncodingConstPtr GetWinAnsiEncodingInstancePtr();
37 static const PdfBuiltInEncoding& GetWinAnsiEncodingInstance();
38
47 static PdfBuiltInEncodingConstPtr GetMacRomanEncodingInstancePtr();
48 static const PdfBuiltInEncoding& GetMacRomanEncodingInstance();
49
54 static PdfBuiltInEncodingConstPtr GetMacExpertEncodingInstancePtr();
55 static const PdfBuiltInEncoding& GetMacExpertEncodingInstance();
56
61 static PdfBuiltInEncodingConstPtr GetStandardEncodingInstancePtr();
62 static const PdfBuiltInEncoding& GetStandardEncodingInstance();
63
68 static PdfEncodingMapConstPtr GetHorizontalIdentityEncodingInstancePtr();
69 static const PdfEncodingMap& GetHorizontalIdentityEncodingInstance();
70
75 static PdfEncodingMapConstPtr GetVerticalIdentityEncodingInstancePtr();
76 static const PdfEncodingMap& GetVerticalIdentityEncodingInstance();
77
79 static PdfEncodingMapConstPtr GetStandard14FontEncodingInstancePtr(PdfStandard14FontType stdFont);
80 static const PdfEncodingMap& GetStandard14FontEncodingInstance(PdfStandard14FontType stdFont);
81
84 static PdfCMapEncodingConstPtr GetPredefinedCMapInstancePtr(const std::string_view& cmapName);
85 static const PdfCMapEncoding& GetPredefinedCMapInstance(const std::string_view& cmapName);
86private:
87 // The following encodings are for internal use only
88
89 static const PdfBuiltInEncodingConstPtr& GetSymbolEncodingInstancePtr();
90
91 static const PdfBuiltInEncodingConstPtr& GetZapfDingbatsEncodingInstancePtr();
92
93 static const PdfBuiltInEncodingConstPtr& GetAppleLatin1EncodingInstancePtr();
94
95 static const PdfEncodingMapConstPtr& GetNullEncodingInstancePtr();
96
97private:
98 PdfEncodingMapFactory() = delete;
99
100 static const PdfBuiltInEncodingConstPtr& getWinAnsiEncodingInstancePtr();
101 static const PdfBuiltInEncodingConstPtr& getMacRomanEncodingInstancePtr();
102 static const PdfBuiltInEncodingConstPtr& getMacExpertEncodingInstancePtr();
103 static const PdfBuiltInEncodingConstPtr& getStandardEncodingInstancePtr();
104 static const PdfEncodingMapConstPtr& getHorizontalIdentityEncodingInstancePtr();
105 static const PdfEncodingMapConstPtr& getVerticalIdentityEncodingInstancePtr();
106 static const PdfBuiltInEncodingConstPtr& getStandard14FontEncodingInstancePtr(PdfStandard14FontType stdFont);
107};
108
109}
110
111#endif // PDF_ENCODING_MAP_FACTORY_H
A common base class for built-in encodings which are known by name.
Definition PdfEncodingMap.h:243
PdfDifferenceEncoding is an encoding, which is based on either the fonts encoding or a predefined enc...
Definition PdfDifferenceEncoding.h:105
This factory creates a PdfEncoding from an existing object in the PDF.
Definition PdfEncodingFactory.h:16
This factory creates a PdfEncodingMap.
Definition PdfEncodingMapFactory.h:15
A PdfEncodingMap is a low level interface to convert between utf8 and encoded strings in and to deter...
Definition PdfEncodingMap.h:28
A PdfEncoding is in PdfFont to transform a text string into a representation so that it can be displa...
Definition PdfEncoding.h:51
This abstract class provides access to font metrics information.
Definition PdfFontMetrics.h:31
This class represents a PDF indirect Object in memory.
Definition PdfObject.h:31
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:30
All classes, functions, types and enums of PoDoFo are members of these namespace.
Definition basetypes.h:13
std::shared_ptr< const PdfCMapEncoding > PdfCMapEncodingConstPtr
Convenience typedef for a const CMap encoding shared ptr.
Definition PdfCMapEncoding.h:15
std::shared_ptr< const PdfBuiltInEncoding > PdfBuiltInEncodingConstPtr
Convenience typedef for a const /Encoding map entry shared ptr.
Definition PdfEncodingMap.h:314
std::shared_ptr< const PdfEncodingMap > PdfEncodingMapConstPtr
Convenience typedef for a const /Encoding map entry shared ptr.
Definition PdfEncodingMap.h:311