Index: core/include/fpdfapi/fpdf_resource.h |
diff --git a/core/include/fpdfapi/fpdf_resource.h b/core/include/fpdfapi/fpdf_resource.h |
index 4ce4ddc8bb519f2152384c7f9cc93485261a0f74..ce990bdf05b6bb25283538b24984642ffd24bbc9 100644 |
--- a/core/include/fpdfapi/fpdf_resource.h |
+++ b/core/include/fpdfapi/fpdf_resource.h |
@@ -1,7 +1,7 @@ |
// 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 _FPDF_RESOURCE_ |
@@ -38,921 +38,765 @@ class CFX_DIBitmap; |
typedef struct FT_FaceRec_* FXFT_Face; |
class CFX_CTTGSUBTable; |
class CPDF_Page; |
-#define PDFFONT_TYPE1 1 |
-#define PDFFONT_TRUETYPE 2 |
-#define PDFFONT_TYPE3 3 |
-#define PDFFONT_CIDFONT 4 |
-#define PDFFONT_FIXEDPITCH 1 |
-#define PDFFONT_SERIF 2 |
-#define PDFFONT_SYMBOLIC 4 |
-#define PDFFONT_SCRIPT 8 |
-#define PDFFONT_NONSYMBOLIC 32 |
-#define PDFFONT_ITALIC 64 |
-#define PDFFONT_ALLCAP 0x10000 |
-#define PDFFONT_SMALLCAP 0x20000 |
-#define PDFFONT_FORCEBOLD 0x40000 |
-#define PDFFONT_USEEXTERNATTR 0x80000 |
+#define PDFFONT_TYPE1 1 |
+#define PDFFONT_TRUETYPE 2 |
+#define PDFFONT_TYPE3 3 |
+#define PDFFONT_CIDFONT 4 |
+#define PDFFONT_FIXEDPITCH 1 |
+#define PDFFONT_SERIF 2 |
+#define PDFFONT_SYMBOLIC 4 |
+#define PDFFONT_SCRIPT 8 |
+#define PDFFONT_NONSYMBOLIC 32 |
+#define PDFFONT_ITALIC 64 |
+#define PDFFONT_ALLCAP 0x10000 |
+#define PDFFONT_SMALLCAP 0x20000 |
+#define PDFFONT_FORCEBOLD 0x40000 |
+#define PDFFONT_USEEXTERNATTR 0x80000 |
FX_WCHAR PDF_UnicodeFromAdobeName(const FX_CHAR* name); |
CFX_ByteString PDF_AdobeNameFromUnicode(FX_WCHAR unicode); |
-class CPDF_Font : public CFX_Object |
-{ |
-public: |
- |
- static CPDF_Font* CreateFontF(CPDF_Document* pDoc, CPDF_Dictionary* pFontDict); |
- |
- static CPDF_Font* GetStockFont(CPDF_Document* pDoc, FX_BSTR fontname); |
- |
- virtual ~CPDF_Font(); |
- |
- |
- |
- |
- int GetFontType() const |
- { |
- return m_FontType; |
- } |
- |
- CFX_ByteString GetFontTypeName() const; |
- |
- const CFX_ByteString& GetBaseFont() const |
- { |
- return m_BaseFont; |
- } |
- |
- const CFX_SubstFont* GetSubstFont() const |
- { |
- return m_Font.GetSubstFont(); |
- } |
- |
- FX_DWORD GetFlags() const |
- { |
- return m_Flags; |
- } |
- |
- virtual FX_BOOL IsVertWriting()const; |
- |
- |
- |
- |
- CPDF_Type1Font* GetType1Font() const |
- { |
- return m_FontType == PDFFONT_TYPE1 ? (CPDF_Type1Font*)(void*)this : NULL; |
- } |
- |
- CPDF_TrueTypeFont* GetTrueTypeFont() const |
- { |
- return m_FontType == PDFFONT_TRUETYPE ? (CPDF_TrueTypeFont*)(void*)this : NULL; |
- } |
- |
- CPDF_CIDFont* GetCIDFont() const |
- { |
- return (m_FontType == PDFFONT_CIDFONT) ? (CPDF_CIDFont*)(void*)this : NULL; |
- } |
- |
- CPDF_Type3Font* GetType3Font() const |
- { |
- return (m_FontType == PDFFONT_TYPE3) ? (CPDF_Type3Font*)(void*)this : NULL; |
- } |
- |
- |
- FX_BOOL IsEmbedded() const |
- { |
- return m_FontType == PDFFONT_TYPE3 || m_pFontFile != NULL; |
- } |
- |
- virtual FX_BOOL IsUnicodeCompatible() const |
- { |
- return FALSE; |
- } |
- |
- CPDF_StreamAcc* GetFontFile() const |
- { |
- return m_pFontFile; |
- } |
- |
- CPDF_Dictionary* GetFontDict() const |
- { |
- return m_pFontDict; |
- } |
+class CPDF_Font : public CFX_Object { |
+ public: |
+ static CPDF_Font* CreateFontF(CPDF_Document* pDoc, |
+ CPDF_Dictionary* pFontDict); |
- FX_BOOL IsStandardFont() const; |
+ static CPDF_Font* GetStockFont(CPDF_Document* pDoc, FX_BSTR fontname); |
- FXFT_Face GetFace() const |
- { |
- return m_Font.GetFace(); |
- } |
+ virtual ~CPDF_Font(); |
+ int GetFontType() const { return m_FontType; } |
+ CFX_ByteString GetFontTypeName() const; |
- virtual FX_DWORD GetNextChar(FX_LPCSTR pString, int& offset) const |
- { |
- return (FX_BYTE)pString[offset++]; |
- } |
+ const CFX_ByteString& GetBaseFont() const { return m_BaseFont; } |
- virtual int CountChar(FX_LPCSTR pString, int size) const |
- { |
- return size; |
- } |
+ const CFX_SubstFont* GetSubstFont() const { return m_Font.GetSubstFont(); } |
- void AppendChar(CFX_ByteString& str, FX_DWORD charcode) const; |
+ FX_DWORD GetFlags() const { return m_Flags; } |
- virtual int AppendChar(FX_LPSTR buf, FX_DWORD charcode) const |
- { |
- *buf = (FX_CHAR)charcode; |
- return 1; |
- } |
+ virtual FX_BOOL IsVertWriting() const; |
- virtual int GetCharSize(FX_DWORD charcode) const |
- { |
- return 1; |
- } |
+ CPDF_Type1Font* GetType1Font() const { |
+ return m_FontType == PDFFONT_TYPE1 ? (CPDF_Type1Font*)(void*) this : NULL; |
+ } |
+ CPDF_TrueTypeFont* GetTrueTypeFont() const { |
+ return m_FontType == PDFFONT_TRUETYPE ? (CPDF_TrueTypeFont*)(void*) this |
+ : NULL; |
+ } |
+ CPDF_CIDFont* GetCIDFont() const { |
+ return (m_FontType == PDFFONT_CIDFONT) ? (CPDF_CIDFont*)(void*) this : NULL; |
+ } |
+ CPDF_Type3Font* GetType3Font() const { |
+ return (m_FontType == PDFFONT_TYPE3) ? (CPDF_Type3Font*)(void*) this : NULL; |
+ } |
- virtual int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL *pVertGlyph = NULL) = 0; |
- virtual int GlyphFromCharCodeExt(FX_DWORD charcode) |
- { |
- return GlyphFromCharCode(charcode); |
- } |
+ FX_BOOL IsEmbedded() const { |
+ return m_FontType == PDFFONT_TYPE3 || m_pFontFile != NULL; |
+ } |
- CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const; |
+ virtual FX_BOOL IsUnicodeCompatible() const { return FALSE; } |
- FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const; |
+ CPDF_StreamAcc* GetFontFile() const { return m_pFontFile; } |
- CFX_CharMap* GetCharMap() |
- { |
- return m_pCharMap; |
- } |
+ CPDF_Dictionary* GetFontDict() const { return m_pFontDict; } |
- CFX_ByteString EncodeString(const CFX_WideString& str) const; |
+ FX_BOOL IsStandardFont() const; |
- CFX_WideString DecodeString(const CFX_ByteString& str) const; |
+ FXFT_Face GetFace() const { return m_Font.GetFace(); } |
+ virtual FX_DWORD GetNextChar(FX_LPCSTR pString, int& offset) const { |
+ return (FX_BYTE)pString[offset++]; |
+ } |
+ virtual int CountChar(FX_LPCSTR pString, int size) const { return size; } |
+ void AppendChar(CFX_ByteString& str, FX_DWORD charcode) const; |
- void GetFontBBox(FX_RECT& rect) const |
- { |
- rect = m_FontBBox; |
- } |
+ virtual int AppendChar(FX_LPSTR buf, FX_DWORD charcode) const { |
+ *buf = (FX_CHAR)charcode; |
+ return 1; |
+ } |
- int GetTypeAscent() const |
- { |
- return m_Ascent; |
- } |
+ virtual int GetCharSize(FX_DWORD charcode) const { return 1; } |
- int GetTypeDescent() const |
- { |
- return m_Descent; |
- } |
+ virtual int GlyphFromCharCode(FX_DWORD charcode, |
+ FX_BOOL* pVertGlyph = NULL) = 0; |
+ virtual int GlyphFromCharCodeExt(FX_DWORD charcode) { |
+ return GlyphFromCharCode(charcode); |
+ } |
- int GetItalicAngle() const |
- { |
- return m_ItalicAngle; |
- } |
+ CFX_WideString UnicodeFromCharCode(FX_DWORD charcode) const; |
- int GetStemV() const |
- { |
- return m_StemV; |
- } |
+ FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const; |
- int GetStringWidth(const FX_CHAR* pString, int size); |
+ CFX_CharMap* GetCharMap() { return m_pCharMap; } |
- virtual int GetCharWidthF(FX_DWORD charcode, int level = 0) = 0; |
+ CFX_ByteString EncodeString(const CFX_WideString& str) const; |
- virtual int GetCharTypeWidth(FX_DWORD charcode); |
+ CFX_WideString DecodeString(const CFX_ByteString& str) const; |
- virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0) = 0; |
+ void GetFontBBox(FX_RECT& rect) const { rect = m_FontBBox; } |
+ int GetTypeAscent() const { return m_Ascent; } |
+ int GetTypeDescent() const { return m_Descent; } |
- CPDF_Document* m_pDocument; |
+ int GetItalicAngle() const { return m_ItalicAngle; } |
- class CFX_PathData* LoadGlyphPath(FX_DWORD charcode, int dest_width = 0); |
+ int GetStemV() const { return m_StemV; } |
- CFX_Font m_Font; |
-protected: |
+ int GetStringWidth(const FX_CHAR* pString, int size); |
- CPDF_Font(); |
+ virtual int GetCharWidthF(FX_DWORD charcode, int level = 0) = 0; |
- FX_BOOL Initialize(); |
+ virtual int GetCharTypeWidth(FX_DWORD charcode); |
- FX_BOOL Load(); |
+ virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0) = 0; |
- virtual FX_BOOL _Load() = 0; |
+ CPDF_Document* m_pDocument; |
- virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const = 0; |
+ class CFX_PathData* LoadGlyphPath(FX_DWORD charcode, int dest_width = 0); |
- virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const = 0; |
+ CFX_Font m_Font; |
- void LoadUnicodeMap(); |
+ protected: |
+ CPDF_Font(); |
- void LoadPDFEncoding(CPDF_Object* pEncoding, int& iBaseEncoding, |
- CFX_ByteString*& pCharNames, FX_BOOL bEmbedded, FX_BOOL bTrueType); |
+ FX_BOOL Initialize(); |
- void LoadFontDescriptor(CPDF_Dictionary*); |
+ FX_BOOL Load(); |
- void LoadCharWidths(FX_WORD* pWidths); |
+ virtual FX_BOOL _Load() = 0; |
- void CheckFontMetrics(); |
+ virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const = 0; |
- CFX_CharMap* m_pCharMap; |
+ virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const = 0; |
+ void LoadUnicodeMap(); |
+ void LoadPDFEncoding(CPDF_Object* pEncoding, |
+ int& iBaseEncoding, |
+ CFX_ByteString*& pCharNames, |
+ FX_BOOL bEmbedded, |
+ FX_BOOL bTrueType); |
- int m_FontType; |
+ void LoadFontDescriptor(CPDF_Dictionary*); |
- CFX_ByteString m_BaseFont; |
+ void LoadCharWidths(FX_WORD* pWidths); |
- CPDF_StreamAcc* m_pFontFile; |
+ void CheckFontMetrics(); |
- CPDF_Dictionary* m_pFontDict; |
+ CFX_CharMap* m_pCharMap; |
- CPDF_ToUnicodeMap* m_pToUnicodeMap; |
+ int m_FontType; |
- FX_BOOL m_bToUnicodeLoaded; |
+ CFX_ByteString m_BaseFont; |
+ CPDF_StreamAcc* m_pFontFile; |
+ CPDF_Dictionary* m_pFontDict; |
+ CPDF_ToUnicodeMap* m_pToUnicodeMap; |
- int m_Flags; |
+ FX_BOOL m_bToUnicodeLoaded; |
- FX_RECT m_FontBBox; |
+ int m_Flags; |
- int m_StemV; |
+ FX_RECT m_FontBBox; |
- int m_Ascent; |
+ int m_StemV; |
- int m_Descent; |
+ int m_Ascent; |
- int m_ItalicAngle; |
+ int m_Descent; |
+ int m_ItalicAngle; |
}; |
-#define PDFFONT_ENCODING_BUILTIN 0 |
-#define PDFFONT_ENCODING_WINANSI 1 |
-#define PDFFONT_ENCODING_MACROMAN 2 |
-#define PDFFONT_ENCODING_MACEXPERT 3 |
-#define PDFFONT_ENCODING_STANDARD 4 |
-#define PDFFONT_ENCODING_ADOBE_SYMBOL 5 |
-#define PDFFONT_ENCODING_ZAPFDINGBATS 6 |
-#define PDFFONT_ENCODING_PDFDOC 7 |
-#define PDFFONT_ENCODING_MS_SYMBOL 8 |
-#define PDFFONT_ENCODING_UNICODE 9 |
-class CPDF_FontEncoding : public CFX_Object |
-{ |
-public: |
+#define PDFFONT_ENCODING_BUILTIN 0 |
+#define PDFFONT_ENCODING_WINANSI 1 |
+#define PDFFONT_ENCODING_MACROMAN 2 |
+#define PDFFONT_ENCODING_MACEXPERT 3 |
+#define PDFFONT_ENCODING_STANDARD 4 |
+#define PDFFONT_ENCODING_ADOBE_SYMBOL 5 |
+#define PDFFONT_ENCODING_ZAPFDINGBATS 6 |
+#define PDFFONT_ENCODING_PDFDOC 7 |
+#define PDFFONT_ENCODING_MS_SYMBOL 8 |
+#define PDFFONT_ENCODING_UNICODE 9 |
+class CPDF_FontEncoding : public CFX_Object { |
+ public: |
+ CPDF_FontEncoding(); |
- CPDF_FontEncoding(); |
+ CPDF_FontEncoding(int PredefinedEncoding); |
- CPDF_FontEncoding(int PredefinedEncoding); |
+ void LoadEncoding(CPDF_Object* pEncoding); |
- void LoadEncoding(CPDF_Object* pEncoding); |
+ FX_BOOL IsIdentical(CPDF_FontEncoding* pAnother) const; |
- FX_BOOL IsIdentical(CPDF_FontEncoding* pAnother) const; |
+ FX_WCHAR UnicodeFromCharCode(FX_BYTE charcode) const { |
+ return m_Unicodes[charcode]; |
+ } |
- FX_WCHAR UnicodeFromCharCode(FX_BYTE charcode) const |
- { |
- return m_Unicodes[charcode]; |
- } |
+ int CharCodeFromUnicode(FX_WCHAR unicode) const; |
- int CharCodeFromUnicode(FX_WCHAR unicode) const; |
+ void SetUnicode(FX_BYTE charcode, FX_WCHAR unicode) { |
+ m_Unicodes[charcode] = unicode; |
+ } |
- void SetUnicode(FX_BYTE charcode, FX_WCHAR unicode) |
- { |
- m_Unicodes[charcode] = unicode; |
- } |
+ CPDF_Object* Realize(); |
- CPDF_Object* Realize(); |
-public: |
- |
- FX_WCHAR m_Unicodes[256]; |
+ public: |
+ FX_WCHAR m_Unicodes[256]; |
}; |
-class CPDF_SimpleFont : public CPDF_Font |
-{ |
-public: |
- |
- CPDF_SimpleFont(); |
- |
- virtual ~CPDF_SimpleFont(); |
- |
- CPDF_FontEncoding* GetEncoding() |
- { |
- return &m_Encoding; |
- } |
- virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
- virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
- virtual int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL *pVertGlyph = NULL); |
- virtual FX_BOOL IsUnicodeCompatible() const; |
-protected: |
- |
- FX_BOOL LoadCommon(); |
- |
- void LoadSubstFont(); |
+class CPDF_SimpleFont : public CPDF_Font { |
+ public: |
+ CPDF_SimpleFont(); |
- void LoadFaceMetrics(); |
+ virtual ~CPDF_SimpleFont(); |
- virtual void LoadGlyphMap() = 0; |
- virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const |
- { |
- return m_Encoding.UnicodeFromCharCode((FX_BYTE)charcode); |
- } |
- virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const |
- { |
- return m_Encoding.CharCodeFromUnicode(Unicode); |
- } |
+ CPDF_FontEncoding* GetEncoding() { return &m_Encoding; } |
+ virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
+ virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
+ virtual int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL* pVertGlyph = NULL); |
+ virtual FX_BOOL IsUnicodeCompatible() const; |
+ protected: |
+ FX_BOOL LoadCommon(); |
+ void LoadSubstFont(); |
- CPDF_FontEncoding m_Encoding; |
+ void LoadFaceMetrics(); |
- FX_WORD m_GlyphIndex[256]; |
- FX_WORD m_ExtGID[256]; |
+ virtual void LoadGlyphMap() = 0; |
+ virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const { |
+ return m_Encoding.UnicodeFromCharCode((FX_BYTE)charcode); |
+ } |
+ virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const { |
+ return m_Encoding.CharCodeFromUnicode(Unicode); |
+ } |
+ CPDF_FontEncoding m_Encoding; |
+ FX_WORD m_GlyphIndex[256]; |
+ FX_WORD m_ExtGID[256]; |
+ CFX_ByteString* m_pCharNames; |
- CFX_ByteString* m_pCharNames; |
+ int m_BaseEncoding; |
- int m_BaseEncoding; |
+ FX_WORD m_CharWidth[256]; |
+ FX_SMALL_RECT m_CharBBox[256]; |
+ FX_BOOL m_bUseFontWidth; |
- |
- FX_WORD m_CharWidth[256]; |
- |
- FX_SMALL_RECT m_CharBBox[256]; |
- |
- FX_BOOL m_bUseFontWidth; |
- |
- void LoadCharMetrics(int charcode); |
- |
-}; |
-class CPDF_Type1Font : public CPDF_SimpleFont |
-{ |
-public: |
- |
- CPDF_Type1Font(); |
- |
- int GetBase14Font() |
- { |
- return m_Base14Font; |
- } |
- virtual int GlyphFromCharCodeExt(FX_DWORD charcode); |
-protected: |
- virtual FX_BOOL _Load(); |
- |
- int m_Base14Font; |
- virtual void LoadGlyphMap(); |
+ void LoadCharMetrics(int charcode); |
}; |
-class CPDF_TrueTypeFont : public CPDF_SimpleFont |
-{ |
-public: |
- |
- CPDF_TrueTypeFont(); |
-protected: |
- virtual FX_BOOL _Load(); |
- virtual void LoadGlyphMap(); |
-}; |
-class CPDF_Type3Char : public CFX_Object |
-{ |
-public: |
+class CPDF_Type1Font : public CPDF_SimpleFont { |
+ public: |
+ CPDF_Type1Font(); |
- CPDF_Type3Char(); |
+ int GetBase14Font() { return m_Base14Font; } |
+ virtual int GlyphFromCharCodeExt(FX_DWORD charcode); |
- ~CPDF_Type3Char(); |
+ protected: |
+ virtual FX_BOOL _Load(); |
- FX_BOOL LoadBitmap(CPDF_RenderContext* pContext); |
+ int m_Base14Font; |
+ virtual void LoadGlyphMap(); |
+}; |
+class CPDF_TrueTypeFont : public CPDF_SimpleFont { |
+ public: |
+ CPDF_TrueTypeFont(); |
- FX_BOOL m_bColored; |
+ protected: |
+ virtual FX_BOOL _Load(); |
+ virtual void LoadGlyphMap(); |
+}; |
+class CPDF_Type3Char : public CFX_Object { |
+ public: |
+ CPDF_Type3Char(); |
- FX_BOOL m_bPageRequired; |
+ ~CPDF_Type3Char(); |
+ FX_BOOL LoadBitmap(CPDF_RenderContext* pContext); |
+ FX_BOOL m_bColored; |
- CPDF_Form* m_pForm; |
+ FX_BOOL m_bPageRequired; |
- CFX_AffineMatrix m_ImageMatrix; |
+ CPDF_Form* m_pForm; |
- CFX_DIBitmap* m_pBitmap; |
+ CFX_AffineMatrix m_ImageMatrix; |
+ CFX_DIBitmap* m_pBitmap; |
- int m_Width; |
+ int m_Width; |
- FX_RECT m_BBox; |
+ FX_RECT m_BBox; |
}; |
-class CPDF_Type3Font : public CPDF_SimpleFont |
-{ |
-public: |
- CPDF_Type3Font(); |
- virtual ~CPDF_Type3Font(); |
- void SetPageResources(CPDF_Dictionary* pResources) |
- { |
- m_pPageResources = pResources; |
- } |
- CPDF_Type3Char* LoadChar(FX_DWORD charcode, int level = 0); |
- virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
- virtual int GetCharTypeWidth(FX_DWORD charcode) |
- { |
- return GetCharWidthF(charcode); |
- } |
- virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
- CFX_AffineMatrix& GetFontMatrix() |
- { |
- return m_FontMatrix; |
- } |
- void CheckType3FontMetrics(); |
-private: |
- virtual FX_BOOL _Load(); |
- virtual void LoadGlyphMap() {} |
- int m_CharWidthL[256]; |
- CPDF_Dictionary* m_pCharProcs; |
- CPDF_Dictionary* m_pPageResources; |
- CPDF_Dictionary* m_pFontResources; |
- CFX_MapPtrToPtr m_CacheMap; |
- CFX_MapPtrToPtr m_DeletedMap; |
-protected: |
- CFX_AffineMatrix m_FontMatrix; |
+class CPDF_Type3Font : public CPDF_SimpleFont { |
+ public: |
+ CPDF_Type3Font(); |
+ virtual ~CPDF_Type3Font(); |
+ void SetPageResources(CPDF_Dictionary* pResources) { |
+ m_pPageResources = pResources; |
+ } |
+ CPDF_Type3Char* LoadChar(FX_DWORD charcode, int level = 0); |
+ virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
+ virtual int GetCharTypeWidth(FX_DWORD charcode) { |
+ return GetCharWidthF(charcode); |
+ } |
+ virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
+ CFX_AffineMatrix& GetFontMatrix() { return m_FontMatrix; } |
+ void CheckType3FontMetrics(); |
+ |
+ private: |
+ virtual FX_BOOL _Load(); |
+ virtual void LoadGlyphMap() {} |
+ int m_CharWidthL[256]; |
+ CPDF_Dictionary* m_pCharProcs; |
+ CPDF_Dictionary* m_pPageResources; |
+ CPDF_Dictionary* m_pFontResources; |
+ CFX_MapPtrToPtr m_CacheMap; |
+ CFX_MapPtrToPtr m_DeletedMap; |
+ |
+ protected: |
+ CFX_AffineMatrix m_FontMatrix; |
}; |
-#define CIDSET_UNKNOWN 0 |
-#define CIDSET_GB1 1 |
-#define CIDSET_CNS1 2 |
-#define CIDSET_JAPAN1 3 |
-#define CIDSET_KOREA1 4 |
-#define CIDSET_UNICODE 5 |
-class CPDF_CIDFont : public CPDF_Font |
-{ |
-public: |
- |
- CPDF_CIDFont(); |
- |
- virtual ~CPDF_CIDFont(); |
- |
- FX_BOOL LoadGB2312(); |
- virtual int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL *pVertGlyph = NULL); |
- virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
- virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
+#define CIDSET_UNKNOWN 0 |
+#define CIDSET_GB1 1 |
+#define CIDSET_CNS1 2 |
+#define CIDSET_JAPAN1 3 |
+#define CIDSET_KOREA1 4 |
+#define CIDSET_UNICODE 5 |
+class CPDF_CIDFont : public CPDF_Font { |
+ public: |
+ CPDF_CIDFont(); |
- FX_WORD CIDFromCharCode(FX_DWORD charcode) const; |
+ virtual ~CPDF_CIDFont(); |
- FX_BOOL IsTrueType() |
- { |
- return !m_bType1; |
- } |
+ FX_BOOL LoadGB2312(); |
+ virtual int GlyphFromCharCode(FX_DWORD charcode, FX_BOOL* pVertGlyph = NULL); |
+ virtual int GetCharWidthF(FX_DWORD charcode, int level = 0); |
+ virtual void GetCharBBox(FX_DWORD charcode, FX_RECT& rect, int level = 0); |
+ FX_WORD CIDFromCharCode(FX_DWORD charcode) const; |
- virtual FX_DWORD GetNextChar(const FX_CHAR* pString, int& offset) const; |
- virtual int CountChar(const FX_CHAR* pString, int size) const; |
- virtual int AppendChar(FX_LPSTR str, FX_DWORD charcode) const; |
- virtual int GetCharSize(FX_DWORD charcode) const; |
+ FX_BOOL IsTrueType() { return !m_bType1; } |
+ virtual FX_DWORD GetNextChar(const FX_CHAR* pString, int& offset) const; |
+ virtual int CountChar(const FX_CHAR* pString, int size) const; |
+ virtual int AppendChar(FX_LPSTR str, FX_DWORD charcode) const; |
+ virtual int GetCharSize(FX_DWORD charcode) const; |
- int GetCharset() const |
- { |
- return m_Charset; |
- } |
+ int GetCharset() const { return m_Charset; } |
- FX_LPCBYTE GetCIDTransform(FX_WORD CID) const; |
+ FX_LPCBYTE GetCIDTransform(FX_WORD CID) const; |
+ virtual FX_BOOL IsVertWriting() const; |
+ short GetVertWidth(FX_WORD CID) const; |
- virtual FX_BOOL IsVertWriting() const; |
+ void GetVertOrigin(FX_WORD CID, short& vx, short& vy) const; |
- short GetVertWidth(FX_WORD CID) const; |
+ virtual FX_BOOL IsUnicodeCompatible() const; |
+ virtual FX_BOOL IsFontStyleFromCharCode(FX_DWORD charcode) const; |
- void GetVertOrigin(FX_WORD CID, short& vx, short& vy) const; |
+ protected: |
+ friend class CPDF_Font; |
+ virtual FX_BOOL _Load(); |
+ virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const; |
+ virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const; |
+ int GetGlyphIndex(FX_DWORD unicodeb, FX_BOOL* pVertGlyph); |
- virtual FX_BOOL IsUnicodeCompatible() const; |
- virtual FX_BOOL IsFontStyleFromCharCode(FX_DWORD charcode) const; |
-protected: |
- friend class CPDF_Font; |
- virtual FX_BOOL _Load(); |
- virtual FX_WCHAR _UnicodeFromCharCode(FX_DWORD charcode) const; |
- virtual FX_DWORD _CharCodeFromUnicode(FX_WCHAR Unicode) const; |
- int GetGlyphIndex(FX_DWORD unicodeb, FX_BOOL *pVertGlyph); |
+ CPDF_CMap* m_pCMap; |
- CPDF_CMap* m_pCMap; |
+ CPDF_CMap* m_pAllocatedCMap; |
- CPDF_CMap* m_pAllocatedCMap; |
+ CPDF_CID2UnicodeMap* m_pCID2UnicodeMap; |
- CPDF_CID2UnicodeMap* m_pCID2UnicodeMap; |
+ int m_Charset; |
- int m_Charset; |
+ FX_BOOL m_bType1; |
- FX_BOOL m_bType1; |
+ CPDF_StreamAcc* m_pCIDToGIDMap; |
+ FX_BOOL m_bCIDIsGID; |
- CPDF_StreamAcc* m_pCIDToGIDMap; |
- FX_BOOL m_bCIDIsGID; |
+ FX_WORD m_DefaultWidth; |
+ FX_WORD* m_pAnsiWidths; |
+ FX_SMALL_RECT m_CharBBox[256]; |
- FX_WORD m_DefaultWidth; |
+ CFX_DWordArray m_WidthList; |
- FX_WORD* m_pAnsiWidths; |
+ short m_DefaultVY; |
- FX_SMALL_RECT m_CharBBox[256]; |
+ short m_DefaultW1; |
- CFX_DWordArray m_WidthList; |
+ CFX_DWordArray m_VertMetrics; |
- short m_DefaultVY; |
+ void LoadMetricsArray(CPDF_Array* pArray, |
+ CFX_DWordArray& result, |
+ int nElements); |
- short m_DefaultW1; |
+ void LoadSubstFont(); |
- CFX_DWordArray m_VertMetrics; |
+ FX_BOOL m_bAdobeCourierStd; |
- |
- void LoadMetricsArray(CPDF_Array* pArray, CFX_DWordArray& result, int nElements); |
- |
- void LoadSubstFont(); |
- |
- FX_BOOL m_bAdobeCourierStd; |
- |
- CFX_CTTGSUBTable* m_pTTGSUBTable; |
+ CFX_CTTGSUBTable* m_pTTGSUBTable; |
}; |
-#define PDFCS_DEVICEGRAY 1 |
- |
-#define PDFCS_DEVICERGB 2 |
-#define PDFCS_DEVICECMYK 3 |
-#define PDFCS_CALGRAY 4 |
-#define PDFCS_CALRGB 5 |
-#define PDFCS_LAB 6 |
-#define PDFCS_ICCBASED 7 |
-#define PDFCS_SEPARATION 8 |
-#define PDFCS_DEVICEN 9 |
-#define PDFCS_INDEXED 10 |
-#define PDFCS_PATTERN 11 |
-class CPDF_ColorSpace : public CFX_Object |
-{ |
-public: |
- |
- static CPDF_ColorSpace* GetStockCS(int Family); |
- |
- static CPDF_ColorSpace* Load(CPDF_Document* pDoc, CPDF_Object* pCSObj); |
- |
- void ReleaseCS(); |
- |
- int GetBufSize() const; |
- |
- FX_FLOAT* CreateBuf(); |
- |
- void GetDefaultColor(FX_FLOAT* buf) const; |
- |
- int CountComponents() const |
- { |
- return m_nComponents; |
- } |
- |
- int GetFamily() const |
- { |
- return m_Family; |
- } |
- |
- virtual void GetDefaultValue(int iComponent, FX_FLOAT& value, FX_FLOAT& min, FX_FLOAT& max) const |
- { |
- value = 0; |
- min = 0; |
- max = 1.0f; |
- } |
- |
- FX_BOOL sRGB() const; |
- |
- |
- |
- virtual FX_BOOL GetRGB(FX_FLOAT* pBuf, FX_FLOAT& R, FX_FLOAT& G, FX_FLOAT& B) const = 0; |
- |
- virtual FX_BOOL SetRGB(FX_FLOAT* pBuf, FX_FLOAT R, FX_FLOAT G, FX_FLOAT B) const |
- { |
- return FALSE; |
- } |
- |
- |
- |
- |
- FX_BOOL GetCMYK(FX_FLOAT* pBuf, FX_FLOAT& c, FX_FLOAT& m, FX_FLOAT& y, FX_FLOAT& k) const; |
- |
- FX_BOOL SetCMYK(FX_FLOAT* pBuf, FX_FLOAT c, FX_FLOAT m, FX_FLOAT y, FX_FLOAT k) const; |
- |
- |
- virtual void TranslateImageLine(FX_LPBYTE dest_buf, FX_LPCBYTE src_buf, int pixels, |
- int image_width, int image_height, FX_BOOL bTransMask = FALSE) const; |
- |
- CPDF_Array*& GetArray() |
- { |
- return m_pArray; |
- } |
- |
- int GetMaxIndex() const; |
- |
- virtual CPDF_ColorSpace* GetBaseCS() const |
- { |
- return NULL; |
- } |
- |
- virtual void EnableStdConversion(FX_BOOL bEnabled); |
- CPDF_Document* m_pDocument; |
-protected: |
- |
- CPDF_ColorSpace(); |
- |
- virtual ~CPDF_ColorSpace() {} |
- virtual FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) |
- { |
- return TRUE; |
- } |
- virtual FX_BOOL v_GetCMYK(FX_FLOAT* pBuf, FX_FLOAT& c, FX_FLOAT& m, FX_FLOAT& y, FX_FLOAT& k) const |
- { |
- return FALSE; |
- } |
- virtual FX_BOOL v_SetCMYK(FX_FLOAT* pBuf, FX_FLOAT c, FX_FLOAT m, FX_FLOAT y, FX_FLOAT k) const |
- { |
- return FALSE; |
- } |
- |
- int m_Family; |
- |
- int m_nComponents; |
- |
- CPDF_Array* m_pArray; |
- |
- FX_DWORD m_dwStdConversion; |
+#define PDFCS_DEVICEGRAY 1 |
+ |
+#define PDFCS_DEVICERGB 2 |
+#define PDFCS_DEVICECMYK 3 |
+#define PDFCS_CALGRAY 4 |
+#define PDFCS_CALRGB 5 |
+#define PDFCS_LAB 6 |
+#define PDFCS_ICCBASED 7 |
+#define PDFCS_SEPARATION 8 |
+#define PDFCS_DEVICEN 9 |
+#define PDFCS_INDEXED 10 |
+#define PDFCS_PATTERN 11 |
+class CPDF_ColorSpace : public CFX_Object { |
+ public: |
+ static CPDF_ColorSpace* GetStockCS(int Family); |
+ |
+ static CPDF_ColorSpace* Load(CPDF_Document* pDoc, CPDF_Object* pCSObj); |
+ |
+ void ReleaseCS(); |
+ |
+ int GetBufSize() const; |
+ |
+ FX_FLOAT* CreateBuf(); |
+ |
+ void GetDefaultColor(FX_FLOAT* buf) const; |
+ |
+ int CountComponents() const { return m_nComponents; } |
+ |
+ int GetFamily() const { return m_Family; } |
+ |
+ virtual void GetDefaultValue(int iComponent, |
+ FX_FLOAT& value, |
+ FX_FLOAT& min, |
+ FX_FLOAT& max) const { |
+ value = 0; |
+ min = 0; |
+ max = 1.0f; |
+ } |
+ |
+ FX_BOOL sRGB() const; |
+ |
+ virtual FX_BOOL GetRGB(FX_FLOAT* pBuf, |
+ FX_FLOAT& R, |
+ FX_FLOAT& G, |
+ FX_FLOAT& B) const = 0; |
+ |
+ virtual FX_BOOL SetRGB(FX_FLOAT* pBuf, |
+ FX_FLOAT R, |
+ FX_FLOAT G, |
+ FX_FLOAT B) const { |
+ return FALSE; |
+ } |
+ |
+ FX_BOOL GetCMYK(FX_FLOAT* pBuf, |
+ FX_FLOAT& c, |
+ FX_FLOAT& m, |
+ FX_FLOAT& y, |
+ FX_FLOAT& k) const; |
+ |
+ FX_BOOL SetCMYK(FX_FLOAT* pBuf, |
+ FX_FLOAT c, |
+ FX_FLOAT m, |
+ FX_FLOAT y, |
+ FX_FLOAT k) const; |
+ |
+ virtual void TranslateImageLine(FX_LPBYTE dest_buf, |
+ FX_LPCBYTE src_buf, |
+ int pixels, |
+ int image_width, |
+ int image_height, |
+ FX_BOOL bTransMask = FALSE) const; |
+ |
+ CPDF_Array*& GetArray() { return m_pArray; } |
+ |
+ int GetMaxIndex() const; |
+ |
+ virtual CPDF_ColorSpace* GetBaseCS() const { return NULL; } |
+ |
+ virtual void EnableStdConversion(FX_BOOL bEnabled); |
+ CPDF_Document* m_pDocument; |
+ |
+ protected: |
+ CPDF_ColorSpace(); |
+ |
+ virtual ~CPDF_ColorSpace() {} |
+ virtual FX_BOOL v_Load(CPDF_Document* pDoc, CPDF_Array* pArray) { |
+ return TRUE; |
+ } |
+ virtual FX_BOOL v_GetCMYK(FX_FLOAT* pBuf, |
+ FX_FLOAT& c, |
+ FX_FLOAT& m, |
+ FX_FLOAT& y, |
+ FX_FLOAT& k) const { |
+ return FALSE; |
+ } |
+ virtual FX_BOOL v_SetCMYK(FX_FLOAT* pBuf, |
+ FX_FLOAT c, |
+ FX_FLOAT m, |
+ FX_FLOAT y, |
+ FX_FLOAT k) const { |
+ return FALSE; |
+ } |
+ |
+ int m_Family; |
+ |
+ int m_nComponents; |
+ |
+ CPDF_Array* m_pArray; |
+ |
+ FX_DWORD m_dwStdConversion; |
}; |
-class CPDF_Color : public CFX_Object |
-{ |
-public: |
+class CPDF_Color : public CFX_Object { |
+ public: |
+ CPDF_Color() { |
+ m_pBuffer = NULL; |
+ m_pCS = NULL; |
+ } |
- CPDF_Color() |
- { |
- m_pBuffer = NULL; |
- m_pCS = NULL; |
- } |
+ CPDF_Color(int family); |
- CPDF_Color(int family); |
+ ~CPDF_Color(); |
- ~CPDF_Color(); |
+ FX_BOOL IsNull() const { return m_pBuffer == NULL; } |
- FX_BOOL IsNull() const |
- { |
- return m_pBuffer == NULL; |
- } |
+ FX_BOOL IsEqual(const CPDF_Color& other) const; |
- FX_BOOL IsEqual(const CPDF_Color& other) const; |
+ FX_BOOL IsPattern() const { |
+ return m_pCS && m_pCS->GetFamily() == PDFCS_PATTERN; |
+ } |
- FX_BOOL IsPattern() const |
- { |
- return m_pCS && m_pCS->GetFamily() == PDFCS_PATTERN; |
- } |
+ void Copy(const CPDF_Color* pSrc); |
- void Copy(const CPDF_Color* pSrc); |
+ void SetColorSpace(CPDF_ColorSpace* pCS); |
- void SetColorSpace(CPDF_ColorSpace* pCS); |
+ void SetValue(FX_FLOAT* comp); |
- void SetValue(FX_FLOAT* comp); |
+ void SetValue(CPDF_Pattern* pPattern, FX_FLOAT* comp, int ncomps); |
- void SetValue(CPDF_Pattern* pPattern, FX_FLOAT* comp, int ncomps); |
+ FX_BOOL GetRGB(int& R, int& G, int& B) const; |
- FX_BOOL GetRGB(int& R, int& G, int& B) const; |
+ CPDF_Pattern* GetPattern() const; |
- CPDF_Pattern* GetPattern() const; |
+ CPDF_ColorSpace* GetPatternCS() const; |
- CPDF_ColorSpace* GetPatternCS() const; |
+ FX_FLOAT* GetPatternColor() const; |
- FX_FLOAT* GetPatternColor() const; |
+ CPDF_ColorSpace* m_pCS; |
- CPDF_ColorSpace* m_pCS; |
+ FX_FLOAT* m_pBuffer; |
- FX_FLOAT* m_pBuffer; |
-protected: |
- void ReleaseBuffer(); |
- void ReleaseColorSpace(); |
+ protected: |
+ void ReleaseBuffer(); |
+ void ReleaseColorSpace(); |
}; |
-#define PATTERN_TILING 1 |
-#define PATTERN_SHADING 2 |
-class CPDF_Pattern : public CFX_Object |
-{ |
-public: |
- |
- virtual ~CPDF_Pattern(); |
- void SaveColor(CPDF_Color* pColor) {m_pColor = pColor;} |
+#define PATTERN_TILING 1 |
+#define PATTERN_SHADING 2 |
+class CPDF_Pattern : public CFX_Object { |
+ public: |
+ virtual ~CPDF_Pattern(); |
+ void SaveColor(CPDF_Color* pColor) { m_pColor = pColor; } |
- CPDF_Object* m_pPatternObj; |
+ CPDF_Object* m_pPatternObj; |
- int m_PatternType; |
+ int m_PatternType; |
- CFX_AffineMatrix m_Pattern2Form; |
- CFX_AffineMatrix m_ParentMatrix; |
+ CFX_AffineMatrix m_Pattern2Form; |
+ CFX_AffineMatrix m_ParentMatrix; |
- CPDF_Document* m_pDocument; |
- CPDF_Color* m_pColor; |
+ CPDF_Document* m_pDocument; |
+ CPDF_Color* m_pColor; |
-protected: |
- |
- CPDF_Pattern(const CFX_AffineMatrix* pParentMatrix); |
+ protected: |
+ CPDF_Pattern(const CFX_AffineMatrix* pParentMatrix); |
}; |
-class CPDF_TilingPattern : public CPDF_Pattern |
-{ |
-public: |
+class CPDF_TilingPattern : public CPDF_Pattern { |
+ public: |
+ CPDF_TilingPattern(CPDF_Document* pDoc, |
+ CPDF_Object* pPatternObj, |
+ const CFX_AffineMatrix* parentMatrix); |
- CPDF_TilingPattern(CPDF_Document* pDoc, CPDF_Object* pPatternObj, const CFX_AffineMatrix* parentMatrix); |
+ virtual ~CPDF_TilingPattern(); |
- virtual ~CPDF_TilingPattern(); |
+ FX_BOOL Load(); |
- FX_BOOL Load(); |
+ FX_BOOL m_bColored; |
+ CFX_FloatRect m_BBox; |
+ FX_FLOAT m_XStep; |
- FX_BOOL m_bColored; |
+ FX_FLOAT m_YStep; |
- CFX_FloatRect m_BBox; |
- |
- FX_FLOAT m_XStep; |
- |
- FX_FLOAT m_YStep; |
- |
- |
- |
- CPDF_Form* m_pForm; |
+ CPDF_Form* m_pForm; |
}; |
-class CPDF_ShadingPattern : public CPDF_Pattern |
-{ |
-public: |
- |
- CPDF_ShadingPattern(CPDF_Document* pDoc, CPDF_Object* pPatternObj, FX_BOOL bShading, const CFX_AffineMatrix* parentMatrix); |
+class CPDF_ShadingPattern : public CPDF_Pattern { |
+ public: |
+ CPDF_ShadingPattern(CPDF_Document* pDoc, |
+ CPDF_Object* pPatternObj, |
+ FX_BOOL bShading, |
+ const CFX_AffineMatrix* parentMatrix); |
- virtual ~CPDF_ShadingPattern(); |
+ virtual ~CPDF_ShadingPattern(); |
- CPDF_Object* m_pShadingObj; |
+ CPDF_Object* m_pShadingObj; |
- FX_BOOL m_bShadingObj; |
+ FX_BOOL m_bShadingObj; |
- FX_BOOL Load(); |
+ FX_BOOL Load(); |
- FX_BOOL Reload(); |
+ FX_BOOL Reload(); |
- int m_ShadingType; |
+ int m_ShadingType; |
- CPDF_ColorSpace* m_pCS; |
+ CPDF_ColorSpace* m_pCS; |
+ CPDF_Function* m_pFunctions[4]; |
- CPDF_Function* m_pFunctions[4]; |
+ int m_nFuncs; |
- int m_nFuncs; |
-protected: |
- void Clear(); |
+ protected: |
+ void Clear(); |
}; |
struct CPDF_MeshVertex { |
- FX_FLOAT x, y; |
- FX_FLOAT r, g, b; |
+ FX_FLOAT x, y; |
+ FX_FLOAT r, g, b; |
}; |
-class CPDF_MeshStream : public CFX_Object |
-{ |
-public: |
- |
- FX_BOOL Load(CPDF_Stream* pShadingStream, CPDF_Function** pFuncs, int nFuncs, CPDF_ColorSpace* pCS); |
- |
- FX_DWORD GetFlag(); |
- |
- void GetCoords(FX_FLOAT& x, FX_FLOAT& y); |
- |
- void GetColor(FX_FLOAT& r, FX_FLOAT& g, FX_FLOAT& b); |
- |
- FX_DWORD GetVertex(CPDF_MeshVertex& vertex, CFX_AffineMatrix* pObject2Bitmap); |
- |
- FX_BOOL GetVertexRow(CPDF_MeshVertex* vertex, int count, CFX_AffineMatrix* pObject2Bitmap); |
- CPDF_Function** m_pFuncs; |
- CPDF_ColorSpace* m_pCS; |
- FX_DWORD m_nFuncs, m_nCoordBits, m_nCompBits, m_nFlagBits, m_nComps; |
- FX_DWORD m_CoordMax, m_CompMax; |
- FX_FLOAT m_xmin, m_xmax, m_ymin, m_ymax; |
- FX_FLOAT m_ColorMin[8], m_ColorMax[8]; |
- CPDF_StreamAcc m_Stream; |
- CFX_BitStream m_BitStream; |
+class CPDF_MeshStream : public CFX_Object { |
+ public: |
+ FX_BOOL Load(CPDF_Stream* pShadingStream, |
+ CPDF_Function** pFuncs, |
+ int nFuncs, |
+ CPDF_ColorSpace* pCS); |
+ |
+ FX_DWORD GetFlag(); |
+ |
+ void GetCoords(FX_FLOAT& x, FX_FLOAT& y); |
+ |
+ void GetColor(FX_FLOAT& r, FX_FLOAT& g, FX_FLOAT& b); |
+ |
+ FX_DWORD GetVertex(CPDF_MeshVertex& vertex, CFX_AffineMatrix* pObject2Bitmap); |
+ |
+ FX_BOOL GetVertexRow(CPDF_MeshVertex* vertex, |
+ int count, |
+ CFX_AffineMatrix* pObject2Bitmap); |
+ CPDF_Function** m_pFuncs; |
+ CPDF_ColorSpace* m_pCS; |
+ FX_DWORD m_nFuncs, m_nCoordBits, m_nCompBits, m_nFlagBits, m_nComps; |
+ FX_DWORD m_CoordMax, m_CompMax; |
+ FX_FLOAT m_xmin, m_xmax, m_ymin, m_ymax; |
+ FX_FLOAT m_ColorMin[8], m_ColorMax[8]; |
+ CPDF_StreamAcc m_Stream; |
+ CFX_BitStream m_BitStream; |
}; |
-#define PDF_IMAGE_NO_COMPRESS 0x0000 |
-#define PDF_IMAGE_LOSSY_COMPRESS 0x0001 |
-#define PDF_IMAGE_LOSSLESS_COMPRESS 0x0002 |
-#define PDF_IMAGE_MASK_LOSSY_COMPRESS 0x0004 |
-#define PDF_IMAGE_MASK_LOSSLESS_COMPRESS 0x0008 |
-class CPDF_ImageSetParam |
-{ |
-public: |
- CPDF_ImageSetParam() |
- : pMatteColor(NULL) |
- , nQuality(80) |
- { |
- } |
- FX_ARGB* pMatteColor; |
- FX_INT32 nQuality; |
+#define PDF_IMAGE_NO_COMPRESS 0x0000 |
+#define PDF_IMAGE_LOSSY_COMPRESS 0x0001 |
+#define PDF_IMAGE_LOSSLESS_COMPRESS 0x0002 |
+#define PDF_IMAGE_MASK_LOSSY_COMPRESS 0x0004 |
+#define PDF_IMAGE_MASK_LOSSLESS_COMPRESS 0x0008 |
+class CPDF_ImageSetParam { |
+ public: |
+ CPDF_ImageSetParam() : pMatteColor(NULL), nQuality(80) {} |
+ FX_ARGB* pMatteColor; |
+ FX_INT32 nQuality; |
}; |
-class CPDF_Image : public CFX_Object |
-{ |
-public: |
- |
- CPDF_Image(CPDF_Document* pDoc); |
- |
- ~CPDF_Image(); |
- |
- FX_BOOL LoadImageF(CPDF_Stream* pImageStream, FX_BOOL bInline); |
- |
- void Release(); |
- |
- CPDF_Image* Clone(); |
- |
- FX_BOOL IsInline() |
- { |
- return m_bInline; |
- } |
+class CPDF_Image : public CFX_Object { |
+ public: |
+ CPDF_Image(CPDF_Document* pDoc); |
- void SetInlineDict(CPDF_Dictionary* pDict) |
- { |
- m_pInlineDict = pDict; |
- } |
+ ~CPDF_Image(); |
- CPDF_Dictionary* GetInlineDict() const |
- { |
- return m_pInlineDict; |
- } |
+ FX_BOOL LoadImageF(CPDF_Stream* pImageStream, FX_BOOL bInline); |
- CPDF_Stream* GetStream() const |
- { |
- return m_pStream; |
- } |
+ void Release(); |
- CPDF_Dictionary* GetDict() const |
- { |
- return m_pStream? m_pStream->GetDict(): NULL; |
- } |
+ CPDF_Image* Clone(); |
- CPDF_Dictionary* GetOC() const |
- { |
- return m_pOC; |
- } |
+ FX_BOOL IsInline() { return m_bInline; } |
- CPDF_Document* GetDocument() const |
- { |
- return m_pDocument; |
- } |
+ void SetInlineDict(CPDF_Dictionary* pDict) { m_pInlineDict = pDict; } |
+ CPDF_Dictionary* GetInlineDict() const { return m_pInlineDict; } |
+ CPDF_Stream* GetStream() const { return m_pStream; } |
- FX_INT32 GetPixelHeight() const |
- { |
- return m_Height; |
- } |
+ CPDF_Dictionary* GetDict() const { |
+ return m_pStream ? m_pStream->GetDict() : NULL; |
+ } |
- FX_INT32 GetPixelWidth() const |
- { |
- return m_Width; |
- } |
+ CPDF_Dictionary* GetOC() const { return m_pOC; } |
+ CPDF_Document* GetDocument() const { return m_pDocument; } |
- FX_BOOL IsMask() const |
- { |
- return m_bIsMask; |
- } |
+ FX_INT32 GetPixelHeight() const { return m_Height; } |
- FX_BOOL IsInterpol() const |
- { |
- return m_bInterpolate; |
- } |
+ FX_INT32 GetPixelWidth() const { return m_Width; } |
- CFX_DIBSource* LoadDIBSource(CFX_DIBSource** ppMask = NULL, FX_DWORD* pMatteColor = NULL, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE) const; |
+ FX_BOOL IsMask() const { return m_bIsMask; } |
+ FX_BOOL IsInterpol() const { return m_bInterpolate; } |
+ CFX_DIBSource* LoadDIBSource(CFX_DIBSource** ppMask = NULL, |
+ FX_DWORD* pMatteColor = NULL, |
+ FX_BOOL bStdCS = FALSE, |
+ FX_DWORD GroupFamily = 0, |
+ FX_BOOL bLoadMask = FALSE) const; |
- void SetImage(const CFX_DIBitmap* pDIBitmap, FX_INT32 iCompress, IFX_FileWrite *pFileWrite = NULL, IFX_FileRead *pFileRead = NULL, const CFX_DIBitmap* pMask = NULL, const CPDF_ImageSetParam* pParam = NULL); |
+ void SetImage(const CFX_DIBitmap* pDIBitmap, |
+ FX_INT32 iCompress, |
+ IFX_FileWrite* pFileWrite = NULL, |
+ IFX_FileRead* pFileRead = NULL, |
+ const CFX_DIBitmap* pMask = NULL, |
+ const CPDF_ImageSetParam* pParam = NULL); |
- void SetJpegImage(FX_BYTE* pImageData, FX_DWORD size); |
+ void SetJpegImage(FX_BYTE* pImageData, FX_DWORD size); |
- void SetJpegImage(IFX_FileRead *pFile); |
+ void SetJpegImage(IFX_FileRead* pFile); |
- void ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pDIBitmap); |
+ void ResetCache(CPDF_Page* pPage, const CFX_DIBitmap* pDIBitmap); |
-public: |
- FX_BOOL StartLoadDIBSource(CPDF_Dictionary* pFormResource, CPDF_Dictionary* pPageResource, FX_BOOL bStdCS = FALSE, FX_DWORD GroupFamily = 0, FX_BOOL bLoadMask = FALSE); |
- FX_BOOL Continue(IFX_Pause* pPause); |
- CFX_DIBSource* DetachBitmap(); |
- CFX_DIBSource* DetachMask(); |
- CFX_DIBSource* m_pDIBSource; |
- CFX_DIBSource* m_pMask; |
- FX_DWORD m_MatteColor; |
-private: |
+ public: |
+ FX_BOOL StartLoadDIBSource(CPDF_Dictionary* pFormResource, |
+ CPDF_Dictionary* pPageResource, |
+ FX_BOOL bStdCS = FALSE, |
+ FX_DWORD GroupFamily = 0, |
+ FX_BOOL bLoadMask = FALSE); |
+ FX_BOOL Continue(IFX_Pause* pPause); |
+ CFX_DIBSource* DetachBitmap(); |
+ CFX_DIBSource* DetachMask(); |
+ CFX_DIBSource* m_pDIBSource; |
+ CFX_DIBSource* m_pMask; |
+ FX_DWORD m_MatteColor; |
- CPDF_Stream* m_pStream; |
- FX_BOOL m_bInline; |
- CPDF_Dictionary* m_pInlineDict; |
+ private: |
+ CPDF_Stream* m_pStream; |
+ FX_BOOL m_bInline; |
+ CPDF_Dictionary* m_pInlineDict; |
- FX_INT32 m_Height; |
+ FX_INT32 m_Height; |
- FX_INT32 m_Width; |
+ FX_INT32 m_Width; |
- FX_BOOL m_bIsMask; |
+ FX_BOOL m_bIsMask; |
- FX_BOOL m_bInterpolate; |
+ FX_BOOL m_bInterpolate; |
- CPDF_Document* m_pDocument; |
+ CPDF_Document* m_pDocument; |
- CPDF_Dictionary* m_pOC; |
- CPDF_Dictionary* InitJPEG(FX_LPBYTE pData, FX_DWORD size); |
+ CPDF_Dictionary* m_pOC; |
+ CPDF_Dictionary* InitJPEG(FX_LPBYTE pData, FX_DWORD size); |
}; |
#endif |