| Index: core/src/fpdfapi/fpdf_font/font_int.h
|
| diff --git a/core/src/fpdfapi/fpdf_font/font_int.h b/core/src/fpdfapi/fpdf_font/font_int.h
|
| index b151d78b51a8db9dd8e8a1ec0af1af7b419128a7..2fbf551c54aba78bbf55133902fcb3484e8085f4 100644
|
| --- a/core/src/fpdfapi/fpdf_font/font_int.h
|
| +++ b/core/src/fpdfapi/fpdf_font/font_int.h
|
| @@ -1,201 +1,192 @@
|
| // 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
|
|
|
| typedef void* FXFT_Library;
|
| -class CPDF_CMapManager : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_CMapManager();
|
| - ~CPDF_CMapManager();
|
| - FX_LPVOID GetPackage(FX_BOOL bPrompt);
|
| - CPDF_CMap* GetPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPrompt);
|
| - CPDF_CID2UnicodeMap* GetCID2UnicodeMap(int charset, FX_BOOL bPrompt);
|
| - void ReloadAll();
|
| -private:
|
| - CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPrompt);
|
| - CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(int charset, FX_BOOL bPrompt);
|
| - void DropAll(FX_BOOL bReload);
|
| +class CPDF_CMapManager : public CFX_Object {
|
| + public:
|
| + CPDF_CMapManager();
|
| + ~CPDF_CMapManager();
|
| + FX_LPVOID GetPackage(FX_BOOL bPrompt);
|
| + CPDF_CMap* GetPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPrompt);
|
| + CPDF_CID2UnicodeMap* GetCID2UnicodeMap(int charset, FX_BOOL bPrompt);
|
| + void ReloadAll();
|
| +
|
| + private:
|
| + CPDF_CMap* LoadPredefinedCMap(const CFX_ByteString& name, FX_BOOL bPrompt);
|
| + CPDF_CID2UnicodeMap* LoadCID2UnicodeMap(int charset, FX_BOOL bPrompt);
|
| + void DropAll(FX_BOOL bReload);
|
| #ifndef _FPDFAPI_MINI_
|
| - FX_BOOL m_bPrompted;
|
| - FX_LPVOID m_pPackage;
|
| + FX_BOOL m_bPrompted;
|
| + FX_LPVOID m_pPackage;
|
| #endif
|
| - CFX_MapByteStringToPtr m_CMaps;
|
| - CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6];
|
| + CFX_MapByteStringToPtr m_CMaps;
|
| + CPDF_CID2UnicodeMap* m_CID2UnicodeMaps[6];
|
| };
|
| -class CPDF_FontGlobals : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_FontGlobals();
|
| - ~CPDF_FontGlobals();
|
| - void ClearAll();
|
| - void Clear(void* key);
|
| - CPDF_Font* Find(void* key, int index);
|
| - void Set(void* key, int index, CPDF_Font* pFont);
|
| - CFX_MapPtrToPtr m_pStockMap;
|
| - CPDF_CMapManager m_CMapManager;
|
| - struct {
|
| - const struct FXCMAP_CMap* m_pMapList;
|
| - int m_Count;
|
| - } m_EmbeddedCharsets[5];
|
| - struct {
|
| - const FX_WORD* m_pMap;
|
| - int m_Count;
|
| - } m_EmbeddedToUnicodes[5];
|
| - FX_LPBYTE m_pContrastRamps;
|
| +class CPDF_FontGlobals : public CFX_Object {
|
| + public:
|
| + CPDF_FontGlobals();
|
| + ~CPDF_FontGlobals();
|
| + void ClearAll();
|
| + void Clear(void* key);
|
| + CPDF_Font* Find(void* key, int index);
|
| + void Set(void* key, int index, CPDF_Font* pFont);
|
| + CFX_MapPtrToPtr m_pStockMap;
|
| + CPDF_CMapManager m_CMapManager;
|
| + struct {
|
| + const struct FXCMAP_CMap* m_pMapList;
|
| + int m_Count;
|
| + } m_EmbeddedCharsets[5];
|
| + struct {
|
| + const FX_WORD* m_pMap;
|
| + int m_Count;
|
| + } m_EmbeddedToUnicodes[5];
|
| + FX_LPBYTE m_pContrastRamps;
|
| };
|
| struct _CMap_CodeRange {
|
| - int m_CharSize;
|
| - FX_BYTE m_Lower[4];
|
| - FX_BYTE m_Upper[4];
|
| + int m_CharSize;
|
| + FX_BYTE m_Lower[4];
|
| + FX_BYTE m_Upper[4];
|
| };
|
| -class CPDF_CMapParser : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_CMapParser();
|
| - ~CPDF_CMapParser() {}
|
| - FX_BOOL Initialize(CPDF_CMap*);
|
| - void ParseWord(FX_BSTR str);
|
| - CFX_BinaryBuf m_AddMaps;
|
| -private:
|
| - CPDF_CMap* m_pCMap;
|
| - int m_Status;
|
| - int m_CodeSeq;
|
| - FX_DWORD m_CodePoints[4];
|
| - CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges;
|
| - CFX_ByteString m_Registry, m_Ordering, m_Supplement;
|
| - CFX_ByteString m_LastWord;
|
| +class CPDF_CMapParser : public CFX_Object {
|
| + public:
|
| + CPDF_CMapParser();
|
| + ~CPDF_CMapParser() {}
|
| + FX_BOOL Initialize(CPDF_CMap*);
|
| + void ParseWord(FX_BSTR str);
|
| + CFX_BinaryBuf m_AddMaps;
|
| +
|
| + private:
|
| + CPDF_CMap* m_pCMap;
|
| + int m_Status;
|
| + int m_CodeSeq;
|
| + FX_DWORD m_CodePoints[4];
|
| + CFX_ArrayTemplate<_CMap_CodeRange> m_CodeRanges;
|
| + CFX_ByteString m_Registry, m_Ordering, m_Supplement;
|
| + CFX_ByteString m_LastWord;
|
| };
|
| -#define CIDCODING_UNKNOWN 0
|
| -#define CIDCODING_GB 1
|
| -#define CIDCODING_BIG5 2
|
| -#define CIDCODING_JIS 3
|
| -#define CIDCODING_KOREA 4
|
| -#define CIDCODING_UCS2 5
|
| -#define CIDCODING_CID 6
|
| -#define CIDCODING_UTF16 7
|
| -class CPDF_CMap : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_CMap();
|
| - FX_BOOL LoadPredefined(CPDF_CMapManager* pMgr, const FX_CHAR* name, FX_BOOL bPromptCJK);
|
| - FX_BOOL LoadEmbedded(FX_LPCBYTE pData, FX_DWORD dwSize);
|
| - void Release();
|
| - FX_BOOL IsLoaded() const
|
| - {
|
| - return m_bLoaded;
|
| - }
|
| - int GetCharset()
|
| - {
|
| - return m_Charset;
|
| - }
|
| - FX_BOOL IsVertWriting() const
|
| - {
|
| - return m_bVertical;
|
| - }
|
| - FX_WORD CIDFromCharCode(FX_DWORD charcode) const;
|
| - FX_DWORD CharCodeFromCID(FX_WORD CID) const;
|
| - int GetCharSize(FX_DWORD charcode) const;
|
| - FX_DWORD GetNextChar(const FX_CHAR* pString, int& offset) const;
|
| - int CountChar(const FX_CHAR* pString, int size) const;
|
| - int AppendChar(FX_LPSTR str, FX_DWORD charcode) const;
|
| - typedef enum {OneByte, TwoBytes, MixedTwoBytes, MixedFourBytes} CodingScheme;
|
| -protected:
|
| - ~CPDF_CMap();
|
| - friend class CPDF_CMapParser;
|
| - friend class CPDF_CMapManager;
|
| - friend class CPDF_CIDFont;
|
| -protected:
|
| - CFX_ByteString m_PredefinedCMap;
|
| - FX_BOOL m_bVertical;
|
| - int m_Charset, m_Coding;
|
| - CodingScheme m_CodingScheme;
|
| - int m_nCodeRanges;
|
| - FX_BYTE* m_pLeadingBytes;
|
| - FX_WORD* m_pMapping;
|
| - FX_LPBYTE m_pAddMapping;
|
| - FX_BOOL m_bLoaded;
|
| - const FXCMAP_CMap* m_pEmbedMap;
|
| - CPDF_CMap* m_pUseMap;
|
| +#define CIDCODING_UNKNOWN 0
|
| +#define CIDCODING_GB 1
|
| +#define CIDCODING_BIG5 2
|
| +#define CIDCODING_JIS 3
|
| +#define CIDCODING_KOREA 4
|
| +#define CIDCODING_UCS2 5
|
| +#define CIDCODING_CID 6
|
| +#define CIDCODING_UTF16 7
|
| +class CPDF_CMap : public CFX_Object {
|
| + public:
|
| + CPDF_CMap();
|
| + FX_BOOL LoadPredefined(CPDF_CMapManager* pMgr,
|
| + const FX_CHAR* name,
|
| + FX_BOOL bPromptCJK);
|
| + FX_BOOL LoadEmbedded(FX_LPCBYTE pData, FX_DWORD dwSize);
|
| + void Release();
|
| + FX_BOOL IsLoaded() const { return m_bLoaded; }
|
| + int GetCharset() { return m_Charset; }
|
| + FX_BOOL IsVertWriting() const { return m_bVertical; }
|
| + FX_WORD CIDFromCharCode(FX_DWORD charcode) const;
|
| + FX_DWORD CharCodeFromCID(FX_WORD CID) const;
|
| + int GetCharSize(FX_DWORD charcode) const;
|
| + FX_DWORD GetNextChar(const FX_CHAR* pString, int& offset) const;
|
| + int CountChar(const FX_CHAR* pString, int size) const;
|
| + int AppendChar(FX_LPSTR str, FX_DWORD charcode) const;
|
| + typedef enum {
|
| + OneByte,
|
| + TwoBytes,
|
| + MixedTwoBytes,
|
| + MixedFourBytes
|
| + } CodingScheme;
|
| +
|
| + protected:
|
| + ~CPDF_CMap();
|
| + friend class CPDF_CMapParser;
|
| + friend class CPDF_CMapManager;
|
| + friend class CPDF_CIDFont;
|
| +
|
| + protected:
|
| + CFX_ByteString m_PredefinedCMap;
|
| + FX_BOOL m_bVertical;
|
| + int m_Charset, m_Coding;
|
| + CodingScheme m_CodingScheme;
|
| + int m_nCodeRanges;
|
| + FX_BYTE* m_pLeadingBytes;
|
| + FX_WORD* m_pMapping;
|
| + FX_LPBYTE m_pAddMapping;
|
| + FX_BOOL m_bLoaded;
|
| + const FXCMAP_CMap* m_pEmbedMap;
|
| + CPDF_CMap* m_pUseMap;
|
| };
|
| -class CPDF_PredefinedCMap
|
| -{
|
| -public:
|
| - FX_LPCSTR m_pName;
|
| - int m_Charset;
|
| - int m_Coding;
|
| - CPDF_CMap::CodingScheme m_CodingScheme;
|
| - FX_DWORD m_LeadingSegCount;
|
| - FX_BYTE m_LeadingSegs[4];
|
| +class CPDF_PredefinedCMap {
|
| + public:
|
| + FX_LPCSTR m_pName;
|
| + int m_Charset;
|
| + int m_Coding;
|
| + CPDF_CMap::CodingScheme m_CodingScheme;
|
| + FX_DWORD m_LeadingSegCount;
|
| + FX_BYTE m_LeadingSegs[4];
|
| };
|
| typedef struct _FileHeader {
|
| - FX_BYTE btTag[4];
|
| - FX_BYTE btVersion;
|
| - FX_BYTE btFormat;
|
| - FX_BYTE btReserved1[2];
|
| - FX_DWORD dwStartIndex;
|
| - FX_DWORD dwEndIndex;
|
| - FX_DWORD dwDataSize;
|
| - FX_DWORD dwDataOffset;
|
| - FX_DWORD dwRecordSize;
|
| + FX_BYTE btTag[4];
|
| + FX_BYTE btVersion;
|
| + FX_BYTE btFormat;
|
| + FX_BYTE btReserved1[2];
|
| + FX_DWORD dwStartIndex;
|
| + FX_DWORD dwEndIndex;
|
| + FX_DWORD dwDataSize;
|
| + FX_DWORD dwDataOffset;
|
| + FX_DWORD dwRecordSize;
|
| } FXMP_FILEHEADER;
|
| -class CPDF_FXMP : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_FXMP()
|
| - {
|
| - m_pHeader = NULL;
|
| - m_pTable = NULL;
|
| - }
|
| - ~CPDF_FXMP()
|
| - {
|
| - if (m_pHeader) {
|
| - FX_Free(m_pHeader);
|
| - }
|
| - }
|
| - FX_BOOL IsLoaded()
|
| - {
|
| - return m_pTable != NULL;
|
| +class CPDF_FXMP : public CFX_Object {
|
| + public:
|
| + CPDF_FXMP() {
|
| + m_pHeader = NULL;
|
| + m_pTable = NULL;
|
| + }
|
| + ~CPDF_FXMP() {
|
| + if (m_pHeader) {
|
| + FX_Free(m_pHeader);
|
| }
|
| - FX_BOOL LoadFile(FX_LPVOID pPackage, FX_LPCSTR fileid);
|
| - FX_LPBYTE GetRecord(FX_DWORD index);
|
| -private:
|
| - FXMP_FILEHEADER* m_pHeader;
|
| - FX_LPBYTE m_pTable;
|
| + }
|
| + FX_BOOL IsLoaded() { return m_pTable != NULL; }
|
| + FX_BOOL LoadFile(FX_LPVOID pPackage, FX_LPCSTR fileid);
|
| + FX_LPBYTE GetRecord(FX_DWORD index);
|
| +
|
| + private:
|
| + FXMP_FILEHEADER* m_pHeader;
|
| + FX_LPBYTE m_pTable;
|
| };
|
| -class CPDF_CID2UnicodeMap : public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_CID2UnicodeMap();
|
| - ~CPDF_CID2UnicodeMap();
|
| - FX_BOOL Initialize();
|
| - FX_BOOL IsLoaded();
|
| - void Load(CPDF_CMapManager* pMgr, int charset, FX_BOOL bPromptCJK);
|
| - FX_WCHAR UnicodeFromCID(FX_WORD CID);
|
| -protected:
|
| - int m_Charset;
|
| - const FX_WORD* m_pEmbeddedMap;
|
| - FX_DWORD m_EmbeddedCount;
|
| +class CPDF_CID2UnicodeMap : public CFX_Object {
|
| + public:
|
| + CPDF_CID2UnicodeMap();
|
| + ~CPDF_CID2UnicodeMap();
|
| + FX_BOOL Initialize();
|
| + FX_BOOL IsLoaded();
|
| + void Load(CPDF_CMapManager* pMgr, int charset, FX_BOOL bPromptCJK);
|
| + FX_WCHAR UnicodeFromCID(FX_WORD CID);
|
| +
|
| + protected:
|
| + int m_Charset;
|
| + const FX_WORD* m_pEmbeddedMap;
|
| + FX_DWORD m_EmbeddedCount;
|
| #ifndef _FPDFAPI_MINI_
|
| - CPDF_FXMP* m_pExternalMap;
|
| + CPDF_FXMP* m_pExternalMap;
|
| #endif
|
| };
|
| -class CPDF_ToUnicodeMap : public CFX_Object
|
| -{
|
| -public:
|
| - void Load(CPDF_Stream* pStream);
|
| - CFX_WideString Lookup(FX_DWORD charcode);
|
| - FX_DWORD ReverseLookup(FX_WCHAR unicode);
|
| -protected:
|
| - CFX_CMapDWordToDWord m_Map;
|
| - CPDF_CID2UnicodeMap* m_pBaseMap;
|
| - CFX_WideTextBuf m_MultiCharBuf;
|
| +class CPDF_ToUnicodeMap : public CFX_Object {
|
| + public:
|
| + void Load(CPDF_Stream* pStream);
|
| + CFX_WideString Lookup(FX_DWORD charcode);
|
| + FX_DWORD ReverseLookup(FX_WCHAR unicode);
|
| +
|
| + protected:
|
| + CFX_CMapDWordToDWord m_Map;
|
| + CPDF_CID2UnicodeMap* m_pBaseMap;
|
| + CFX_WideTextBuf m_MultiCharBuf;
|
| };
|
| -class CPDF_FontCharMap : public CFX_CharMap, public CFX_Object
|
| -{
|
| -public:
|
| - CPDF_FontCharMap(CPDF_Font* pFont);
|
| - CPDF_Font* m_pFont;
|
| +class CPDF_FontCharMap : public CFX_CharMap, public CFX_Object {
|
| + public:
|
| + CPDF_FontCharMap(CPDF_Font* pFont);
|
| + CPDF_Font* m_pFont;
|
| };
|
|
|