PoDoFo 0.9.20
PoDoFo::PdfEncodingMap Class Referenceabstract

#include <PdfEncodingMap.h>

Inheritance diagram for PoDoFo::PdfEncodingMap:
PoDoFo::PdfEncodingMapBase PoDoFo::PdfEncodingMapOneByte PoDoFo::PdfIdentityEncoding PoDoFo::PdfNullEncodingMap PdfFontBuiltinType1Encoding PoDoFo::PdfBuiltInEncoding PoDoFo::PdfDifferenceEncoding PoDoFo::PdfPredefinedEncoding PoDoFo::PdfStandardEncoding PoDoFo::PdfSymbolEncoding PoDoFo::PdfZapfDingbatsEncoding PoDoFo::PdfMacExpertEncoding PoDoFo::PdfMacRomanEncoding PoDoFo::PdfWinAnsiEncoding

Public Member Functions

bool TryGetNextCharCode (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCharCode &codeUnit) const
 
bool TryGetCharCode (char32_t codePoint, PdfCharCode &codeUnit) const
 
bool TryGetCharCode (const unicodeview &codePoints, PdfCharCode &codeUnit) const
 
bool TryGetCharCode (unsigned cid, PdfCharCode &codeUnit) const
 
bool TryGetNextCID (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCID &cid) const
 
bool TryGetNextCodePoints (std::string_view::iterator &it, const std::string_view::iterator &end, std::vector< char32_t > &codePoints) const
 
bool TryGetCodePoints (const PdfCharCode &codeUnit, std::vector< char32_t > &codePoints) const
 
PdfEncodingMapType GetType () const
 
virtual bool IsBuiltinEncoding () const
 
virtual bool HasLigaturesSupport () const
 
bool TryGetExportObject (PdfIndirectObjectList &objects, PdfName &name, PdfObject *&obj) const
 

Protected Member Functions

virtual bool tryGetNextCharCode (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCharCode &codeUnit) const
 
virtual bool tryGetCharCodeSpan (const unicodeview &ligature, PdfCharCode &codeUnit) const
 
virtual bool tryGetCharCode (char32_t codePoint, PdfCharCode &codeUnit) const =0
 
virtual bool tryGetCodePoints (const PdfCharCode &codeUnit, std::vector< char32_t > &codePoints) const =0
 
virtual void getExportObject (PdfIndirectObjectList &objects, PdfName &name, PdfObject *&obj) const
 
virtual void AppendToUnicodeEntries (OutputStream &stream, charbuff &temp) const =0
 
virtual void AppendCIDMappingEntries (OutputStream &stream, const PdfFont &font, charbuff &temp) const =0
 

Detailed Description

A PdfEncodingMap is a low level interface to convert between utf8 and encoded strings in and to determine correct CID mapping

Remarks
Prefer using PdfEncoding methods instead: don't use this class directly unless you know what you are doing

Member Function Documentation

◆ AppendCIDMappingEntries()

virtual void PoDoFo::PdfEncodingMap::AppendCIDMappingEntries ( OutputStream & stream,
const PdfFont & font,
charbuff & temp ) const
protectedpure virtual

During a PdfEncoding::ExportToFont() append "begincidchar" and/or "begincidrange" entries. See Adobe tecnichal notes #5014\

To be called by PdfEncoding

Implemented in PoDoFo::PdfEncodingMapBase, PoDoFo::PdfEncodingMapOneByte, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfNullEncodingMap.

◆ AppendToUnicodeEntries()

virtual void PoDoFo::PdfEncodingMap::AppendToUnicodeEntries ( OutputStream & stream,
charbuff & temp ) const
protectedpure virtual

During a WriteToUnicodeCMap append "beginbfchar" and "beginbfrange" entries. "bf" stands for Base Font, see Adobe tecnichal notes #5014

To be called by PdfEncoding

Implemented in PoDoFo::PdfEncodingMapBase, PoDoFo::PdfEncodingMapOneByte, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfNullEncodingMap.

◆ getExportObject()

void PdfEncodingMap::getExportObject ( PdfIndirectObjectList & objects,
PdfName & name,
PdfObject *& obj ) const
protectedvirtual

Get an export object that will be used during font init

Remarks
Default implementation just throws

Reimplemented in PdfFontBuiltinType1Encoding, PoDoFo::PdfDifferenceEncoding, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedEncoding.

◆ GetType()

PdfEncodingMapType PoDoFo::PdfEncodingMap::GetType ( ) const
inline

Type of encoding, may be Simple or CMap

Simple: built-in, difference and Type1 implicit encodings CMap: proper CMap or PdfIndentityEncoding and other predefined CMap names as well (ISO 32000-1:2008 Table 118 Predefined CJK CMap names, currently not implemented)

Remarks
This is a low level information. Use PdfEncoding::IsSimpleEncoding() to dermine if the encoding is really a simple one

◆ HasLigaturesSupport()

bool PdfEncodingMap::HasLigaturesSupport ( ) const
virtual

True if the encoding has ligatures support

◆ IsBuiltinEncoding()

bool PdfEncodingMap::IsBuiltinEncoding ( ) const
virtual

True if the encoding is builtin in a font program

Reimplemented in PdfFontBuiltinType1Encoding.

◆ TryGetCharCode() [1/3]

bool PdfEncodingMap::TryGetCharCode ( char32_t codePoint,
PdfCharCode & codeUnit ) const

Try get next char code unit from unicode code point

◆ TryGetCharCode() [2/3]

bool PdfEncodingMap::TryGetCharCode ( const unicodeview & codePoints,
PdfCharCode & codeUnit ) const

Get the char code from a span of unicode code points

Parameters
codePointsit can be a single code point or a ligature
Returns
true if the code points match a character code

◆ TryGetCharCode() [3/3]

bool PdfEncodingMap::TryGetCharCode ( unsigned cid,
PdfCharCode & codeUnit ) const

Try get next char code unit from cid

◆ tryGetCharCode()

virtual bool PoDoFo::PdfEncodingMap::tryGetCharCode ( char32_t codePoint,
PdfCharCode & codeUnit ) const
protectedpure virtual

◆ tryGetCharCodeSpan()

bool PdfEncodingMap::tryGetCharCodeSpan ( const unicodeview & ligature,
PdfCharCode & codeUnit ) const
protectedvirtual

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 in PoDoFo::PdfEncodingMapBase.

◆ TryGetCodePoints()

bool PdfEncodingMap::TryGetCodePoints ( const PdfCharCode & codeUnit,
std::vector< char32_t > & codePoints ) const

Try get code points from char code unit

Remarks
it will iterate available code sizes

◆ tryGetCodePoints()

virtual bool PoDoFo::PdfEncodingMap::tryGetCodePoints ( const PdfCharCode & codeUnit,
std::vector< char32_t > & codePoints ) const
protectedpure virtual

Get code points from a code unit

Parameters
wantCIDtrue requires mapping to CID identifier, false for Unicode code points

Implemented in PoDoFo::PdfBuiltInEncoding, PoDoFo::PdfDifferenceEncoding, PoDoFo::PdfEncodingMapBase, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfNullEncodingMap.

◆ TryGetExportObject()

bool PdfEncodingMap::TryGetExportObject ( PdfIndirectObjectList & objects,
PdfName & name,
PdfObject *& obj ) const

Get an export object that will be used during font init

Parameters
objectslist to use to create document objects
namename to use
objif not null the object will be used instead

◆ TryGetNextCharCode()

bool PdfEncodingMap::TryGetNextCharCode ( std::string_view::iterator & it,
const std::string_view::iterator & end,
PdfCharCode & codeUnit ) const

Try decode next char code from utf8 string range

◆ tryGetNextCharCode()

bool PdfEncodingMap::tryGetNextCharCode ( std::string_view::iterator & it,
const std::string_view::iterator & end,
PdfCharCode & codeUnit ) const
protectedvirtual

Try get next char code unit from a utf8 string range

Remarks
Default implementation just throws

Reimplemented in PoDoFo::PdfEncodingMapBase.

◆ TryGetNextCID()

bool PdfEncodingMap::TryGetNextCID ( std::string_view::iterator & it,
const std::string_view::iterator & end,
PdfCID & cid ) const

Try decode next cid from from encoded string range

◆ TryGetNextCodePoints()

bool PdfEncodingMap::TryGetNextCodePoints ( std::string_view::iterator & it,
const std::string_view::iterator & end,
std::vector< char32_t > & codePoints ) const

Try decode next code points from encoded string range