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 #ifndef FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ | 7 #ifndef FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ |
8 #define FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ | 8 #define FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ |
9 | 9 |
| 10 #include <memory> |
| 11 |
10 #include "core/fpdfdoc/include/ipvt_fontmap.h" | 12 #include "core/fpdfdoc/include/ipvt_fontmap.h" |
11 #include "fpdfsdk/fxedit/include/fx_edit.h" | 13 #include "fpdfsdk/fxedit/include/fx_edit.h" |
12 #include "public/fpdf_sysfontinfo.h" | 14 #include "public/fpdf_sysfontinfo.h" |
13 | 15 |
14 class CPDF_Document; | 16 class CPDF_Document; |
15 class CFX_SystemHandler; | 17 class CFX_SystemHandler; |
16 | 18 |
17 struct CPWL_FontMap_Data { | 19 struct CPWL_FontMap_Data { |
18 CPDF_Font* pFont; | 20 CPDF_Font* pFont; |
19 int32_t nCharset; | 21 int32_t nCharset; |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 | 75 |
74 CPDF_Font* AddFontToDocument(CPDF_Document* pDoc, | 76 CPDF_Font* AddFontToDocument(CPDF_Document* pDoc, |
75 CFX_ByteString& sFontName, | 77 CFX_ByteString& sFontName, |
76 uint8_t nCharset); | 78 uint8_t nCharset); |
77 static FX_BOOL IsStandardFont(const CFX_ByteString& sFontName); | 79 static FX_BOOL IsStandardFont(const CFX_ByteString& sFontName); |
78 CPDF_Font* AddStandardFont(CPDF_Document* pDoc, CFX_ByteString& sFontName); | 80 CPDF_Font* AddStandardFont(CPDF_Document* pDoc, CFX_ByteString& sFontName); |
79 CPDF_Font* AddSystemFont(CPDF_Document* pDoc, | 81 CPDF_Font* AddSystemFont(CPDF_Document* pDoc, |
80 CFX_ByteString& sFontName, | 82 CFX_ByteString& sFontName, |
81 uint8_t nCharset); | 83 uint8_t nCharset); |
82 | 84 |
| 85 static const FPDF_CharsetFontMap defaultTTFMap[]; |
| 86 |
83 protected: | 87 protected: |
84 virtual void Initialize(); | 88 virtual void Initialize(); |
85 virtual CPDF_Document* GetDocument(); | 89 virtual CPDF_Document* GetDocument(); |
86 virtual CPDF_Font* FindFontSameCharset(CFX_ByteString& sFontAlias, | 90 virtual CPDF_Font* FindFontSameCharset(CFX_ByteString& sFontAlias, |
87 int32_t nCharset); | 91 int32_t nCharset); |
88 virtual void AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias); | 92 virtual void AddedFont(CPDF_Font* pFont, const CFX_ByteString& sFontAlias); |
89 | 93 |
90 FX_BOOL KnowWord(int32_t nFontIndex, uint16_t word); | 94 FX_BOOL KnowWord(int32_t nFontIndex, uint16_t word); |
91 | 95 |
92 void Empty(); | 96 void Empty(); |
93 int32_t GetFontIndex(const CFX_ByteString& sFontName, | 97 int32_t GetFontIndex(const CFX_ByteString& sFontName, |
94 int32_t nCharset, | 98 int32_t nCharset, |
95 FX_BOOL bFind); | 99 FX_BOOL bFind); |
96 int32_t GetPWLFontIndex(uint16_t word, int32_t nCharset); | 100 int32_t GetPWLFontIndex(uint16_t word, int32_t nCharset); |
97 int32_t AddFontData(CPDF_Font* pFont, | 101 int32_t AddFontData(CPDF_Font* pFont, |
98 const CFX_ByteString& sFontAlias, | 102 const CFX_ByteString& sFontAlias, |
99 int32_t nCharset = DEFAULT_CHARSET); | 103 int32_t nCharset = DEFAULT_CHARSET); |
100 | 104 |
101 CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName, | 105 CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName, |
102 int32_t nCharset); | 106 int32_t nCharset); |
103 CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName); | 107 CFX_ByteString EncodeFontAlias(const CFX_ByteString& sFontName); |
104 | 108 |
| 109 CFX_ArrayTemplate<CPWL_FontMap_Data*> m_aData; |
| 110 CFX_ArrayTemplate<CPWL_FontMap_Native*> m_aNativeFont; |
| 111 |
105 private: | 112 private: |
106 CFX_ByteString GetFontName(int32_t nFontIndex); | 113 CFX_ByteString GetFontName(int32_t nFontIndex); |
107 int32_t FindFont(const CFX_ByteString& sFontName, | 114 int32_t FindFont(const CFX_ByteString& sFontName, |
108 int32_t nCharset = DEFAULT_CHARSET); | 115 int32_t nCharset = DEFAULT_CHARSET); |
109 | 116 |
110 CFX_ByteString GetNativeFont(int32_t nCharset); | 117 CFX_ByteString GetNativeFont(int32_t nCharset); |
111 | 118 |
112 public: | 119 std::unique_ptr<CPDF_Document> m_pPDFDoc; |
113 using CharsetFontMap = FPDF_CharsetFontMap; | |
114 static const CharsetFontMap defaultTTFMap[]; | |
115 | |
116 protected: | |
117 CFX_ArrayTemplate<CPWL_FontMap_Data*> m_aData; | |
118 CFX_ArrayTemplate<CPWL_FontMap_Native*> m_aNativeFont; | |
119 | |
120 private: | |
121 CPDF_Document* m_pPDFDoc; | |
122 CFX_SystemHandler* m_pSystemHandler; | 120 CFX_SystemHandler* m_pSystemHandler; |
123 }; | 121 }; |
124 | 122 |
125 class CPWL_DocFontMap : public CPWL_FontMap { | 123 class CPWL_DocFontMap : public CPWL_FontMap { |
126 public: | 124 public: |
127 CPWL_DocFontMap(CFX_SystemHandler* pSystemHandler, | 125 CPWL_DocFontMap(CFX_SystemHandler* pSystemHandler, |
128 CPDF_Document* pAttachedDoc); | 126 CPDF_Document* pAttachedDoc); |
129 ~CPWL_DocFontMap() override; | 127 ~CPWL_DocFontMap() override; |
130 | 128 |
131 private: | 129 private: |
132 // CPWL_FontMap: | 130 // CPWL_FontMap: |
133 CPDF_Document* GetDocument() override; | 131 CPDF_Document* GetDocument() override; |
134 | 132 |
135 CPDF_Document* m_pAttachedDoc; | 133 CPDF_Document* m_pAttachedDoc; |
136 }; | 134 }; |
137 | 135 |
138 #endif // FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ | 136 #endif // FPDFSDK_PDFWINDOW_PWL_FONTMAP_H_ |
OLD | NEW |