// Copyright 2016 PDFium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com #ifndef CORE_FPDFAPI_FPDF_FONT_INCLUDE_CPDF_FONTENCODING_H_ #define CORE_FPDFAPI_FPDF_FONT_INCLUDE_CPDF_FONTENCODING_H_ #include "core/fxcrt/include/fx_string.h" #define PDFFONT_ENCODING_BUILTIN 0 #define PDFFONT_ENCODING_WINANSI 1 #define PDFFONT_ENCODING_MACROMAN 2 #define PDFFONT_ENCODING_MACEXPERT 3 #define PDFFONT_ENCODING_STANDARD 4 #define PDFFONT_ENCODING_ADOBE_SYMBOL 5 #define PDFFONT_ENCODING_ZAPFDINGBATS 6 #define PDFFONT_ENCODING_PDFDOC 7 #define PDFFONT_ENCODING_MS_SYMBOL 8 #define PDFFONT_ENCODING_UNICODE 9 FX_DWORD FT_CharCodeFromUnicode(int encoding, FX_WCHAR unicode); FX_WCHAR FT_UnicodeFromCharCode(int encoding, FX_DWORD charcode); FX_WCHAR PDF_UnicodeFromAdobeName(const FX_CHAR* name); CFX_ByteString PDF_AdobeNameFromUnicode(FX_WCHAR unicode); const uint16_t* PDF_UnicodesForPredefinedCharSet(int encoding); const FX_CHAR* PDF_CharNameFromPredefinedCharSet(int encoding, uint8_t charcode); class CPDF_Object; class CPDF_FontEncoding { public: CPDF_FontEncoding(); explicit CPDF_FontEncoding(int PredefinedEncoding); void LoadEncoding(CPDF_Object* pEncoding); FX_BOOL IsIdentical(CPDF_FontEncoding* pAnother) const; FX_WCHAR UnicodeFromCharCode(uint8_t charcode) const { return m_Unicodes[charcode]; } int CharCodeFromUnicode(FX_WCHAR unicode) const; void SetUnicode(uint8_t charcode, FX_WCHAR unicode) { m_Unicodes[charcode] = unicode; } CPDF_Object* Realize(); public: FX_WCHAR m_Unicodes[256]; }; #endif // CORE_FPDFAPI_FPDF_FONT_INCLUDE_CPDF_FONTENCODING_H_