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 | 6 |
7 typedef void* FXFT_Library; | 7 typedef void* FXFT_Library; |
8 class CPDF_CMapManager : public CFX_Object | 8 class CPDF_CMapManager |
9 { | 9 { |
10 public: | 10 public: |
11 CPDF_CMapManager(); | 11 CPDF_CMapManager(); |
12 ~CPDF_CMapManager(); | 12 ~CPDF_CMapManager(); |
13 FX_LPVOID GetPackage(FX_BOOL bPrompt); | 13 FX_LPVOID GetPackage(FX_BOOL bPrompt); |
14 CPDF_CMap* GetPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); | 14 CPDF_CMap* GetPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); |
15 CPDF_CID2UnicodeMap* GetCID2UnicodeMap(int charset, FX_BOOL bPrompt); | 15 CPDF_CID2UnicodeMap* GetCID2UnicodeMap(int charset, FX_BOOL bPrompt); |
16 void ReloadAll(); | 16 void ReloadAll(); |
17 private: | 17 private: |
18 CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); | 18 CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString&
name, FX_BOOL bPrompt); |
19 CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(int charset, FX_BOOL bPrompt)
; | 19 CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(int charset, FX_BOOL bPrompt)
; |
20 void DropAll(FX_BOOL bReload); | 20 void DropAll(FX_BOOL bReload); |
21 FX_BOOL m_bPrompted; | 21 FX_BOOL m_bPrompted; |
22 CFX_MapByteStringToPtr m_CMaps; | 22 CFX_MapByteStringToPtr m_CMaps; |
23 CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; | 23 CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; |
24 }; | 24 }; |
25 class CPDF_FontGlobals : public CFX_Object | 25 class CPDF_FontGlobals |
26 { | 26 { |
27 public: | 27 public: |
28 CPDF_FontGlobals(); | 28 CPDF_FontGlobals(); |
29 ~CPDF_FontGlobals(); | 29 ~CPDF_FontGlobals(); |
30 void ClearAll(); | 30 void ClearAll(); |
31 void Clear(void* key); | 31 void Clear(void* key); |
32 CPDF_Font* Find(void* key, int index); | 32 CPDF_Font* Find(void* key, int index); |
33 void Set(void* key, int index, CPDF_Font* pFo
nt); | 33 void Set(void* key, int index, CPDF_Font* pFo
nt); |
34 CFX_MapPtrToPtr m_pStockMap; | 34 CFX_MapPtrToPtr m_pStockMap; |
35 CPDF_CMapManager m_CMapManager; | 35 CPDF_CMapManager m_CMapManager; |
36 struct { | 36 struct { |
37 const struct FXCMAP_CMap* m_pMapList; | 37 const struct FXCMAP_CMap* m_pMapList; |
38 int m_Count; | 38 int m_Count; |
39 } m_EmbeddedCharsets[NUMBER_OF_CIDSETS]; | 39 } m_EmbeddedCharsets[NUMBER_OF_CIDSETS]; |
40 struct { | 40 struct { |
41 const FX_WORD* m_pMap; | 41 const FX_WORD* m_pMap; |
42 int m_Count; | 42 int m_Count; |
43 } m_EmbeddedToUnicodes[NUMBER_OF_CIDSETS]; | 43 } m_EmbeddedToUnicodes[NUMBER_OF_CIDSETS]; |
44 FX_LPBYTE m_pContrastRamps; | 44 FX_LPBYTE m_pContrastRamps; |
45 }; | 45 }; |
46 struct _CMap_CodeRange { | 46 struct _CMap_CodeRange { |
47 int m_CharSize; | 47 int m_CharSize; |
48 FX_BYTE m_Lower[4]; | 48 FX_BYTE m_Lower[4]; |
49 FX_BYTE m_Upper[4]; | 49 FX_BYTE m_Upper[4]; |
50 }; | 50 }; |
51 class CPDF_CMapParser : public CFX_Object | 51 class CPDF_CMapParser |
52 { | 52 { |
53 public: | 53 public: |
54 CPDF_CMapParser(); | 54 CPDF_CMapParser(); |
55 ~CPDF_CMapParser() {} | 55 ~CPDF_CMapParser() {} |
56 FX_BOOL Initialize(CPDF_CMap*); | 56 FX_BOOL Initialize(CPDF_CMap*); |
57 void ParseWord(FX_BSTR str); | 57 void ParseWord(FX_BSTR str); |
58 CFX_BinaryBuf m_AddMaps; | 58 CFX_BinaryBuf m_AddMaps; |
59 private: | 59 private: |
60 CPDF_CMap* m_pCMap; | 60 CPDF_CMap* m_pCMap; |
61 int m_Status; | 61 int m_Status; |
62 int m_CodeSeq; | 62 int m_CodeSeq; |
63 FX_DWORD m_CodePoints[4]; | 63 FX_DWORD m_CodePoints[4]; |
64 CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges; | 64 CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges; |
65 CFX_ByteString m_Registry, m_Ordering, m_Supplement; | 65 CFX_ByteString m_Registry, m_Ordering, m_Supplement; |
66 CFX_ByteString m_LastWord; | 66 CFX_ByteString m_LastWord; |
67 }; | 67 }; |
68 #define CIDCODING_UNKNOWN 0 | 68 #define CIDCODING_UNKNOWN 0 |
69 #define CIDCODING_GB 1 | 69 #define CIDCODING_GB 1 |
70 #define CIDCODING_BIG5 2 | 70 #define CIDCODING_BIG5 2 |
71 #define CIDCODING_JIS 3 | 71 #define CIDCODING_JIS 3 |
72 #define CIDCODING_KOREA 4 | 72 #define CIDCODING_KOREA 4 |
73 #define CIDCODING_UCS2 5 | 73 #define CIDCODING_UCS2 5 |
74 #define CIDCODING_CID 6 | 74 #define CIDCODING_CID 6 |
75 #define CIDCODING_UTF16 7 | 75 #define CIDCODING_UTF16 7 |
76 class CPDF_CMap : public CFX_Object | 76 class CPDF_CMap |
77 { | 77 { |
78 public: | 78 public: |
79 CPDF_CMap(); | 79 CPDF_CMap(); |
80 FX_BOOL LoadPredefined(CPDF_CMapManager*
pMgr, const FX_CHAR* name, FX_BOOL bPromptCJK); | 80 FX_BOOL LoadPredefined(CPDF_CMapManager*
pMgr, const FX_CHAR* name, FX_BOOL bPromptCJK); |
81 FX_BOOL LoadEmbedded(FX_LPCBYTE pData, F
X_DWORD dwSize); | 81 FX_BOOL LoadEmbedded(FX_LPCBYTE pData, F
X_DWORD dwSize); |
82 void Release(); | 82 void Release(); |
83 FX_BOOL IsLoaded() const | 83 FX_BOOL IsLoaded() const |
84 { | 84 { |
85 return m_bLoaded; | 85 return m_bLoaded; |
86 } | 86 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 FX_BYTE btTag[4]; | 131 FX_BYTE btTag[4]; |
132 FX_BYTE btVersion; | 132 FX_BYTE btVersion; |
133 FX_BYTE btFormat; | 133 FX_BYTE btFormat; |
134 FX_BYTE btReserved1[2]; | 134 FX_BYTE btReserved1[2]; |
135 FX_DWORD dwStartIndex; | 135 FX_DWORD dwStartIndex; |
136 FX_DWORD dwEndIndex; | 136 FX_DWORD dwEndIndex; |
137 FX_DWORD dwDataSize; | 137 FX_DWORD dwDataSize; |
138 FX_DWORD dwDataOffset; | 138 FX_DWORD dwDataOffset; |
139 FX_DWORD dwRecordSize; | 139 FX_DWORD dwRecordSize; |
140 } FXMP_FILEHEADER; | 140 } FXMP_FILEHEADER; |
141 class CPDF_CID2UnicodeMap : public CFX_Object | 141 class CPDF_CID2UnicodeMap |
142 { | 142 { |
143 public: | 143 public: |
144 CPDF_CID2UnicodeMap(); | 144 CPDF_CID2UnicodeMap(); |
145 ~CPDF_CID2UnicodeMap(); | 145 ~CPDF_CID2UnicodeMap(); |
146 FX_BOOL Initialize(); | 146 FX_BOOL Initialize(); |
147 FX_BOOL IsLoaded(); | 147 FX_BOOL IsLoaded(); |
148 void Load(CPDF_CMapManager* pMgr, int charset, FX_BOOL bPromp
tCJK); | 148 void Load(CPDF_CMapManager* pMgr, int charset, FX_BOOL bPromp
tCJK); |
149 FX_WCHAR UnicodeFromCID(FX_WORD CID); | 149 FX_WCHAR UnicodeFromCID(FX_WORD CID); |
150 protected: | 150 protected: |
151 int m_Charset; | 151 int m_Charset; |
152 const FX_WORD* m_pEmbeddedMap; | 152 const FX_WORD* m_pEmbeddedMap; |
153 FX_DWORD m_EmbeddedCount; | 153 FX_DWORD m_EmbeddedCount; |
154 }; | 154 }; |
155 class CPDF_ToUnicodeMap : public CFX_Object | 155 class CPDF_ToUnicodeMap |
156 { | 156 { |
157 public: | 157 public: |
158 void Load(CPDF_Stream* pStream); | 158 void Load(CPDF_Stream* pStream); |
159 CFX_WideString Lookup(FX_DWORD charcode); | 159 CFX_WideString Lookup(FX_DWORD charcode); |
160 FX_DWORD ReverseLookup(FX_WCHAR unicode); | 160 FX_DWORD ReverseLookup(FX_WCHAR unicode); |
161 protected: | 161 protected: |
162 CFX_CMapDWordToDWord m_Map; | 162 CFX_CMapDWordToDWord m_Map; |
163 CPDF_CID2UnicodeMap* m_pBaseMap; | 163 CPDF_CID2UnicodeMap* m_pBaseMap; |
164 CFX_WideTextBuf m_MultiCharBuf; | 164 CFX_WideTextBuf m_MultiCharBuf; |
165 }; | 165 }; |
166 class CPDF_FontCharMap : public CFX_CharMap, public CFX_Object | 166 class CPDF_FontCharMap : public CFX_CharMap |
167 { | 167 { |
168 public: | 168 public: |
169 CPDF_FontCharMap(CPDF_Font* pFont); | 169 CPDF_FontCharMap(CPDF_Font* pFont); |
170 CPDF_Font* m_pFont; | 170 CPDF_Font* m_pFont; |
171 }; | 171 }; |
OLD | NEW |