1 // Copyright 2014 PDFium Authors. All rights reserved.
\r
2 // Use of this source code is governed by a BSD-style license that can be
\r
3 // found in the LICENSE file.
\r
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
\r
7 #ifndef _FXFA_FORMFILLER_FONTMGR_IMP_H
\r
8 #define _FXFA_FORMFILLER_FONTMGR_IMP_H
\r
9 struct XFA_FONTINFO {
\r
10 FX_DWORD dwFontNameHash;
\r
12 FX_LPCWSTR pReplaceFont;
\r
16 class CXFA_DefFontMgr : public IXFA_FontMgr, public CFX_Object
\r
19 CXFA_DefFontMgr() {}
\r
20 virtual ~CXFA_DefFontMgr();
\r
21 virtual void Release()
\r
25 virtual IFX_Font* GetFont(XFA_HDOC hDoc, FX_WSTR wsFontFamily, FX_DWORD dwFontStyles, FX_WORD wCodePage = 0xFFFF);
\r
26 virtual IFX_Font* GetDefaultFont(XFA_HDOC hDoc, FX_WSTR wsFontFamily, FX_DWORD dwFontStyles, FX_WORD wCodePage = 0xFFFF);
\r
28 CFX_PtrArray m_CacheFonts;
\r
30 class CXFA_PDFFontMgr : public IFX_FontProvider, public CFX_Object
\r
33 CXFA_PDFFontMgr(CXFA_FFDoc* pDoc);
\r
35 IFX_Font* GetFont(FX_WSTR wsFontFamily, FX_DWORD dwFontStyles, CPDF_Font** pPDFFont, FX_BOOL bStrictMatch = TRUE);
\r
36 FX_BOOL GetCharWidth(IFX_Font* pFont, FX_WCHAR wUnicode, FX_INT32 &iWidth, FX_BOOL bCharCode);
\r
37 CFX_MapPtrToPtr m_FDE2PDFFont;
\r
39 IFX_Font* FindFont(CFX_ByteString strFamilyName, FX_BOOL bBold, FX_BOOL bItalic, CPDF_Font** pPDFFont, FX_BOOL bStrictMatch = TRUE);
\r
40 CFX_ByteString PsNameToFontName(const CFX_ByteString& strPsName, FX_BOOL bBold, FX_BOOL bItalic);
\r
41 FX_BOOL PsNameMatchDRFontName(FX_BSTR bsPsName, FX_BOOL bBold, FX_BOOL bItalic, const CFX_ByteString& bsDRFontName, FX_BOOL bStrictMatch = TRUE);
\r
43 CFX_CMapByteStringToPtr m_FontArray;
\r
45 class CXFA_FontMgr : public CFX_Object
\r
50 IFX_Font* GetFont(XFA_HDOC hDoc, FX_WSTR wsFontFamily, FX_DWORD dwFontStyles,
\r
51 FX_WORD wCodePage = 0xFFFF);
\r
52 void LoadDocFonts(XFA_HDOC hDoc);
\r
53 void ReleaseDocFonts(XFA_HDOC hDoc);
\r
55 void SetDefFontMgr(IXFA_FontMgr* pFontMgr);
\r
57 void DelAllMgrMap();
\r
58 CFX_MapPtrToPtr m_PDFFontMgrArray;
\r
59 IXFA_FontMgr* m_pDefFontMgr;
\r
60 CFX_CMapByteStringToPtr m_FontArray;
\r