Q: I'm unable to map PDF character codes to equivalent Windows
TrueType character codes when the Font is a embedded Type 0 font and
the encoding= Identity-H and font name= Windings true type font.
My code in my text element parser looks like this:
const UString* utext = element.GetTextString();
wchar_t* ut = (wchar_t*)utext->CStr();
In my example PDF (attached), the first character is = '0xE039' and I
need to map this to the character '0x00FC' in the Wingding font.
Can you give me some tips as how i can determine correct character
mappings for this case?
A: GetTextString() is returning Unicode representation for the text
run. In this case Windings font is mapped to private Unicode area
(0xE000+) because it doesn't have mapping in the public area.
You can obtain character codes used within a text run using
element.GetCharIterator() [itr -> char_code] or element.GetTextData().
In PDF, a character code is used to select a glyph within a font (or
to map a character to its Unicode representation). Given a character
code and font encoding information you have all information required
to find a glyph in a font. Btw. PDFNet offers a direct way to obtain
glyph data using font.GetGlyphPath(charcode, ...).