PoDoFo  1.0.0-dev
PdfIdentityEncoding.h
1 
7 #ifndef PDF_IDENTITY_ENCODING_H
8 #define PDF_IDENTITY_ENCODING_H
9 
10 #include "PdfEncodingMap.h"
11 #include "PdfObject.h"
12 
13 namespace PoDoFo {
14 
17 enum class PdfIdentityOrientation : uint8_t
18 {
19  Unkwnown = 0,
20  Horizontal, // Corresponds to /Identity-H
21  Vertical, // Corresponds to /Identity-V
22 };
23 
30 class PODOFO_API PdfIdentityEncoding final : public PdfEncodingMap
31 {
32  friend class PdfEncodingMapFactory;
33 
34 public:
40  PdfIdentityEncoding(unsigned char codeSpaceSize);
41 
46 
47 protected:
48  bool tryGetCharCode(char32_t codePoint, PdfCharCode& codeUnit) const override;
49  bool tryGetCodePoints(const PdfCharCode& codeUnit, const unsigned* cidId, CodePointSpan& codePoints) const override;
50  void getExportObject(PdfIndirectObjectList& objects, PdfName& name, PdfObject*& obj) const override;
51  void AppendToUnicodeEntries(OutputStream& stream, charbuff& temp) const override;
52  void AppendCIDMappingEntries(OutputStream& stream, const PdfFont& font, charbuff& temp) const override;
53 
54 public:
55  const PdfEncodingLimits& GetLimits() const override;
56 
57  PdfPredefinedEncodingType GetPredefinedEncodingType() const override;
58 
59 private:
60  PdfIdentityEncoding(PdfEncodingMapType type, const PdfEncodingLimits& limits,
61  PdfIdentityOrientation orientation);
62 
63 private:
64  PdfEncodingLimits m_Limits;
65  PdfIdentityOrientation m_orientation;
66 };
67 
68 };
69 
70 #endif // PDF_IDENTITY_ENCODING_H
A memory owning immutable block of code points, optimized for small segments as up to 3 elements can ...
Definition: PdfCharCodeMap.h:29
An interface for writing blocks of data to a data source.
Definition: OutputStream.h:18
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:28
Before you can draw text on a PDF document, you have to create a font object first.
Definition: PdfFont.h:49
PdfIdentityEncoding is a two-byte encoding which can be used with TrueType fonts to represent all cha...
Definition: PdfIdentityEncoding.h:31
A list of PdfObjects that constitutes the indirect object list of the document The PdfParser will rea...
Definition: PdfIndirectObjectList.h:30
This class represents a PdfName.
Definition: PdfName.h:24
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
PdfIdentityOrientation
Orientation for predefined CID identity encodings.
Definition: PdfIdentityEncoding.h:18
PdfEncodingMapType
Definition: PdfDeclarations.h:113
PdfPredefinedEncodingType
Definition: PdfDeclarations.h:120
A character code unit.
Definition: PdfEncodingCommon.h:20