PoDoFo 1.2.0
Loading...
Searching...
No Matches
PdfCMapEncoding.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_CMAP_ENCODING_H
6#define PDF_CMAP_ENCODING_H
7
8#include "PdfEncodingMap.h"
9
10namespace PoDoFo
11{
12 class PdfCMapEncoding;
13
15 using PdfCMapEncodingConstPtr = std::shared_ptr<const PdfCMapEncoding>;
16
17 class PODOFO_API PdfCMapEncoding final : public PdfEncodingMapBase
18 {
19 friend class PdfEncodingMapFactory;
20 PODOFO_PRIVATE_FRIEND(class PdfCMapEncodingFactory);
21
22 public:
24 PdfCMapEncoding(PdfCharCodeMap&& map);
25 PdfCMapEncoding(PdfCharCodeMap&& map, const PdfName& name, const PdfCIDSystemInfo& info, PdfWModeKind wMode);
26
27 static PdfCMapEncoding Parse(const std::string_view& filepath);
28 static PdfCMapEncoding Parse(InputStreamDevice& device);
29
30 private:
31 PdfCMapEncoding(PdfCharCodeMap&& map, bool isPredefined, const PdfName& name,
32 const PdfCIDSystemInfo& info, int wmode, const PdfEncodingLimits& limits);
33
34 public:
35 bool HasLigaturesSupport() const override;
36 const PdfEncodingLimits& GetLimits() const override;
37 int GetWModeRaw() const override;
38 PdfWModeKind GetWMode() const;
39 PdfPredefinedEncodingType GetPredefinedEncodingType() const override;
40
41 public:
42 const PdfName& GetName() const { return m_Name; }
43 const PdfCIDSystemInfo& GetCIDSystemInfo() const { return m_CIDSystemInfo; }
44
45 private:
46 bool m_isPredefined;
47 PdfName m_Name;
48 PdfCIDSystemInfo m_CIDSystemInfo;
49 int m_WMode;
50 PdfEncodingLimits m_Limits;
51 };
52}
53
54#endif // PDF_CMAP_ENCODING_H
This class represents an input device It optionally supports peeking.
Definition InputDevice.h:19
A bidirectional map from character code units to unspecified code points.
Definition PdfCharCodeMap.h:72
Basic PdfEncodingMap implementation using a PdfCharCodeMap.
Definition PdfEncodingMap.h:180
This factory creates a PdfEncodingMap.
Definition PdfEncodingMapFactory.h:15
This class represents a PdfName.
Definition PdfName.h:21
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
PdfPredefinedEncodingType
Definition PdfDeclarations.h:121