PoDoFo 1.0.0-dev
|
A PdfEncodingMap is a low level interface to convert between utf8 and encoded strings in and to determine correct CID mapping. More...
#include <PdfEncodingMap.h>
Public Member Functions | |
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. | |
virtual const PdfEncodingLimits & | GetLimits () const =0 |
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. | |
Protected Member Functions | |
virtual bool | tryGetNextCharCode (std::string_view::iterator &it, const std::string_view::iterator &end, PdfCharCode &codeUnit) const |
Try get next char code unit from a utf8 string range. | |
virtual bool | tryGetCharCodeSpan (const unicodeview &ligature, PdfCharCode &codeUnit) const |
Try get next char code unit from a ligature. | |
virtual bool | tryGetCharCode (char32_t codePoint, PdfCharCode &codeUnit) const =0 |
Try get char code unit from unicode code point. | |
virtual bool | tryGetCodePoints (const PdfCharCode &codeUnit, const unsigned *cidId, CodePointSpan &codePoints) const =0 |
Get code points from a code unit. | |
virtual void | getExportObject (PdfIndirectObjectList &objects, PdfName &name, PdfObject *&obj) const |
Get an export object that will be used during font init. | |
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 |
virtual void | AppendToUnicodeEntries (OutputStream &stream, charbuff &temp) const =0 |
During a WriteToUnicodeCMap append "beginbfchar" and "beginbfrange" entries. | |
virtual void | AppendCIDMappingEntries (OutputStream &stream, const PdfFont &font, charbuff &temp) const =0 |
During a PdfEncoding::ExportToFont() append "begincidchar" and/or "begincidrange" entries. | |
Static Protected Member Functions | |
static void | AppendUTF16CodeTo (OutputStream &stream, char32_t codePoint, std::u16string &u16tmp) |
static void | AppendUTF16CodeTo (OutputStream &stream, const unicodeview &codePoints, std::u16string &u16tmp) |
Friends | |
class | PdfEncoding |
class | PdfEncodingMapBase |
class | PdfEncodingMapOneByte |
class | PdfDifferenceEncoding |
class | PdfNullEncodingMap |
class | PdfIdentityEncoding |
class | PdfPredefinedToUnicodeCMap |
class | PdfStringScanContext |
A PdfEncodingMap is a low level interface to convert between utf8 and encoded strings in and to determine correct CID mapping.
|
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::PdfNullEncodingMap, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedToUnicodeCMap.
|
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::PdfNullEncodingMap, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedToUnicodeCMap.
|
protectedvirtual |
Get an export object that will be used during font init.
Reimplemented in PoDoFo::PdfDifferenceEncoding, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedEncoding.
|
virtual |
True if the encoding is builtin in a font program.
Reimplemented in PoDoFo::PdfIdentityEncoding.
|
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)
|
protectedvirtual |
A code that specifies the writing mode for any CIDFont with which this map is combined (make sense when this is a CMap)
|
protectedpure virtual |
Try get char code unit from unicode code point.
Implemented in PoDoFo::PdfDifferenceEncoding, PoDoFo::PdfEncodingMapBase, PoDoFo::PdfBuiltInEncoding, PoDoFo::PdfNullEncodingMap, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedToUnicodeCMap.
bool PdfEncodingMap::TryGetCharCode | ( | const unicodeview & | codePoints, |
PdfCharCode & | codeUnit | ||
) | const |
Get the char code from a span of unicode code points.
codePoints | it can be a single code point or a ligature |
|
protectedvirtual |
Try get next char code unit from a ligature.
ligature | the span has at least 2 unicode code points |
Reimplemented in PoDoFo::PdfEncodingMapBase, and PoDoFo::PdfPredefinedToUnicodeCMap.
bool PdfEncodingMap::TryGetCodePoints | ( | const PdfCharCode & | codeUnit, |
CodePointSpan & | codePoints | ||
) | const |
Try get code points from char code unit.
|
protectedpure virtual |
Get code points from a code unit.
cidId | CID identifier that if available some encodings can benefit to fetch code points faster |
Implemented in PoDoFo::PdfDifferenceEncoding, PoDoFo::PdfEncodingMapBase, PoDoFo::PdfBuiltInEncoding, PoDoFo::PdfNullEncodingMap, PoDoFo::PdfIdentityEncoding, and PoDoFo::PdfPredefinedToUnicodeCMap.
|
protectedvirtual |
Try get next char code unit from a utf8 string range.
Reimplemented in PoDoFo::PdfEncodingMapBase.