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