| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 #ifndef CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 6 #ifndef CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| 7 #define CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 7 #define CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| 8 | 8 |
| 9 typedef void* FXFT_Library; | 9 typedef void* FXFT_Library; |
| 10 class CPDF_CMapManager | 10 class CPDF_CMapManager |
| 11 { | 11 { |
| 12 public: | 12 public: |
| 13 CPDF_CMapManager(); | 13 CPDF_CMapManager(); |
| 14 ~CPDF_CMapManager(); | 14 ~CPDF_CMapManager(); |
| 15 void*» » » » GetPackage(FX_BOOL bPrompt); | 15 void*» » » » GetPackage(bool bPrompt); |
| 16 CPDF_CMap*» » » » GetPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); | 16 CPDF_CMap*» » » » GetPredefinedCMap(const CFX_ByteString&
name, bool bPrompt); |
| 17 CPDF_CID2UnicodeMap*» GetCID2UnicodeMap(int charset, FX_BOOL bPrompt); | 17 CPDF_CID2UnicodeMap*» GetCID2UnicodeMap(int charset, bool bPrompt); |
| 18 void ReloadAll(); | 18 void ReloadAll(); |
| 19 private: | 19 private: |
| 20 CPDF_CMap*» » » » LoadPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); | 20 CPDF_CMap*» » » » LoadPredefinedCMap(const CFX_ByteString&
name, bool bPrompt); |
| 21 CPDF_CID2UnicodeMap*» LoadCID2UnicodeMap(int charset, FX_BOOL bPrompt)
; | 21 CPDF_CID2UnicodeMap*» LoadCID2UnicodeMap(int charset, bool bPrompt); |
| 22 void» » » » » DropAll(FX_BOOL bReload); | 22 void» » » » » DropAll(bool bReload); |
| 23 FX_BOOL» » » » » m_bPrompted; | 23 bool» » » » » m_bPrompted; |
| 24 CFX_MapByteStringToPtr m_CMaps; | 24 CFX_MapByteStringToPtr m_CMaps; |
| 25 CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; | 25 CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; |
| 26 }; | 26 }; |
| 27 class CPDF_FontGlobals | 27 class CPDF_FontGlobals |
| 28 { | 28 { |
| 29 public: | 29 public: |
| 30 CPDF_FontGlobals(); | 30 CPDF_FontGlobals(); |
| 31 ~CPDF_FontGlobals(); | 31 ~CPDF_FontGlobals(); |
| 32 void ClearAll(); | 32 void ClearAll(); |
| 33 void Clear(void* key); | 33 void Clear(void* key); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 49 struct _CMap_CodeRange { | 49 struct _CMap_CodeRange { |
| 50 int m_CharSize; | 50 int m_CharSize; |
| 51 uint8_t m_Lower[4]; | 51 uint8_t m_Lower[4]; |
| 52 uint8_t m_Upper[4]; | 52 uint8_t m_Upper[4]; |
| 53 }; | 53 }; |
| 54 class CPDF_CMapParser | 54 class CPDF_CMapParser |
| 55 { | 55 { |
| 56 public: | 56 public: |
| 57 CPDF_CMapParser(); | 57 CPDF_CMapParser(); |
| 58 ~CPDF_CMapParser() {} | 58 ~CPDF_CMapParser() {} |
| 59 FX_BOOL» Initialize(CPDF_CMap*); | 59 bool» Initialize(CPDF_CMap*); |
| 60 void ParseWord(const CFX_ByteStringC& str); | 60 void ParseWord(const CFX_ByteStringC& str); |
| 61 CFX_BinaryBuf m_AddMaps; | 61 CFX_BinaryBuf m_AddMaps; |
| 62 private: | 62 private: |
| 63 CPDF_CMap* m_pCMap; | 63 CPDF_CMap* m_pCMap; |
| 64 int m_Status; | 64 int m_Status; |
| 65 int m_CodeSeq; | 65 int m_CodeSeq; |
| 66 FX_DWORD m_CodePoints[4]; | 66 FX_DWORD m_CodePoints[4]; |
| 67 CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges; | 67 CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges; |
| 68 CFX_ByteString m_Registry, m_Ordering, m_Supplement; | 68 CFX_ByteString m_Registry, m_Ordering, m_Supplement; |
| 69 CFX_ByteString m_LastWord; | 69 CFX_ByteString m_LastWord; |
| 70 }; | 70 }; |
| 71 #define CIDCODING_UNKNOWN 0 | 71 #define CIDCODING_UNKNOWN 0 |
| 72 #define CIDCODING_GB 1 | 72 #define CIDCODING_GB 1 |
| 73 #define CIDCODING_BIG5 2 | 73 #define CIDCODING_BIG5 2 |
| 74 #define CIDCODING_JIS 3 | 74 #define CIDCODING_JIS 3 |
| 75 #define CIDCODING_KOREA 4 | 75 #define CIDCODING_KOREA 4 |
| 76 #define CIDCODING_UCS2 5 | 76 #define CIDCODING_UCS2 5 |
| 77 #define CIDCODING_CID 6 | 77 #define CIDCODING_CID 6 |
| 78 #define CIDCODING_UTF16 7 | 78 #define CIDCODING_UTF16 7 |
| 79 class CPDF_CMap | 79 class CPDF_CMap |
| 80 { | 80 { |
| 81 public: | 81 public: |
| 82 CPDF_CMap(); | 82 CPDF_CMap(); |
| 83 FX_BOOL» » » » » LoadPredefined(CPDF_CMapManager*
pMgr, const FX_CHAR* name, FX_BOOL bPromptCJK); | 83 bool» » » » » LoadPredefined(CPDF_CMapManager*
pMgr, const FX_CHAR* name, bool bPromptCJK); |
| 84 FX_BOOL» » » » » LoadEmbedded(const uint8_t* pDat
a, FX_DWORD dwSize); | 84 bool» » » » » LoadEmbedded(const uint8_t* pDat
a, FX_DWORD dwSize); |
| 85 void Release(); | 85 void Release(); |
| 86 FX_BOOL» » » » » IsLoaded() const | 86 bool» » » » » IsLoaded() const |
| 87 { | 87 { |
| 88 return m_bLoaded; | 88 return m_bLoaded; |
| 89 } | 89 } |
| 90 int GetCharset() | 90 int GetCharset() |
| 91 { | 91 { |
| 92 return m_Charset; | 92 return m_Charset; |
| 93 } | 93 } |
| 94 FX_BOOL» » » » » IsVertWriting() const | 94 bool» » » » » IsVertWriting() const |
| 95 { | 95 { |
| 96 return m_bVertical; | 96 return m_bVertical; |
| 97 } | 97 } |
| 98 FX_WORD CIDFromCharCode(FX_DWORD charcod
e) const; | 98 FX_WORD CIDFromCharCode(FX_DWORD charcod
e) const; |
| 99 FX_DWORD CharCodeFromCID(FX_WORD CID) const; | 99 FX_DWORD CharCodeFromCID(FX_WORD CID) const; |
| 100 int GetCharSize(FX_DWORD charcode) c
onst; | 100 int GetCharSize(FX_DWORD charcode) c
onst; |
| 101 FX_DWORD GetNextChar(const FX_CHAR* pString, int
nStrLen, int& offset) const; | 101 FX_DWORD GetNextChar(const FX_CHAR* pString, int
nStrLen, int& offset) const; |
| 102 int CountChar(const FX_CHAR* pString
, int size) const; | 102 int CountChar(const FX_CHAR* pString
, int size) const; |
| 103 int AppendChar(FX_CHAR* str, FX_DWOR
D charcode) const; | 103 int AppendChar(FX_CHAR* str, FX_DWOR
D charcode) const; |
| 104 typedef enum {OneByte, TwoBytes, MixedTwoBytes, MixedFourBytes} CodingScheme
; | 104 typedef enum {OneByte, TwoBytes, MixedTwoBytes, MixedFourBytes} CodingScheme
; |
| 105 protected: | 105 protected: |
| 106 ~CPDF_CMap(); | 106 ~CPDF_CMap(); |
| 107 friend class CPDF_CMapParser; | 107 friend class CPDF_CMapParser; |
| 108 friend class CPDF_CMapManager; | 108 friend class CPDF_CMapManager; |
| 109 friend class CPDF_CIDFont; | 109 friend class CPDF_CIDFont; |
| 110 protected: | 110 protected: |
| 111 CFX_ByteString m_PredefinedCMap; | 111 CFX_ByteString m_PredefinedCMap; |
| 112 FX_BOOL» » » » » m_bVertical; | 112 bool» » » » » m_bVertical; |
| 113 int m_Charset, m_Coding; | 113 int m_Charset, m_Coding; |
| 114 CodingScheme m_CodingScheme; | 114 CodingScheme m_CodingScheme; |
| 115 int m_nCodeRanges; | 115 int m_nCodeRanges; |
| 116 uint8_t* m_pLeadingBytes; | 116 uint8_t* m_pLeadingBytes; |
| 117 FX_WORD* m_pMapping; | 117 FX_WORD* m_pMapping; |
| 118 uint8_t* m_pAddMapping; | 118 uint8_t* m_pAddMapping; |
| 119 FX_BOOL» » » » » m_bLoaded; | 119 bool» » » » » m_bLoaded; |
| 120 const FXCMAP_CMap* m_pEmbedMap; | 120 const FXCMAP_CMap* m_pEmbedMap; |
| 121 CPDF_CMap* m_pUseMap; | 121 CPDF_CMap* m_pUseMap; |
| 122 }; | 122 }; |
| 123 class CPDF_PredefinedCMap | 123 class CPDF_PredefinedCMap |
| 124 { | 124 { |
| 125 public: | 125 public: |
| 126 const FX_CHAR* m_pName; | 126 const FX_CHAR* m_pName; |
| 127 int m_Charset; | 127 int m_Charset; |
| 128 int m_Coding; | 128 int m_Coding; |
| 129 CPDF_CMap::CodingScheme m_CodingScheme; | 129 CPDF_CMap::CodingScheme m_CodingScheme; |
| 130 FX_DWORD m_LeadingSegCount; | 130 FX_DWORD m_LeadingSegCount; |
| 131 uint8_t m_LeadingSegs[4]; | 131 uint8_t m_LeadingSegs[4]; |
| 132 }; | 132 }; |
| 133 typedef struct _FileHeader { | 133 typedef struct _FileHeader { |
| 134 uint8_t btTag[4]; | 134 uint8_t btTag[4]; |
| 135 uint8_t btVersion; | 135 uint8_t btVersion; |
| 136 uint8_t btFormat; | 136 uint8_t btFormat; |
| 137 uint8_t btReserved1[2]; | 137 uint8_t btReserved1[2]; |
| 138 FX_DWORD dwStartIndex; | 138 FX_DWORD dwStartIndex; |
| 139 FX_DWORD dwEndIndex; | 139 FX_DWORD dwEndIndex; |
| 140 FX_DWORD dwDataSize; | 140 FX_DWORD dwDataSize; |
| 141 FX_DWORD dwDataOffset; | 141 FX_DWORD dwDataOffset; |
| 142 FX_DWORD dwRecordSize; | 142 FX_DWORD dwRecordSize; |
| 143 } FXMP_FILEHEADER; | 143 } FXMP_FILEHEADER; |
| 144 class CPDF_CID2UnicodeMap | 144 class CPDF_CID2UnicodeMap |
| 145 { | 145 { |
| 146 public: | 146 public: |
| 147 CPDF_CID2UnicodeMap(); | 147 CPDF_CID2UnicodeMap(); |
| 148 ~CPDF_CID2UnicodeMap(); | 148 ~CPDF_CID2UnicodeMap(); |
| 149 FX_BOOL» » Initialize(); | 149 bool» » Initialize(); |
| 150 FX_BOOL» » IsLoaded(); | 150 bool» » IsLoaded(); |
| 151 void» » Load(CPDF_CMapManager* pMgr, int charset, FX_BOOL bPromp
tCJK); | 151 void» » Load(CPDF_CMapManager* pMgr, int charset, bool bPromptCJ
K); |
| 152 FX_WCHAR UnicodeFromCID(FX_WORD CID); | 152 FX_WCHAR UnicodeFromCID(FX_WORD CID); |
| 153 protected: | 153 protected: |
| 154 int m_Charset; | 154 int m_Charset; |
| 155 const FX_WORD* m_pEmbeddedMap; | 155 const FX_WORD* m_pEmbeddedMap; |
| 156 FX_DWORD m_EmbeddedCount; | 156 FX_DWORD m_EmbeddedCount; |
| 157 }; | 157 }; |
| 158 class CPDF_ToUnicodeMap | 158 class CPDF_ToUnicodeMap |
| 159 { | 159 { |
| 160 public: | 160 public: |
| 161 void Load(CPDF_Stream* pStream); | 161 void Load(CPDF_Stream* pStream); |
| 162 CFX_WideString Lookup(FX_DWORD charcode); | 162 CFX_WideString Lookup(FX_DWORD charcode); |
| 163 FX_DWORD ReverseLookup(FX_WCHAR unicode); | 163 FX_DWORD ReverseLookup(FX_WCHAR unicode); |
| 164 protected: | 164 protected: |
| 165 CFX_CMapDWordToDWord m_Map; | 165 CFX_CMapDWordToDWord m_Map; |
| 166 CPDF_CID2UnicodeMap* m_pBaseMap; | 166 CPDF_CID2UnicodeMap* m_pBaseMap; |
| 167 CFX_WideTextBuf m_MultiCharBuf; | 167 CFX_WideTextBuf m_MultiCharBuf; |
| 168 }; | 168 }; |
| 169 class CPDF_FontCharMap : public CFX_CharMap | 169 class CPDF_FontCharMap : public CFX_CharMap |
| 170 { | 170 { |
| 171 public: | 171 public: |
| 172 CPDF_FontCharMap(CPDF_Font* pFont); | 172 CPDF_FontCharMap(CPDF_Font* pFont); |
| 173 CPDF_Font* m_pFont; | 173 CPDF_Font* m_pFont; |
| 174 }; | 174 }; |
| 175 | 175 |
| 176 #endif // CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ | 176 #endif // CORE_SRC_FPDFAPI_FPDF_FONT_FONT_INT_H_ |
| OLD | NEW |