diff options
author | dsinclair <dsinclair@chromium.org> | 2016-10-04 11:08:49 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-10-04 11:08:49 -0700 |
commit | bc5e6d289ed40efec2b0e03427e8fc2947bf53e3 (patch) | |
tree | fa1509c1fe1a46a6ebe8861768804883041973be /core/fpdfapi/fpdf_font/font_int.h | |
parent | 241543581696e996093bf0c2ae09ece6afe13ba2 (diff) | |
download | pdfium-bc5e6d289ed40efec2b0e03427e8fc2947bf53e3.tar.xz |
Move core/fpdfapi/fpdf_font to core/fpdfapi/font
BUG=pdfium:603
Review-Url: https://codereview.chromium.org/2392773003
Diffstat (limited to 'core/fpdfapi/fpdf_font/font_int.h')
-rw-r--r-- | core/fpdfapi/fpdf_font/font_int.h | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/core/fpdfapi/fpdf_font/font_int.h b/core/fpdfapi/fpdf_font/font_int.h deleted file mode 100644 index dce9e0c48f..0000000000 --- a/core/fpdfapi/fpdf_font/font_int.h +++ /dev/null @@ -1,204 +0,0 @@ -// Copyright 2014 PDFium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com - -#ifndef CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ -#define CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ - -#include <map> -#include <memory> - -#include "core/fpdfapi/fpdf_font/cpdf_cidfont.h" -#include "core/fxcrt/fx_basic.h" - -class CPDF_CID2UnicodeMap; -class CPDF_CMap; -class CPDF_Font; -class CPDF_Stream; - -using FXFT_Library = void*; - -int TT2PDF(int m, FXFT_Face face); -bool FT_UseTTCharmap(FXFT_Face face, int platform_id, int encoding_id); -CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering); - -class CPDF_CMapManager { - public: - CPDF_CMapManager(); - ~CPDF_CMapManager(); - - CPDF_CMap* GetPredefinedCMap(const CFX_ByteString& name, bool bPromptCJK); - CPDF_CID2UnicodeMap* GetCID2UnicodeMap(CIDSet charset, bool bPromptCJK); - - private: - CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString& name, bool bPromptCJK); - CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(CIDSet charset, bool bPromptCJK); - - std::map<CFX_ByteString, CPDF_CMap*> m_CMaps; - CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6]; -}; - -class CFX_StockFontArray { - public: - CFX_StockFontArray(); - ~CFX_StockFontArray(); - - // Takes ownership of |pFont|, returns unowned pointer to it. - CPDF_Font* SetFont(uint32_t index, std::unique_ptr<CPDF_Font> pFont); - CPDF_Font* GetFont(uint32_t index) const; - - private: - std::unique_ptr<CPDF_Font> m_StockFonts[14]; -}; - -class CPDF_FontGlobals { - public: - CPDF_FontGlobals(); - ~CPDF_FontGlobals(); - - void Clear(CPDF_Document* pDoc); - CPDF_Font* Find(CPDF_Document* pDoc, uint32_t index); - - // Takes ownership of |pFont|, returns unowned pointer to it. - CPDF_Font* Set(CPDF_Document* key, - uint32_t index, - std::unique_ptr<CPDF_Font> pFont); - - CPDF_CMapManager m_CMapManager; - struct { - const struct FXCMAP_CMap* m_pMapList; - uint32_t m_Count; - } m_EmbeddedCharsets[CIDSET_NUM_SETS]; - struct { - const uint16_t* m_pMap; - uint32_t m_Count; - } m_EmbeddedToUnicodes[CIDSET_NUM_SETS]; - - private: - std::map<CPDF_Document*, std::unique_ptr<CFX_StockFontArray>> m_StockMap; -}; - -struct CMap_CodeRange { - int m_CharSize; - uint8_t m_Lower[4]; - uint8_t m_Upper[4]; -}; - -class CPDF_CMapParser { - public: - CPDF_CMapParser(); - ~CPDF_CMapParser(); - void Initialize(CPDF_CMap* pMap); - void ParseWord(const CFX_ByteStringC& str); - CFX_BinaryBuf m_AddMaps; - - private: - friend class fpdf_font_cid_CMap_GetCode_Test; - friend class fpdf_font_cid_CMap_GetCodeRange_Test; - - static uint32_t CMap_GetCode(const CFX_ByteStringC& word); - static bool CMap_GetCodeRange(CMap_CodeRange& range, - const CFX_ByteStringC& first, - const CFX_ByteStringC& second); - - CPDF_CMap* m_pCMap; - int m_Status; - int m_CodeSeq; - uint32_t m_CodePoints[4]; - CFX_ArrayTemplate<CMap_CodeRange> m_CodeRanges; - CFX_ByteString m_LastWord; -}; - -enum CIDCoding : uint8_t { - CIDCODING_UNKNOWN = 0, - CIDCODING_GB, - CIDCODING_BIG5, - CIDCODING_JIS, - CIDCODING_KOREA, - CIDCODING_UCS2, - CIDCODING_CID, - CIDCODING_UTF16, -}; - -class CPDF_CMap { - public: - enum CodingScheme : uint8_t { - OneByte, - TwoBytes, - MixedTwoBytes, - MixedFourBytes - }; - - CPDF_CMap(); - ~CPDF_CMap(); - - void LoadPredefined(CPDF_CMapManager* pMgr, - const CFX_ByteString& name, - bool bPromptCJK); - void LoadEmbedded(const uint8_t* pData, uint32_t dwSize); - - bool IsLoaded() const; - bool IsVertWriting() const; - uint16_t CIDFromCharCode(uint32_t charcode) const; - int GetCharSize(uint32_t charcode) const; - uint32_t GetNextChar(const FX_CHAR* pString, int nStrLen, int& offset) const; - int CountChar(const FX_CHAR* pString, int size) const; - int AppendChar(FX_CHAR* str, uint32_t charcode) const; - - private: - friend class CPDF_CMapParser; - friend class CPDF_CIDFont; - - CFX_ByteString m_PredefinedCMap; - bool m_bVertical; - CIDSet m_Charset; - int m_Coding; - CodingScheme m_CodingScheme; - int m_nCodeRanges; - uint8_t* m_pLeadingBytes; - uint16_t* m_pMapping; - uint8_t* m_pAddMapping; - bool m_bLoaded; - const FXCMAP_CMap* m_pEmbedMap; -}; - -class CPDF_CID2UnicodeMap { - public: - CPDF_CID2UnicodeMap(); - ~CPDF_CID2UnicodeMap(); - - bool IsLoaded(); - void Load(CPDF_CMapManager* pMgr, CIDSet charset, bool bPromptCJK); - FX_WCHAR UnicodeFromCID(uint16_t CID); - - private: - CIDSet m_Charset; - const uint16_t* m_pEmbeddedMap; - uint32_t m_EmbeddedCount; -}; - -class CPDF_ToUnicodeMap { - public: - CPDF_ToUnicodeMap(); - ~CPDF_ToUnicodeMap(); - - void Load(CPDF_Stream* pStream); - - CFX_WideString Lookup(uint32_t charcode) const; - uint32_t ReverseLookup(FX_WCHAR unicode) const; - - private: - friend class fpdf_font_StringToCode_Test; - friend class fpdf_font_StringToWideString_Test; - - static uint32_t StringToCode(const CFX_ByteStringC& str); - static CFX_WideString StringToWideString(const CFX_ByteStringC& str); - - std::map<uint32_t, uint32_t> m_Map; - CPDF_CID2UnicodeMap* m_pBaseMap; - CFX_WideTextBuf m_MultiCharBuf; -}; - -#endif // CORE_FPDFAPI_FPDF_FONT_FONT_INT_H_ |