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 |