diff options
Diffstat (limited to 'core/include/fpdfapi/fpdf_page.h')
-rw-r--r-- | core/include/fpdfapi/fpdf_page.h | 498 |
1 files changed, 249 insertions, 249 deletions
diff --git a/core/include/fpdfapi/fpdf_page.h b/core/include/fpdfapi/fpdf_page.h index 29b8c684a8..3fea866730 100644 --- a/core/include/fpdfapi/fpdf_page.h +++ b/core/include/fpdfapi/fpdf_page.h @@ -1,249 +1,249 @@ -// 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_PAGE_
-#define _FPDF_PAGE_
-#ifndef _FPDF_PARSER_
-#include "fpdf_parser.h"
-#endif
-#ifndef _FPDF_RESOURCE_
-#include "fpdf_resource.h"
-#endif
-#ifndef _FX_DIB_H_
-#include "../fxge/fx_dib.h"
-#endif
-class CPDF_PageObjects;
-class CPDF_Page;
-class CPDF_Form;
-class CPDF_ParseOptions;
-class CPDF_PageObject;
-class CPDF_PageRenderCache;
-class CPDF_StreamFilter;
-class CPDF_AllStates;
-class CPDF_ContentParser;
-class CPDF_StreamContentParser;
-class CPDF_ResourceNaming;
-#define PDFTRANS_GROUP 0x0100
-#define PDFTRANS_ISOLATED 0x0200
-#define PDFTRANS_KNOCKOUT 0x0400
-#define PDF_CONTENT_NOT_PARSED 0
-#define PDF_CONTENT_PARSING 1
-#define PDF_CONTENT_PARSED 2
-class CPDF_PageObjects : public CFX_Object
-{
-public:
-
- CPDF_PageObjects(FX_BOOL bReleaseMembers = TRUE);
-
- ~CPDF_PageObjects();
-
-
-
-
- void ContinueParse(IFX_Pause* pPause);
-
- int GetParseState() const
- {
- return m_ParseState;
- }
-
- FX_BOOL IsParsed() const
- {
- return m_ParseState == PDF_CONTENT_PARSED;
- }
-
- int EstimateParseProgress() const;
-
-
-
-
- FX_POSITION GetFirstObjectPosition() const
- {
- return m_ObjectList.GetHeadPosition();
- }
-
- FX_POSITION GetLastObjectPosition() const
- {
- return m_ObjectList.GetTailPosition();
- }
-
- CPDF_PageObject* GetNextObject(FX_POSITION& pos) const
- {
- return (CPDF_PageObject*)m_ObjectList.GetNext(pos);
- }
-
- CPDF_PageObject* GetPrevObject(FX_POSITION& pos) const
- {
- return (CPDF_PageObject*)m_ObjectList.GetPrev(pos);
- }
-
- CPDF_PageObject* GetObjectAt(FX_POSITION pos) const
- {
- return (CPDF_PageObject*)m_ObjectList.GetAt(pos);
- }
-
- FX_DWORD CountObjects() const
- {
- return m_ObjectList.GetCount();
- }
-
- int GetObjectIndex(CPDF_PageObject* pObj) const;
-
- CPDF_PageObject* GetObjectByIndex(int index) const;
-
-
-
-
-
- FX_POSITION InsertObject(FX_POSITION posInsertAfter, CPDF_PageObject* pNewObject);
-
- void Transform(const CFX_AffineMatrix& matrix);
-
- FX_BOOL BackgroundAlphaNeeded() const
- {
- return m_bBackgroundAlphaNeeded;
- }
-
- CFX_FloatRect CalcBoundingBox() const;
-
- CPDF_Dictionary* m_pFormDict;
-
- CPDF_Stream* m_pFormStream;
-
- CPDF_Document* m_pDocument;
-
- CPDF_Dictionary* m_pPageResources;
-
- CPDF_Dictionary* m_pResources;
-
- CFX_FloatRect m_BBox;
-
- int m_Transparency;
-
-protected:
- friend class CPDF_ContentParser;
- friend class CPDF_StreamContentParser;
- friend class CPDF_AllStates;
-
- CFX_PtrList m_ObjectList;
-
- FX_BOOL m_bBackgroundAlphaNeeded;
-
- FX_BOOL m_bReleaseMembers;
- void LoadTransInfo();
- void ClearCacheObjects();
-
- CPDF_ContentParser* m_pParser;
-
- FX_BOOL m_ParseState;
-};
-class CPDF_Page : public CPDF_PageObjects, public CFX_PrivateData
-{
-public:
-
- CPDF_Page();
-
- ~CPDF_Page();
-
- void Load(CPDF_Document* pDocument, CPDF_Dictionary* pPageDict, FX_BOOL bPageCache = TRUE);
-
- void StartParse(CPDF_ParseOptions* pOptions = NULL, FX_BOOL bReParse = FALSE);
-
- void ParseContent(CPDF_ParseOptions* pOptions = NULL, FX_BOOL bReParse = FALSE);
-
- void GetDisplayMatrix(CFX_AffineMatrix& matrix, int xPos, int yPos,
- int xSize, int ySize, int iRotate) const;
-
- FX_FLOAT GetPageWidth() const
- {
- return m_PageWidth;
- }
-
- FX_FLOAT GetPageHeight() const
- {
- return m_PageHeight;
- }
-
- CFX_FloatRect GetPageBBox() const
- {
- return m_BBox;
- }
-
- const CFX_AffineMatrix& GetPageMatrix() const
- {
- return m_PageMatrix;
- }
-
- CPDF_Object* GetPageAttr(FX_BSTR name) const;
-
-
-
- CPDF_PageRenderCache* GetRenderCache() const
- {
- return m_pPageRender;
- }
-
- void ClearRenderCache();
-
-protected:
- friend class CPDF_ContentParser;
-
- FX_FLOAT m_PageWidth;
-
- FX_FLOAT m_PageHeight;
-
- CFX_AffineMatrix m_PageMatrix;
-
- CPDF_PageRenderCache* m_pPageRender;
-};
-class CPDF_ParseOptions : public CFX_Object
-{
-public:
-
- CPDF_ParseOptions();
-
- FX_BOOL m_bTextOnly;
-
- FX_BOOL m_bMarkedContent;
-
- FX_BOOL m_bSeparateForm;
-
- FX_BOOL m_bDecodeInlineImage;
-};
-class CPDF_Form : public CPDF_PageObjects
-{
-public:
-
- CPDF_Form(CPDF_Document* pDocument, CPDF_Dictionary* pPageResources, CPDF_Stream* pFormStream, CPDF_Dictionary* pParentResources = NULL);
-
- ~CPDF_Form();
-
- void StartParse(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix,
- CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptions, int level = 0);
-
- void ParseContent(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix,
- CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptions, int level = 0);
-
- CPDF_Form* Clone() const;
-};
-class CPDF_PageContentGenerate : public CFX_Object
-{
-public:
- CPDF_PageContentGenerate(CPDF_Page* pPage);
- ~CPDF_PageContentGenerate();
- FX_BOOL InsertPageObject(CPDF_PageObject* pPageObject);
- void GenerateContent();
- void TransformContent(CFX_Matrix& matrix);
-protected:
- void ProcessImage(CFX_ByteTextBuf& buf, CPDF_ImageObject* pImageObj);
- void ProcessForm(CFX_ByteTextBuf& buf, FX_LPCBYTE data, FX_DWORD size, CFX_Matrix& matrix);
- CFX_ByteString RealizeResource(CPDF_Object* pResourceObj, const FX_CHAR* szType);
-private:
- CPDF_Page* m_pPage;
- CPDF_Document* m_pDocument;
- CFX_PtrArray m_pageObjects;
-};
-#endif
+// 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_PAGE_ +#define _FPDF_PAGE_ +#ifndef _FPDF_PARSER_ +#include "fpdf_parser.h" +#endif +#ifndef _FPDF_RESOURCE_ +#include "fpdf_resource.h" +#endif +#ifndef _FX_DIB_H_ +#include "../fxge/fx_dib.h" +#endif +class CPDF_PageObjects; +class CPDF_Page; +class CPDF_Form; +class CPDF_ParseOptions; +class CPDF_PageObject; +class CPDF_PageRenderCache; +class CPDF_StreamFilter; +class CPDF_AllStates; +class CPDF_ContentParser; +class CPDF_StreamContentParser; +class CPDF_ResourceNaming; +#define PDFTRANS_GROUP 0x0100 +#define PDFTRANS_ISOLATED 0x0200 +#define PDFTRANS_KNOCKOUT 0x0400 +#define PDF_CONTENT_NOT_PARSED 0 +#define PDF_CONTENT_PARSING 1 +#define PDF_CONTENT_PARSED 2 +class CPDF_PageObjects : public CFX_Object +{ +public: + + CPDF_PageObjects(FX_BOOL bReleaseMembers = TRUE); + + ~CPDF_PageObjects(); + + + + + void ContinueParse(IFX_Pause* pPause); + + int GetParseState() const + { + return m_ParseState; + } + + FX_BOOL IsParsed() const + { + return m_ParseState == PDF_CONTENT_PARSED; + } + + int EstimateParseProgress() const; + + + + + FX_POSITION GetFirstObjectPosition() const + { + return m_ObjectList.GetHeadPosition(); + } + + FX_POSITION GetLastObjectPosition() const + { + return m_ObjectList.GetTailPosition(); + } + + CPDF_PageObject* GetNextObject(FX_POSITION& pos) const + { + return (CPDF_PageObject*)m_ObjectList.GetNext(pos); + } + + CPDF_PageObject* GetPrevObject(FX_POSITION& pos) const + { + return (CPDF_PageObject*)m_ObjectList.GetPrev(pos); + } + + CPDF_PageObject* GetObjectAt(FX_POSITION pos) const + { + return (CPDF_PageObject*)m_ObjectList.GetAt(pos); + } + + FX_DWORD CountObjects() const + { + return m_ObjectList.GetCount(); + } + + int GetObjectIndex(CPDF_PageObject* pObj) const; + + CPDF_PageObject* GetObjectByIndex(int index) const; + + + + + + FX_POSITION InsertObject(FX_POSITION posInsertAfter, CPDF_PageObject* pNewObject); + + void Transform(const CFX_AffineMatrix& matrix); + + FX_BOOL BackgroundAlphaNeeded() const + { + return m_bBackgroundAlphaNeeded; + } + + CFX_FloatRect CalcBoundingBox() const; + + CPDF_Dictionary* m_pFormDict; + + CPDF_Stream* m_pFormStream; + + CPDF_Document* m_pDocument; + + CPDF_Dictionary* m_pPageResources; + + CPDF_Dictionary* m_pResources; + + CFX_FloatRect m_BBox; + + int m_Transparency; + +protected: + friend class CPDF_ContentParser; + friend class CPDF_StreamContentParser; + friend class CPDF_AllStates; + + CFX_PtrList m_ObjectList; + + FX_BOOL m_bBackgroundAlphaNeeded; + + FX_BOOL m_bReleaseMembers; + void LoadTransInfo(); + void ClearCacheObjects(); + + CPDF_ContentParser* m_pParser; + + FX_BOOL m_ParseState; +}; +class CPDF_Page : public CPDF_PageObjects, public CFX_PrivateData +{ +public: + + CPDF_Page(); + + ~CPDF_Page(); + + void Load(CPDF_Document* pDocument, CPDF_Dictionary* pPageDict, FX_BOOL bPageCache = TRUE); + + void StartParse(CPDF_ParseOptions* pOptions = NULL, FX_BOOL bReParse = FALSE); + + void ParseContent(CPDF_ParseOptions* pOptions = NULL, FX_BOOL bReParse = FALSE); + + void GetDisplayMatrix(CFX_AffineMatrix& matrix, int xPos, int yPos, + int xSize, int ySize, int iRotate) const; + + FX_FLOAT GetPageWidth() const + { + return m_PageWidth; + } + + FX_FLOAT GetPageHeight() const + { + return m_PageHeight; + } + + CFX_FloatRect GetPageBBox() const + { + return m_BBox; + } + + const CFX_AffineMatrix& GetPageMatrix() const + { + return m_PageMatrix; + } + + CPDF_Object* GetPageAttr(FX_BSTR name) const; + + + + CPDF_PageRenderCache* GetRenderCache() const + { + return m_pPageRender; + } + + void ClearRenderCache(); + +protected: + friend class CPDF_ContentParser; + + FX_FLOAT m_PageWidth; + + FX_FLOAT m_PageHeight; + + CFX_AffineMatrix m_PageMatrix; + + CPDF_PageRenderCache* m_pPageRender; +}; +class CPDF_ParseOptions : public CFX_Object +{ +public: + + CPDF_ParseOptions(); + + FX_BOOL m_bTextOnly; + + FX_BOOL m_bMarkedContent; + + FX_BOOL m_bSeparateForm; + + FX_BOOL m_bDecodeInlineImage; +}; +class CPDF_Form : public CPDF_PageObjects +{ +public: + + CPDF_Form(CPDF_Document* pDocument, CPDF_Dictionary* pPageResources, CPDF_Stream* pFormStream, CPDF_Dictionary* pParentResources = NULL); + + ~CPDF_Form(); + + void StartParse(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix, + CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptions, int level = 0); + + void ParseContent(CPDF_AllStates* pGraphicStates, CFX_AffineMatrix* pParentMatrix, + CPDF_Type3Char* pType3Char, CPDF_ParseOptions* pOptions, int level = 0); + + CPDF_Form* Clone() const; +}; +class CPDF_PageContentGenerate : public CFX_Object +{ +public: + CPDF_PageContentGenerate(CPDF_Page* pPage); + ~CPDF_PageContentGenerate(); + FX_BOOL InsertPageObject(CPDF_PageObject* pPageObject); + void GenerateContent(); + void TransformContent(CFX_Matrix& matrix); +protected: + void ProcessImage(CFX_ByteTextBuf& buf, CPDF_ImageObject* pImageObj); + void ProcessForm(CFX_ByteTextBuf& buf, FX_LPCBYTE data, FX_DWORD size, CFX_Matrix& matrix); + CFX_ByteString RealizeResource(CPDF_Object* pResourceObj, const FX_CHAR* szType); +private: + CPDF_Page* m_pPage; + CPDF_Document* m_pDocument; + CFX_PtrArray m_pageObjects; +}; +#endif |