PoDoFo 1.0.0-dev
Loading...
Searching...
No Matches
PdfEncodingMapFactory.h
1
7#ifndef PDF_ENCODING_MAP_FACTORY_H
8#define PDF_ENCODING_MAP_FACTORY_H
9
10#include "PdfEncodingMap.h"
11#include "PdfCMapEncoding.h"
12
13namespace PoDoFo {
14
18{
19 friend class PdfEncoding;
20 friend class PdfEncodingFactory;
21 friend class PdfDifferenceEncoding;
22 friend class PdfFontMetricsFreetype;
23 friend class PdfFontMetrics;
24
25public:
29 static bool TryParseCMapEncoding(const PdfObject& cmapObj, std::unique_ptr<PdfEncodingMap>& encoding);
30
35 static std::unique_ptr<PdfEncodingMap> ParseCMapEncoding(const PdfObject& cmapObj);
36
44 static PdfBuiltInEncodingConstPtr GetWinAnsiEncodingInstancePtr();
45 static const PdfBuiltInEncoding& GetWinAnsiEncodingInstance();
46
56 static PdfBuiltInEncodingConstPtr GetMacRomanEncodingInstancePtr();
57 static const PdfBuiltInEncoding& GetMacRomanEncodingInstance();
58
64 static PdfBuiltInEncodingConstPtr GetMacExpertEncodingInstancePtr();
65 static const PdfBuiltInEncoding& GetMacExpertEncodingInstance();
66
72 static PdfBuiltInEncodingConstPtr GetStandardEncodingInstancePtr();
73 static const PdfBuiltInEncoding& GetStandardEncodingInstance();
74
80 static PdfEncodingMapConstPtr GetHorizontalIdentityEncodingInstancePtr();
81 static const PdfEncodingMap& GetHorizontalIdentityEncodingInstance();
82
88 static PdfEncodingMapConstPtr GetVerticalIdentityEncodingInstancePtr();
89 static const PdfEncodingMap& GetVerticalIdentityEncodingInstance();
90
93 static PdfEncodingMapConstPtr GetStandard14FontEncodingInstancePtr(PdfStandard14FontType stdFont);
94 static const PdfEncodingMap& GetStandard14FontEncodingInstance(PdfStandard14FontType stdFont);
95
99 static PdfCMapEncodingConstPtr GetPredefinedCMapInstancePtr(const std::string_view& cmapName);
100 static const PdfCMapEncoding& GetPredefinedCMapInstance(const std::string_view& cmapName);
101private:
102 // The following encodings are for internal use only
103
104 static const PdfBuiltInEncodingConstPtr& GetSymbolEncodingInstancePtr();
105
106 static const PdfBuiltInEncodingConstPtr& GetZapfDingbatsEncodingInstancePtr();
107
108 static const PdfBuiltInEncodingConstPtr& GetAppleLatin1EncodingInstancePtr();
109
110 static const PdfEncodingMapConstPtr& GetNullEncodingInstancePtr();
111
112private:
113 PdfEncodingMapFactory() = delete;
114
115 static const PdfBuiltInEncodingConstPtr& getWinAnsiEncodingInstancePtr();
116 static const PdfBuiltInEncodingConstPtr& getMacRomanEncodingInstancePtr();
117 static const PdfBuiltInEncodingConstPtr& getMacExpertEncodingInstancePtr();
118 static const PdfBuiltInEncodingConstPtr& getStandardEncodingInstancePtr();
119 static const PdfEncodingMapConstPtr& getHorizontalIdentityEncodingInstancePtr();
120 static const PdfEncodingMapConstPtr& getVerticalIdentityEncodingInstancePtr();
121 static const PdfBuiltInEncodingConstPtr& getStandard14FontEncodingInstancePtr(PdfStandard14FontType stdFont);
122};
123
124}
125
126#endif // PDF_ENCODING_MAP_FACTORY_H
A common base class for built-in encodings which are known by name.
Definition PdfEncodingMap.h:282
PdfDifferenceEncoding is an encoding, which is based on either the fonts encoding or a predefined enc...
Definition PdfDifferenceEncoding.h:118
This factory creates a PdfEncoding from an existing object in the PDF.
Definition PdfEncodingFactory.h:20
This factory creates a PdfEncodingMap.
Definition PdfEncodingMapFactory.h:18
A PdfEncodingMap is a low level interface to convert between utf8 and encoded strings in and to deter...
Definition PdfEncodingMap.h:32
A PdfEncoding is in PdfFont to transform a text string into a representation so that it can be displa...
Definition PdfEncoding.h:56
This abstract class provides access to font metrics information.
Definition PdfFontMetrics.h:36
This class represents a PDF indirect Object in memory.
Definition PdfObject.h:35
Convenient type for char array storage and/or buffer with std::string compatibility.
Definition basetypes.h:38
SPDX-FileCopyrightText: (C) 2022 Francesco Pretto ceztko@gmail.com SPDX-License-Identifier: LGPL-2....
Definition basetypes.h:16
std::shared_ptr< const PdfCMapEncoding > PdfCMapEncodingConstPtr
Convenience typedef for a const CMap encoding shared ptr.
Definition PdfCMapEncoding.h:18
std::shared_ptr< const PdfBuiltInEncoding > PdfBuiltInEncodingConstPtr
Convenience typedef for a const /Encoding map entry shared ptr.
Definition PdfEncodingMap.h:359
std::shared_ptr< const PdfEncodingMap > PdfEncodingMapConstPtr
Convenience typedef for a const /Encoding map entry shared ptr.
Definition PdfEncodingMap.h:355