PoDoFo 1.0.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
PoDoFo::PdfDifferenceEncoding Class Referencefinal

PdfDifferenceEncoding is an encoding, which is based on either the fonts encoding or a predefined encoding and defines differences to this base encoding. More...

#include <PdfDifferenceEncoding.h>

Inheritance diagram for PoDoFo::PdfDifferenceEncoding:
PoDoFo::PdfEncodingMapSimple PoDoFo::PdfEncodingMap

Public Member Functions

 PdfDifferenceEncoding (PdfEncodingMapConstPtr baseEncoding, PdfDifferenceMap differences)
 Create a new PdfDifferenceEncoding which is based on a predefined encoding.
 
const PdfDifferenceMapGetDifferences () const
 Get read-only access to the object containing the actual differences.
 
- Public Member Functions inherited from PoDoFo::PdfEncodingMap
bool TryGetNextCharCode (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCharCode &codeUnit) const
 Try decode next char code from utf8 string range.
 
bool TryGetCharCode (char32_t codePoint, PdfCharCode &codeUnit) const
 Try get next char code unit from unicode code point.
 
bool TryGetCharCode (const unicodeview &codePoints, PdfCharCode &codeUnit) const
 Get the char code from a span of unicode code points.
 
bool TryGetCharCode (unsigned cid, PdfCharCode &codeUnit) const
 Try get next char code unit from cid.
 
bool TryGetNextCID (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCID &cid) const
 Try decode next cid from from encoded string range.
 
bool TryGetNextCodePoints (std::string_view::iterator &it, const std::string_view::iterator &end, CodePointSpan &codePoints) const
 Try decode next code points from encoded string range.
 
bool TryGetCodePoints (const PdfCharCode &codeUnit, CodePointSpan &codePoints) const
 Try get code points from char code unit.
 
PdfEncodingMapType GetType () const
 Type of encoding, may be Simple or CMap.
 
virtual PdfPredefinedEncodingType GetPredefinedEncodingType () const
 True if the encoding is builtin in a font program.
 
virtual bool HasLigaturesSupport () const
 True if the encoding has ligatures support.
 

Static Public Member Functions

static bool TryCreateFromObject (const PdfObject &obj, const PdfFontMetrics &metrics, std::unique_ptr< PdfDifferenceEncoding > &encoding)
 Create a new PdfDifferenceEncoding from an existing object.
 
static std::unique_ptr< PdfDifferenceEncodingCreateFromObject (const PdfObject &obj, const PdfFontMetrics &metrics)
 Create a new PdfDifferenceEncoding from an existing object.
 
static bool TryGetCodePointsFromCharName (const std::string_view &name, CodePointSpan &codepoints)
 Try to convert a standard character name to a unicode code points.
 

Protected Member Functions

void GetBaseEncoding (const PdfEncodingMap *&baseEncoding, const PdfDifferenceMap *&differences) const override
 
void getExportObject (PdfIndirectObjectList &objects, PdfName &name, PdfObject *&obj) const override
 Get an export object that will be used during font init.
 
bool tryGetCharCode (char32_t codePoint, PdfCharCode &codeUnit) const override
 Try get char code unit from unicode code point.
 
bool tryGetCharCodeSpan (const unicodeview &codePoints, PdfCharCode &codeUnit) const override
 Try get next char code unit from a ligature.
 
bool tryGetNextCharCode (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCharCode &codeUnit) const override
 Try get next char code unit from a utf8 string range.
 
bool tryGetCodePoints (const PdfCharCode &codeUnit, const unsigned *cidId, CodePointSpan &codePoints) const override
 Get code points from a code unit.
 
- Protected Member Functions inherited from PoDoFo::PdfEncodingMapSimple
void AppendToUnicodeEntries (OutputStream &stream, charbuff &temp) const override
 During a WriteToUnicodeCMap append "beginbfchar" and "beginbfrange" entries.
 
void AppendCIDMappingEntries (OutputStream &stream, const PdfFont &font, charbuff &temp) const override
 During a PdfEncoding::ExportToFont() append "begincidchar" and/or "begincidrange" entries.
 
const PdfEncodingLimits & GetLimits () const override
 
PdfCIDToGIDMapConstPtr GetIntrinsicCIDToGIDMap (const PdfDictionary &fontDict, const PdfFontMetrics &metrics) const override
 Get an intrisc CID to GID map, such as the ones implied by having a defined /Encoding entry with /TrueType, /Type3 fonts.
 
- Protected Member Functions inherited from PoDoFo::PdfEncodingMap
virtual int GetWModeRaw () const
 A code that specifies the writing mode for any CIDFont with which this map is combined (make sense when this is a CMap)
 
virtual void AppendCodeSpaceRange (OutputStream &stream, charbuff &temp) const
 

Friends

class PdfDifferenceMap
 

Detailed Description

PdfDifferenceEncoding is an encoding, which is based on either the fonts encoding or a predefined encoding and defines differences to this base encoding.

Constructor & Destructor Documentation

◆ PdfDifferenceEncoding()

PdfDifferenceEncoding::PdfDifferenceEncoding ( PdfEncodingMapConstPtr  baseEncoding,
PdfDifferenceMap  differences 
)

Create a new PdfDifferenceEncoding which is based on a predefined encoding.

Parameters
differencethe differences in this encoding
baseEncodingthe base encoding of this font

Member Function Documentation

◆ CreateFromObject()

unique_ptr< PdfDifferenceEncoding > PdfDifferenceEncoding::CreateFromObject ( const PdfObject obj,
const PdfFontMetrics metrics 
)
static

Create a new PdfDifferenceEncoding from an existing object.

Parameters
objobject for the difference encoding
metricsan existing font metrics
Returns
On success, returns a non null PdfDifferenceEncoding
Remarks
throws on failure

◆ GetBaseEncoding()

void PdfDifferenceEncoding::GetBaseEncoding ( const PdfEncodingMap *&  baseEncoding,
const PdfDifferenceMap *&  differences 
) const
overrideprotectedvirtual

Reimplemented from PoDoFo::PdfEncodingMapSimple.

◆ GetDifferences()

const PdfDifferenceMap & PoDoFo::PdfDifferenceEncoding::GetDifferences ( ) const
inline

Get read-only access to the object containing the actual differences.

Returns
the container with the actual differences

◆ getExportObject()

void PdfDifferenceEncoding::getExportObject ( PdfIndirectObjectList objects,
PdfName name,
PdfObject *&  obj 
) const
overrideprotectedvirtual

Get an export object that will be used during font init.

Remarks
Default implementation just throws

Reimplemented from PoDoFo::PdfEncodingMap.

◆ TryCreateFromObject()

bool PdfDifferenceEncoding::TryCreateFromObject ( const PdfObject obj,
const PdfFontMetrics metrics,
std::unique_ptr< PdfDifferenceEncoding > &  encoding 
)
static

Create a new PdfDifferenceEncoding from an existing object.

Parameters
objobject for the difference encoding
metricsan existing font metrics

◆ tryGetCharCode()

bool PdfDifferenceEncoding::tryGetCharCode ( char32_t  codePoint,
PdfCharCode codeUnit 
) const
overrideprotectedvirtual

Try get char code unit from unicode code point.

Implements PoDoFo::PdfEncodingMap.

◆ tryGetCharCodeSpan()

bool PdfDifferenceEncoding::tryGetCharCodeSpan ( const unicodeview ligature,
PdfCharCode codeUnit 
) const
overrideprotectedvirtual

Try get next char code unit from a ligature.

Parameters
ligaturethe span has at least 2 unicode code points
Remarks
Default implementation just throws

Reimplemented from PoDoFo::PdfEncodingMap.

◆ tryGetCodePoints()

bool PdfDifferenceEncoding::tryGetCodePoints ( const PdfCharCode codeUnit,
const unsigned cidId,
CodePointSpan codePoints 
) const
overrideprotectedvirtual

Get code points from a code unit.

Parameters
cidIdCID identifier that if available some encodings can benefit to fetch code points faster

Implements PoDoFo::PdfEncodingMap.

◆ TryGetCodePointsFromCharName()

static bool PoDoFo::PdfDifferenceEncoding::TryGetCodePointsFromCharName ( const std::string_view &  name,
CodePointSpan codepoints 
)
static

Try to convert a standard character name to a unicode code points.

Parameters
namea standard character name. See https://github.com/adobe-type-tools/agl-aglfn/ for known names
codepointsthe returned unicode code points span

◆ tryGetNextCharCode()

bool PdfDifferenceEncoding::tryGetNextCharCode ( std::string_view::iterator &  it,
const std::string_view::iterator &  end,
PdfCharCode codeUnit 
) const
overrideprotectedvirtual

Try get next char code unit from a utf8 string range.

Remarks
Default implementation just throws

Reimplemented from PoDoFo::PdfEncodingMap.


The documentation for this class was generated from the following files: