diff options
Diffstat (limited to 'core/include/fpdfapi')
24 files changed, 2 insertions, 1791 deletions
diff --git a/core/include/fpdfapi/cfdf_document.h b/core/include/fpdfapi/cfdf_document.h deleted file mode 100644 index 85852cd8cf..0000000000 --- a/core/include/fpdfapi/cfdf_document.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_ -#define CORE_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_ - -#include "core/include/fpdfapi/cpdf_indirect_object_holder.h" -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_basic.h" - -class CPDF_Dictionary; - -class CFDF_Document : public CPDF_IndirectObjectHolder { - public: - static CFDF_Document* CreateNewDoc(); - static CFDF_Document* ParseFile(IFX_FileRead* pFile, - FX_BOOL bOwnFile = FALSE); - static CFDF_Document* ParseMemory(const uint8_t* pData, FX_DWORD size); - ~CFDF_Document(); - - FX_BOOL WriteBuf(CFX_ByteTextBuf& buf) const; - CPDF_Dictionary* GetRoot() const { return m_pRootDict; } - - protected: - CFDF_Document(); - void ParseStream(IFX_FileRead* pFile, FX_BOOL bOwnFile); - - CPDF_Dictionary* m_pRootDict; - IFX_FileRead* m_pFile; - FX_BOOL m_bOwnFile; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CFDF_DOCUMENT_H_ diff --git a/core/include/fpdfapi/cpdf_array.h b/core/include/fpdfapi/cpdf_array.h deleted file mode 100644 index 8e47d9fef5..0000000000 --- a/core/include/fpdfapi/cpdf_array.h +++ /dev/null @@ -1,65 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_ARRAY_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_ARRAY_H_ - -#include "core/include/fpdfapi/cpdf_indirect_object_holder.h" -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_basic.h" -#include "core/include/fxcrt/fx_coordinates.h" - -class CPDF_Array : public CPDF_Object { - public: - CPDF_Array(); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CPDF_Array* GetArray() const override; - bool IsArray() const override; - CPDF_Array* AsArray() override; - const CPDF_Array* AsArray() const override; - - FX_DWORD GetCount() const { return m_Objects.GetSize(); } - CPDF_Object* GetElement(FX_DWORD index) const; - CPDF_Object* GetElementValue(FX_DWORD index) const; - CFX_Matrix GetMatrix(); - CFX_FloatRect GetRect(); - CFX_ByteString GetStringAt(FX_DWORD index) const; - CFX_ByteStringC GetConstStringAt(FX_DWORD index) const; - int GetIntegerAt(FX_DWORD index) const; - FX_FLOAT GetNumberAt(FX_DWORD index) const; - CPDF_Dictionary* GetDictAt(FX_DWORD index) const; - CPDF_Stream* GetStreamAt(FX_DWORD index) const; - CPDF_Array* GetArrayAt(FX_DWORD index) const; - FX_FLOAT GetFloatAt(FX_DWORD index) const { return GetNumberAt(index); } - - void SetAt(FX_DWORD index, - CPDF_Object* pObj, - CPDF_IndirectObjectHolder* pObjs = nullptr); - void InsertAt(FX_DWORD index, - CPDF_Object* pObj, - CPDF_IndirectObjectHolder* pObjs = nullptr); - void RemoveAt(FX_DWORD index, int nCount = 1); - - void Add(CPDF_Object* pObj, CPDF_IndirectObjectHolder* pObjs = nullptr); - void AddNumber(FX_FLOAT f); - void AddInteger(int i); - void AddString(const CFX_ByteString& str); - void AddName(const CFX_ByteString& str); - void AddReference(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum); - void AddReference(CPDF_IndirectObjectHolder* pDoc, CPDF_Object* obj) { - AddReference(pDoc, obj->GetObjNum()); - } - - protected: - ~CPDF_Array() override; - - CFX_ArrayTemplate<CPDF_Object*> m_Objects; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_ARRAY_H_ diff --git a/core/include/fpdfapi/cpdf_boolean.h b/core/include/fpdfapi/cpdf_boolean.h deleted file mode 100644 index 0621c0441c..0000000000 --- a/core/include/fpdfapi/cpdf_boolean.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_ - -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Boolean : public CPDF_Object { - public: - CPDF_Boolean(); - explicit CPDF_Boolean(FX_BOOL value); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CFX_ByteString GetString() const override; - int GetInteger() const override; - void SetString(const CFX_ByteString& str) override; - bool IsBoolean() const override; - CPDF_Boolean* AsBoolean() override; - const CPDF_Boolean* AsBoolean() const override; - - protected: - ~CPDF_Boolean() override; - - FX_BOOL m_bValue; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_BOOLEAN_H_ diff --git a/core/include/fpdfapi/cpdf_dictionary.h b/core/include/fpdfapi/cpdf_dictionary.h deleted file mode 100644 index e547f75729..0000000000 --- a/core/include/fpdfapi/cpdf_dictionary.h +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_ - -#include <map> - -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_coordinates.h" -#include "core/include/fxcrt/fx_string.h" - -class CPDF_IndirectObjectHolder; - -class CPDF_Dictionary : public CPDF_Object { - public: - using iterator = std::map<CFX_ByteString, CPDF_Object*>::iterator; - using const_iterator = std::map<CFX_ByteString, CPDF_Object*>::const_iterator; - - CPDF_Dictionary(); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CPDF_Dictionary* GetDict() const override; - bool IsDictionary() const override; - CPDF_Dictionary* AsDictionary() override; - const CPDF_Dictionary* AsDictionary() const override; - - size_t GetCount() const { return m_Map.size(); } - CPDF_Object* GetElement(const CFX_ByteStringC& key) const; - CPDF_Object* GetElementValue(const CFX_ByteStringC& key) const; - CFX_ByteString GetStringBy(const CFX_ByteStringC& key) const; - CFX_ByteStringC GetConstStringBy(const CFX_ByteStringC& key) const; - CFX_ByteString GetStringBy(const CFX_ByteStringC& key, - const CFX_ByteStringC& default_str) const; - CFX_ByteStringC GetConstStringBy(const CFX_ByteStringC& key, - const CFX_ByteStringC& default_str) const; - CFX_WideString GetUnicodeTextBy(const CFX_ByteStringC& key) const; - int GetIntegerBy(const CFX_ByteStringC& key) const; - int GetIntegerBy(const CFX_ByteStringC& key, int default_int) const; - FX_BOOL GetBooleanBy(const CFX_ByteStringC& key, - FX_BOOL bDefault = FALSE) const; - FX_FLOAT GetNumberBy(const CFX_ByteStringC& key) const; - CPDF_Dictionary* GetDictBy(const CFX_ByteStringC& key) const; - CPDF_Stream* GetStreamBy(const CFX_ByteStringC& key) const; - CPDF_Array* GetArrayBy(const CFX_ByteStringC& key) const; - CFX_FloatRect GetRectBy(const CFX_ByteStringC& key) const; - CFX_Matrix GetMatrixBy(const CFX_ByteStringC& key) const; - FX_FLOAT GetFloatBy(const CFX_ByteStringC& key) const { - return GetNumberBy(key); - } - - FX_BOOL KeyExist(const CFX_ByteStringC& key) const; - bool IsSignatureDict() const; - - // Set* functions invalidate iterators for the element with the key |key|. - void SetAt(const CFX_ByteStringC& key, CPDF_Object* pObj); - void SetAtName(const CFX_ByteStringC& key, const CFX_ByteString& name); - void SetAtString(const CFX_ByteStringC& key, const CFX_ByteString& str); - void SetAtInteger(const CFX_ByteStringC& key, int i); - void SetAtNumber(const CFX_ByteStringC& key, FX_FLOAT f); - void SetAtReference(const CFX_ByteStringC& key, - CPDF_IndirectObjectHolder* pDoc, - FX_DWORD objnum); - void SetAtReference(const CFX_ByteStringC& key, - CPDF_IndirectObjectHolder* pDoc, - CPDF_Object* obj) { - SetAtReference(key, pDoc, obj->GetObjNum()); - } - void SetAtRect(const CFX_ByteStringC& key, const CFX_FloatRect& rect); - void SetAtMatrix(const CFX_ByteStringC& key, const CFX_Matrix& matrix); - void SetAtBoolean(const CFX_ByteStringC& key, FX_BOOL bValue); - - void AddReference(const CFX_ByteStringC& key, - CPDF_IndirectObjectHolder* pDoc, - FX_DWORD objnum); - - // Invalidates iterators for the element with the key |key|. - void RemoveAt(const CFX_ByteStringC& key); - - // Invalidates iterators for the element with the key |oldkey|. - void ReplaceKey(const CFX_ByteStringC& oldkey, const CFX_ByteStringC& newkey); - - iterator begin() { return m_Map.begin(); } - iterator end() { return m_Map.end(); } - const_iterator begin() const { return m_Map.begin(); } - const_iterator end() const { return m_Map.end(); } - - protected: - ~CPDF_Dictionary() override; - - std::map<CFX_ByteString, CPDF_Object*> m_Map; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_DICTIONARY_H_ diff --git a/core/include/fpdfapi/cpdf_document.h b/core/include/fpdfapi/cpdf_document.h deleted file mode 100644 index af7e2ab787..0000000000 --- a/core/include/fpdfapi/cpdf_document.h +++ /dev/null @@ -1,137 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_ - -#include "core/include/fpdfapi/cpdf_indirect_object_holder.h" -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_basic.h" - -class CFX_Font; -class CFX_Matrix; -class CPDF_ColorSpace; -class CPDF_DocPageData; -class CPDF_DocRenderData; -class CPDF_Font; -class CPDF_FontEncoding; -class CPDF_IccProfile; -class CPDF_Image; -class CPDF_Pattern; -class CPDF_StreamAcc; - -#define FPDFPERM_PRINT 0x0004 -#define FPDFPERM_MODIFY 0x0008 -#define FPDFPERM_EXTRACT 0x0010 -#define FPDFPERM_ANNOT_FORM 0x0020 -#define FPDFPERM_FILL_FORM 0x0100 -#define FPDFPERM_EXTRACT_ACCESS 0x0200 -#define FPDFPERM_ASSEMBLE 0x0400 -#define FPDFPERM_PRINT_HIGH 0x0800 -#define FPDF_PAGE_MAX_NUM 0xFFFFF - -class CPDF_Document : public CFX_PrivateData, public CPDF_IndirectObjectHolder { - public: - CPDF_Document(); - explicit CPDF_Document(CPDF_Parser* pParser); - ~CPDF_Document(); - - CPDF_Parser* GetParser() const { return m_pParser; } - CPDF_Dictionary* GetRoot() const { return m_pRootDict; } - CPDF_Dictionary* GetInfo() const { return m_pInfoDict; } - - void GetID(CFX_ByteString& id1, CFX_ByteString& id2) const { - id1 = m_ID1; - id2 = m_ID2; - } - - int GetPageCount() const; - CPDF_Dictionary* GetPage(int iPage); - int GetPageIndex(FX_DWORD objnum); - FX_DWORD GetUserPermissions(FX_BOOL bCheckRevision = FALSE) const; - CPDF_DocPageData* GetPageData() { return GetValidatePageData(); } - void ClearPageData(); - void RemoveColorSpaceFromPageData(CPDF_Object* pObject); - - CPDF_DocRenderData* GetRenderData() { return GetValidateRenderData(); } - void ClearRenderData(); - void ClearRenderFont(); - - FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm) const; - - // |pFontDict| must not be null. - CPDF_Font* LoadFont(CPDF_Dictionary* pFontDict); - CPDF_ColorSpace* LoadColorSpace(CPDF_Object* pCSObj, - CPDF_Dictionary* pResources = NULL); - - CPDF_Pattern* LoadPattern(CPDF_Object* pObj, - FX_BOOL bShading, - const CFX_Matrix* matrix = NULL); - - CPDF_Image* LoadImageF(CPDF_Object* pObj); - CPDF_StreamAcc* LoadFontFile(CPDF_Stream* pStream); - CPDF_IccProfile* LoadIccProfile(CPDF_Stream* pStream); - -#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ - - CPDF_Font* AddWindowsFont(LOGFONTA* pLogFont, - FX_BOOL bVert, - FX_BOOL bTranslateName = FALSE); - CPDF_Font* AddWindowsFont(LOGFONTW* pLogFont, - FX_BOOL bVert, - FX_BOOL bTranslateName = FALSE); -#endif -#if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ - CPDF_Font* AddMacFont(CTFontRef pFont, - FX_BOOL bVert, - FX_BOOL bTranslateName = FALSE); -#endif - - CPDF_Font* AddStandardFont(const FX_CHAR* font, CPDF_FontEncoding* pEncoding); - CPDF_Font* AddFont(CFX_Font* pFont, int charset, FX_BOOL bVert); - void CreateNewDoc(); - - CPDF_Dictionary* CreateNewPage(int iPage); - void DeletePage(int iPage); - - void LoadDoc(); - void LoadAsynDoc(CPDF_Dictionary* pLinearized); - void LoadPages(); - - protected: - // Retrieve page count information by getting count value from the tree nodes - // or walking through the tree nodes to calculate it. - int RetrievePageCount() const; - CPDF_Dictionary* _FindPDFPage(CPDF_Dictionary* pPages, - int iPage, - int nPagesToGo, - int level); - int _FindPageIndex(CPDF_Dictionary* pNode, - FX_DWORD& skip_count, - FX_DWORD objnum, - int& index, - int level = 0); - FX_BOOL CheckOCGVisible(CPDF_Dictionary* pOCG, FX_BOOL bPrinting); - CPDF_DocPageData* GetValidatePageData(); - CPDF_DocRenderData* GetValidateRenderData(); - friend class CPDF_Creator; - friend class CPDF_Parser; - friend class CPDF_DataAvail; - friend class CPDF_OCContext; - - CPDF_Dictionary* m_pRootDict; - CPDF_Dictionary* m_pInfoDict; - CFX_ByteString m_ID1; - CFX_ByteString m_ID2; - FX_BOOL m_bLinearized; - FX_DWORD m_dwFirstPageNo; - FX_DWORD m_dwFirstPageObjNum; - CFX_DWordArray m_PageList; - CPDF_DocPageData* m_pDocPage; - CPDF_DocRenderData* m_pDocRender; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_DOCUMENT_H_ diff --git a/core/include/fpdfapi/cpdf_indirect_object_holder.h b/core/include/fpdfapi/cpdf_indirect_object_holder.h deleted file mode 100644 index 9f12323669..0000000000 --- a/core/include/fpdfapi/cpdf_indirect_object_holder.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_ - -#include <map> - -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Object; -class CPDF_Parser; - -class CPDF_IndirectObjectHolder { - public: - using iterator = std::map<FX_DWORD, CPDF_Object*>::iterator; - using const_iterator = std::map<FX_DWORD, CPDF_Object*>::const_iterator; - - explicit CPDF_IndirectObjectHolder(CPDF_Parser* pParser); - ~CPDF_IndirectObjectHolder(); - - CPDF_Object* GetIndirectObject(FX_DWORD objnum); - FX_DWORD AddIndirectObject(CPDF_Object* pObj); - void ReleaseIndirectObject(FX_DWORD objnum); - - // Takes ownership of |pObj|. - FX_BOOL InsertIndirectObject(FX_DWORD objnum, CPDF_Object* pObj); - - FX_DWORD GetLastObjNum() const { return m_LastObjNum; } - iterator begin() { return m_IndirectObjs.begin(); } - const_iterator begin() const { return m_IndirectObjs.begin(); } - iterator end() { return m_IndirectObjs.end(); } - const_iterator end() const { return m_IndirectObjs.end(); } - - protected: - CPDF_Parser* m_pParser; - FX_DWORD m_LastObjNum; - std::map<FX_DWORD, CPDF_Object*> m_IndirectObjs; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_INDIRECT_OBJECT_HOLDER_H_ diff --git a/core/include/fpdfapi/cpdf_name.h b/core/include/fpdfapi/cpdf_name.h deleted file mode 100644 index c956244112..0000000000 --- a/core/include/fpdfapi/cpdf_name.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_NAME_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_NAME_H_ - -#include "core/include/fpdfapi/cpdf_object.h" - -class CPDF_Name : public CPDF_Object { - public: - explicit CPDF_Name(const CFX_ByteString& str); - explicit CPDF_Name(const CFX_ByteStringC& str); - explicit CPDF_Name(const FX_CHAR* str); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CFX_ByteString GetString() const override; - CFX_ByteStringC GetConstString() const override; - CFX_WideString GetUnicodeText() const override; - void SetString(const CFX_ByteString& str) override; - bool IsName() const override; - CPDF_Name* AsName() override; - const CPDF_Name* AsName() const override; - - protected: - ~CPDF_Name() override; - - CFX_ByteString m_Name; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_NAME_H_ diff --git a/core/include/fpdfapi/cpdf_null.h b/core/include/fpdfapi/cpdf_null.h deleted file mode 100644 index 654c2a4029..0000000000 --- a/core/include/fpdfapi/cpdf_null.h +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_NULL_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_NULL_H_ - -#include "core/include/fpdfapi/cpdf_object.h" - -class CPDF_Null : public CPDF_Object { - public: - CPDF_Null(); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_NULL_H_ diff --git a/core/include/fpdfapi/cpdf_number.h b/core/include/fpdfapi/cpdf_number.h deleted file mode 100644 index 8bab95ebc2..0000000000 --- a/core/include/fpdfapi/cpdf_number.h +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_NUMBER_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_NUMBER_H_ - -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Number : public CPDF_Object { - public: - CPDF_Number(); - explicit CPDF_Number(int value); - explicit CPDF_Number(FX_FLOAT value); - explicit CPDF_Number(const CFX_ByteStringC& str); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CFX_ByteString GetString() const override; - FX_FLOAT GetNumber() const override; - int GetInteger() const override; - void SetString(const CFX_ByteString& str) override; - bool IsNumber() const override; - CPDF_Number* AsNumber() override; - const CPDF_Number* AsNumber() const override; - - FX_BOOL IsInteger() { return m_bInteger; } - - protected: - ~CPDF_Number() override; - - FX_BOOL m_bInteger; - union { - int m_Integer; - FX_FLOAT m_Float; - }; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_NUMBER_H_ diff --git a/core/include/fpdfapi/cpdf_object.h b/core/include/fpdfapi/cpdf_object.h deleted file mode 100644 index 97499d140c..0000000000 --- a/core/include/fpdfapi/cpdf_object.h +++ /dev/null @@ -1,161 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_OBJECT_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_OBJECT_H_ - -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Array; -class CPDF_Boolean; -class CPDF_Dictionary; -class CPDF_Name; -class CPDF_Null; -class CPDF_Number; -class CPDF_Reference; -class CPDF_Stream; -class CPDF_String; - -class CPDF_Object { - public: - enum Type { - BOOLEAN = 1, - NUMBER, - STRING, - NAME, - ARRAY, - DICTIONARY, - STREAM, - NULLOBJ, - REFERENCE - }; - - virtual Type GetType() const = 0; - FX_DWORD GetObjNum() const { return m_ObjNum; } - FX_DWORD GetGenNum() const { return m_GenNum; } - - virtual CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const = 0; - virtual CPDF_Object* GetDirect() const; - - FX_BOOL IsModified() const { return FALSE; } - void Release(); - - virtual CFX_ByteString GetString() const; - virtual CFX_ByteStringC GetConstString() const; - virtual CFX_WideString GetUnicodeText() const; - virtual FX_FLOAT GetNumber() const; - virtual int GetInteger() const; - virtual CPDF_Dictionary* GetDict() const; - virtual CPDF_Array* GetArray() const; - - virtual void SetString(const CFX_ByteString& str); - - virtual bool IsArray() const; - virtual bool IsBoolean() const; - virtual bool IsDictionary() const; - virtual bool IsName() const; - virtual bool IsNumber() const; - virtual bool IsReference() const; - virtual bool IsStream() const; - virtual bool IsString() const; - - virtual CPDF_Array* AsArray(); - virtual const CPDF_Array* AsArray() const; - virtual CPDF_Boolean* AsBoolean(); - virtual const CPDF_Boolean* AsBoolean() const; - virtual CPDF_Dictionary* AsDictionary(); - virtual const CPDF_Dictionary* AsDictionary() const; - virtual CPDF_Name* AsName(); - virtual const CPDF_Name* AsName() const; - virtual CPDF_Number* AsNumber(); - virtual const CPDF_Number* AsNumber() const; - virtual CPDF_Reference* AsReference(); - virtual const CPDF_Reference* AsReference() const; - virtual CPDF_Stream* AsStream(); - virtual const CPDF_Stream* AsStream() const; - virtual CPDF_String* AsString(); - virtual const CPDF_String* AsString() const; - - protected: - CPDF_Object() : m_ObjNum(0), m_GenNum(0) {} - virtual ~CPDF_Object(); - void Destroy() { delete this; } - - FX_DWORD m_ObjNum; - FX_DWORD m_GenNum; - - friend class CPDF_IndirectObjectHolder; - friend class CPDF_Parser; - - private: - CPDF_Object(const CPDF_Object& src) {} -}; - -inline CPDF_Boolean* ToBoolean(CPDF_Object* obj) { - return obj ? obj->AsBoolean() : nullptr; -} - -inline const CPDF_Boolean* ToBoolean(const CPDF_Object* obj) { - return obj ? obj->AsBoolean() : nullptr; -} - -inline CPDF_Number* ToNumber(CPDF_Object* obj) { - return obj ? obj->AsNumber() : nullptr; -} - -inline const CPDF_Number* ToNumber(const CPDF_Object* obj) { - return obj ? obj->AsNumber() : nullptr; -} - -inline CPDF_String* ToString(CPDF_Object* obj) { - return obj ? obj->AsString() : nullptr; -} - -inline const CPDF_String* ToString(const CPDF_Object* obj) { - return obj ? obj->AsString() : nullptr; -} - -inline CPDF_Name* ToName(CPDF_Object* obj) { - return obj ? obj->AsName() : nullptr; -} - -inline const CPDF_Name* ToName(const CPDF_Object* obj) { - return obj ? obj->AsName() : nullptr; -} - -inline CPDF_Array* ToArray(CPDF_Object* obj) { - return obj ? obj->AsArray() : nullptr; -} - -inline const CPDF_Array* ToArray(const CPDF_Object* obj) { - return obj ? obj->AsArray() : nullptr; -} - -inline CPDF_Dictionary* ToDictionary(CPDF_Object* obj) { - return obj ? obj->AsDictionary() : nullptr; -} - -inline const CPDF_Dictionary* ToDictionary(const CPDF_Object* obj) { - return obj ? obj->AsDictionary() : nullptr; -} -inline CPDF_Reference* ToReference(CPDF_Object* obj) { - return obj ? obj->AsReference() : nullptr; -} - -inline const CPDF_Reference* ToReference(const CPDF_Object* obj) { - return obj ? obj->AsReference() : nullptr; -} - -inline CPDF_Stream* ToStream(CPDF_Object* obj) { - return obj ? obj->AsStream() : nullptr; -} - -inline const CPDF_Stream* ToStream(const CPDF_Object* obj) { - return obj ? obj->AsStream() : nullptr; -} - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_OBJECT_H_ diff --git a/core/include/fpdfapi/cpdf_parser.h b/core/include/fpdfapi/cpdf_parser.h deleted file mode 100644 index f2d7343e87..0000000000 --- a/core/include/fpdfapi/cpdf_parser.h +++ /dev/null @@ -1,173 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_PARSER_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_PARSER_H_ - -#include <map> -#include <memory> -#include <set> - -#include "core/include/fxcrt/fx_basic.h" - -class CPDF_Array; -class CPDF_Dictionary; -class CPDF_Document; -class CPDF_IndirectObjectHolder; -class CPDF_Object; -class CPDF_StreamAcc; -class CPDF_SyntaxParser; -class IFX_FileRead; -class IPDF_CryptoHandler; -class IPDF_SecurityHandler; - -class CPDF_Parser { - public: - enum Error { - SUCCESS = 0, - FILE_ERROR, - FORMAT_ERROR, - PASSWORD_ERROR, - HANDLER_ERROR - }; - - CPDF_Parser(); - ~CPDF_Parser(); - - Error StartParse(IFX_FileRead* pFile); - FX_DWORD GetPermissions(FX_BOOL bCheckRevision = FALSE); - - void SetPassword(const FX_CHAR* password) { m_Password = password; } - CFX_ByteString GetPassword() { return m_Password; } - CPDF_Dictionary* GetTrailer() const { return m_pTrailer; } - FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; } - CPDF_Document* GetDocument() const { return m_pDocument; } - - FX_DWORD GetRootObjNum(); - FX_DWORD GetInfoObjNum(); - CPDF_Array* GetIDArray(); - - CPDF_Dictionary* GetEncryptDict() const { return m_pEncryptDict; } - - CPDF_Object* ParseIndirectObject(CPDF_IndirectObjectHolder* pObjList, - FX_DWORD objnum); - - FX_DWORD GetLastObjNum() const; - bool IsValidObjectNumber(FX_DWORD objnum) const; - FX_FILESIZE GetObjectPositionOrZero(FX_DWORD objnum) const; - uint8_t GetObjectType(FX_DWORD objnum) const; - uint16_t GetObjectGenNum(FX_DWORD objnum) const; - bool IsVersionUpdated() const { return m_bVersionUpdated; } - bool IsObjectFreeOrNull(FX_DWORD objnum) const; - FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm); - IPDF_CryptoHandler* GetCryptoHandler(); - IFX_FileRead* GetFileAccess() const; - - FX_FILESIZE GetObjectOffset(FX_DWORD objnum) const; - FX_FILESIZE GetObjectSize(FX_DWORD objnum) const; - - void GetIndirectBinary(FX_DWORD objnum, uint8_t*& pBuffer, FX_DWORD& size); - int GetFileVersion() const { return m_FileVersion; } - FX_BOOL IsXRefStream() const { return m_bXRefStream; } - - CPDF_Object* ParseIndirectObjectAt(CPDF_IndirectObjectHolder* pObjList, - FX_FILESIZE pos, - FX_DWORD objnum); - - CPDF_Object* ParseIndirectObjectAtByStrict( - CPDF_IndirectObjectHolder* pObjList, - FX_FILESIZE pos, - FX_DWORD objnum, - FX_FILESIZE* pResultPos); - - Error StartAsyncParse(IFX_FileRead* pFile); - - FX_DWORD GetFirstPageNo() const { return m_dwFirstPageNo; } - - protected: - struct ObjectInfo { - ObjectInfo() : pos(0), type(0), gennum(0) {} - - FX_FILESIZE pos; - uint8_t type; - uint16_t gennum; - }; - - void CloseParser(); - CPDF_Object* ParseDirect(CPDF_Object* pObj); - FX_BOOL LoadAllCrossRefV4(FX_FILESIZE pos); - FX_BOOL LoadAllCrossRefV5(FX_FILESIZE pos); - bool LoadCrossRefV4(FX_FILESIZE pos, FX_FILESIZE streampos, FX_BOOL bSkip); - FX_BOOL LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef); - CPDF_Dictionary* LoadTrailerV4(); - FX_BOOL RebuildCrossRef(); - Error SetEncryptHandler(); - void ReleaseEncryptHandler(); - FX_BOOL LoadLinearizedAllCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount); - FX_BOOL LoadLinearizedCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount); - FX_BOOL LoadLinearizedAllCrossRefV5(FX_FILESIZE pos); - Error LoadLinearizedMainXRefTable(); - CPDF_StreamAcc* GetObjectStream(FX_DWORD number); - FX_BOOL IsLinearizedFile(IFX_FileRead* pFileAccess, FX_DWORD offset); - void SetEncryptDictionary(CPDF_Dictionary* pDict); - void ShrinkObjectMap(FX_DWORD size); - - CPDF_Document* m_pDocument; - std::unique_ptr<CPDF_SyntaxParser> m_pSyntax; - bool m_bOwnFileRead; - int m_FileVersion; - CPDF_Dictionary* m_pTrailer; - CPDF_Dictionary* m_pEncryptDict; - FX_FILESIZE m_LastXRefOffset; - FX_BOOL m_bXRefStream; - std::unique_ptr<IPDF_SecurityHandler> m_pSecurityHandler; - CFX_ByteString m_bsRecipient; - CFX_ByteString m_FilePath; - CFX_ByteString m_Password; - std::map<FX_DWORD, ObjectInfo> m_ObjectInfo; - std::set<FX_FILESIZE> m_SortedOffset; - CFX_ArrayTemplate<CPDF_Dictionary*> m_Trailers; - bool m_bVersionUpdated; - CPDF_Object* m_pLinearized; - FX_DWORD m_dwFirstPageNo; - FX_DWORD m_dwXrefStartObjNum; - - // A map of object numbers to indirect streams. Map owns the streams. - std::map<FX_DWORD, std::unique_ptr<CPDF_StreamAcc>> m_ObjectStreamMap; - - // Mapping of object numbers to offsets. The offsets are relative to the first - // object in the stream. - using StreamObjectCache = std::map<FX_DWORD, FX_DWORD>; - - // Mapping of streams to their object caches. This is valid as long as the - // streams in |m_ObjectStreamMap| are valid. - std::map<CPDF_StreamAcc*, StreamObjectCache> m_ObjCache; - - // All indirect object numbers that are being parsed. - std::set<FX_DWORD> m_ParsingObjNums; - - friend class CPDF_DataAvail; - - private: - enum class ParserState { - kDefault, - kComment, - kWhitespace, - kString, - kHexString, - kEscapedString, - kXref, - kObjNum, - kPostObjNum, - kGenNum, - kPostGenNum, - kTrailer, - kBeginObj, - kEndObj - }; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_PARSER_H_ diff --git a/core/include/fpdfapi/cpdf_reference.h b/core/include/fpdfapi/cpdf_reference.h deleted file mode 100644 index 2444aad4fd..0000000000 --- a/core/include/fpdfapi/cpdf_reference.h +++ /dev/null @@ -1,51 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_ - -#include "core/include/fpdfapi/cpdf_object.h" - -class CPDF_IndirectObjectHolder; - -class CPDF_Reference : public CPDF_Object { - public: - CPDF_Reference(CPDF_IndirectObjectHolder* pDoc, int objnum); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CPDF_Object* GetDirect() const override; - CFX_ByteString GetString() const override; - CFX_ByteStringC GetConstString() const override; - FX_FLOAT GetNumber() const override; - int GetInteger() const override; - CPDF_Dictionary* GetDict() const override; - - // TODO(weili): check whether GetUnicodeText() and GetArray() are needed. - bool IsReference() const override; - CPDF_Reference* AsReference() override; - const CPDF_Reference* AsReference() const override; - - CPDF_IndirectObjectHolder* GetObjList() const { return m_pObjList; } - FX_DWORD GetRefObjNum() const { return m_RefObjNum; } - - void SetRef(CPDF_IndirectObjectHolder* pDoc, FX_DWORD objnum); - - protected: - ~CPDF_Reference() override; - CPDF_Object* SafeGetDirect() const { - CPDF_Object* obj = GetDirect(); - if (!obj || obj->IsReference()) - return nullptr; - return obj; - } - - CPDF_IndirectObjectHolder* m_pObjList; - FX_DWORD m_RefObjNum; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_REFERENCE_H_ diff --git a/core/include/fpdfapi/cpdf_simple_parser.h b/core/include/fpdfapi/cpdf_simple_parser.h deleted file mode 100644 index dc1441d18e..0000000000 --- a/core/include/fpdfapi/cpdf_simple_parser.h +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_ - -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_SimpleParser { - public: - CPDF_SimpleParser(const uint8_t* pData, FX_DWORD dwSize); - CPDF_SimpleParser(const CFX_ByteStringC& str); - - CFX_ByteStringC GetWord(); - - // Find the token and its |nParams| parameters from the start of data, - // and move the current position to the start of those parameters. - bool FindTagParamFromStart(const CFX_ByteStringC& token, int nParams); - - // For testing only. - FX_DWORD GetCurPos() const { return m_dwCurPos; } - - private: - void ParseWord(const uint8_t*& pStart, FX_DWORD& dwSize); - - const uint8_t* m_pData; - FX_DWORD m_dwSize; - FX_DWORD m_dwCurPos; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_SIMPLE_PARSER_H_ diff --git a/core/include/fpdfapi/cpdf_stream.h b/core/include/fpdfapi/cpdf_stream.h deleted file mode 100644 index 579a3a97be..0000000000 --- a/core/include/fpdfapi/cpdf_stream.h +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_STREAM_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_STREAM_H_ - -#include "core/include/fpdfapi/cpdf_dictionary.h" -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_stream.h" - -class CPDF_Stream : public CPDF_Object { - public: - CPDF_Stream(uint8_t* pData, FX_DWORD size, CPDF_Dictionary* pDict); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CPDF_Dictionary* GetDict() const override; - CFX_WideString GetUnicodeText() const override; - bool IsStream() const override; - CPDF_Stream* AsStream() override; - const CPDF_Stream* AsStream() const override; - - FX_DWORD GetRawSize() const { return m_dwSize; } - uint8_t* GetRawData() const { return m_pDataBuf; } - - void SetData(const uint8_t* pData, - FX_DWORD size, - FX_BOOL bCompressed, - FX_BOOL bKeepBuf); - - void InitStream(uint8_t* pData, FX_DWORD size, CPDF_Dictionary* pDict); - void InitStreamFromFile(IFX_FileRead* pFile, CPDF_Dictionary* pDict); - - FX_BOOL ReadRawData(FX_FILESIZE start_pos, - uint8_t* pBuf, - FX_DWORD buf_size) const; - - bool IsMemoryBased() const { return m_GenNum == kMemoryBasedGenNum; } - - protected: - static const FX_DWORD kMemoryBasedGenNum = (FX_DWORD)-1; - - ~CPDF_Stream() override; - - void InitStreamInternal(CPDF_Dictionary* pDict); - - CPDF_Dictionary* m_pDict; - FX_DWORD m_dwSize; - FX_DWORD m_GenNum; - - union { - uint8_t* m_pDataBuf; - IFX_FileRead* m_pFile; - }; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_STREAM_H_ diff --git a/core/include/fpdfapi/cpdf_stream_acc.h b/core/include/fpdfapi/cpdf_stream_acc.h deleted file mode 100644 index 77ad272de3..0000000000 --- a/core/include/fpdfapi/cpdf_stream_acc.h +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_ - -#include "core/include/fpdfapi/cpdf_stream.h" -#include "core/include/fpdfapi/cpdf_dictionary.h" -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_StreamAcc { - public: - CPDF_StreamAcc(); - ~CPDF_StreamAcc(); - - void LoadAllData(const CPDF_Stream* pStream, - FX_BOOL bRawAccess = FALSE, - FX_DWORD estimated_size = 0, - FX_BOOL bImageAcc = FALSE); - - const CPDF_Stream* GetStream() const { return m_pStream; } - CPDF_Dictionary* GetDict() const { - return m_pStream ? m_pStream->GetDict() : nullptr; - } - - const uint8_t* GetData() const; - FX_DWORD GetSize() const; - const CFX_ByteString& GetImageDecoder() const { return m_ImageDecoder; } - const CPDF_Dictionary* GetImageParam() const { return m_pImageParam; } - uint8_t* DetachData(); - - protected: - uint8_t* m_pData; - FX_DWORD m_dwSize; - FX_BOOL m_bNewBuf; - CFX_ByteString m_ImageDecoder; - CPDF_Dictionary* m_pImageParam; - const CPDF_Stream* m_pStream; - uint8_t* m_pSrcData; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_STREAM_ACC_H_ diff --git a/core/include/fpdfapi/cpdf_string.h b/core/include/fpdfapi/cpdf_string.h deleted file mode 100644 index 895513813c..0000000000 --- a/core/include/fpdfapi/cpdf_string.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_CPDF_STRING_H_ -#define CORE_INCLUDE_FPDFAPI_CPDF_STRING_H_ - -#include "core/include/fpdfapi/cpdf_object.h" -#include "core/include/fxcrt/fx_string.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_String : public CPDF_Object { - public: - CPDF_String(); - CPDF_String(const CFX_ByteString& str, FX_BOOL bHex); - explicit CPDF_String(const CFX_WideString& str); - - // CPDF_Object. - Type GetType() const override; - CPDF_Object* Clone(FX_BOOL bDirect = FALSE) const override; - CFX_ByteString GetString() const override; - CFX_ByteStringC GetConstString() const override; - CFX_WideString GetUnicodeText() const override; - void SetString(const CFX_ByteString& str) override; - bool IsString() const override; - CPDF_String* AsString() override; - const CPDF_String* AsString() const override; - - FX_BOOL IsHex() const { return m_bHex; } - - protected: - ~CPDF_String() override; - - CFX_ByteString m_String; - FX_BOOL m_bHex; -}; - -#endif // CORE_INCLUDE_FPDFAPI_CPDF_STRING_H_ diff --git a/core/include/fpdfapi/fpdf_module.h b/core/include/fpdfapi/fpdf_module.h deleted file mode 100644 index e8cbb0d201..0000000000 --- a/core/include/fpdfapi/fpdf_module.h +++ /dev/null @@ -1,101 +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_INCLUDE_FPDFAPI_FPDF_MODULE_H_ -#define CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_ - -#include <memory> - -#include "core/include/fxcrt/fx_coordinates.h" -#include "core/include/fxcrt/fx_system.h" - -class CCodec_ModuleMgr; -class CPDF_ColorSpace; -class CPDF_DocPageData; -class CPDF_DocRenderData; -class CPDF_Document; -class CPDF_FontGlobals; -class CPDF_Page; -class CPDF_PageRenderCache; -class ICodec_FaxModule; -class ICodec_FlateModule; -class ICodec_IccModule; -class ICodec_Jbig2Module; -class ICodec_JpegModule; -class ICodec_JpxModule; -class IPDF_PageModule; -class IPDF_RenderModule; - -class CPDF_ModuleMgr { - public: - static CPDF_ModuleMgr* Get(); - static void Create(); - static void Destroy(); - static const int kFileBufSize = 512; - - void SetCodecModule(CCodec_ModuleMgr* pModule) { m_pCodecModule = pModule; } - CCodec_ModuleMgr* GetCodecModule() { return m_pCodecModule; } - - void InitPageModule(); - void InitRenderModule(); - - IPDF_RenderModule* GetRenderModule() const { return m_pRenderModule.get(); } - IPDF_PageModule* GetPageModule() const { return m_pPageModule.get(); } - - void LoadEmbeddedGB1CMaps(); - void LoadEmbeddedCNS1CMaps(); - void LoadEmbeddedJapan1CMaps(); - void LoadEmbeddedKorea1CMaps(); - - ICodec_FaxModule* GetFaxModule(); - ICodec_JpegModule* GetJpegModule(); - ICodec_JpxModule* GetJpxModule(); - ICodec_Jbig2Module* GetJbig2Module(); - ICodec_IccModule* GetIccModule(); - ICodec_FlateModule* GetFlateModule(); - - void SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback); - - void* GetPrivateData(void* module_id); - - private: - CPDF_ModuleMgr(); - ~CPDF_ModuleMgr(); - - CCodec_ModuleMgr* m_pCodecModule; - std::unique_ptr<IPDF_RenderModule> m_pRenderModule; - std::unique_ptr<IPDF_PageModule> m_pPageModule; - CFX_PrivateData m_privateData; -}; - -class IPDF_PageModule { - public: - virtual ~IPDF_PageModule() {} - - virtual CPDF_DocPageData* CreateDocData(CPDF_Document* pDoc) = 0; - virtual void ReleaseDoc(CPDF_Document* pDoc) = 0; - virtual void ClearDoc(CPDF_Document* pDoc) = 0; - virtual CPDF_FontGlobals* GetFontGlobals() = 0; - virtual void ClearStockFont(CPDF_Document* pDoc) = 0; - virtual void NotifyCJKAvailable() = 0; - virtual CPDF_ColorSpace* GetStockCS(int family) = 0; -}; - -class IPDF_RenderModule { - public: - virtual ~IPDF_RenderModule() {} - - virtual CPDF_DocRenderData* CreateDocData(CPDF_Document* pDoc) = 0; - virtual void DestroyDocData(CPDF_DocRenderData* pDocRenderData) = 0; - virtual void ClearDocData(CPDF_DocRenderData* pDocRenderData) = 0; - virtual CPDF_DocRenderData* GetRenderData() = 0; - virtual CPDF_PageRenderCache* CreatePageCache(CPDF_Page* pPage) = 0; - virtual void DestroyPageCache(CPDF_PageRenderCache* pCache) = 0; -}; - -#endif // CORE_INCLUDE_FPDFAPI_FPDF_MODULE_H_ diff --git a/core/include/fpdfapi/fpdf_parser_decode.h b/core/include/fpdfapi/fpdf_parser_decode.h deleted file mode 100644 index 1217c7ea21..0000000000 --- a/core/include/fpdfapi/fpdf_parser_decode.h +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_ -#define CORE_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_ - -#include "core/include/fxcrt/fx_basic.h" - -class CPDF_Dictionary; - -// Indexed by 8-bit char code, contains unicode code points. -extern const FX_WORD PDFDocEncoding[256]; - -CFX_ByteString PDF_NameDecode(const CFX_ByteStringC& orig); -CFX_ByteString PDF_NameDecode(const CFX_ByteString& orig); -CFX_ByteString PDF_NameEncode(const CFX_ByteString& orig); -CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, - FX_BOOL bHex = FALSE); -CFX_WideString PDF_DecodeText(const uint8_t* pData, FX_DWORD size); -CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr); -CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1); -CFX_ByteString PDF_EncodeText(const CFX_WideString& str); - -void FlateEncode(const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -void FlateEncode(const uint8_t* src_buf, - FX_DWORD src_size, - int predictor, - int Colors, - int BitsPerComponent, - int Columns, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -FX_DWORD FlateDecode(const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -FX_DWORD RunLengthDecode(const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); - -// Public for testing. -FX_DWORD A85Decode(const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -// Public for testing. -FX_DWORD HexDecode(const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -// Public for testing. -FX_DWORD FPDFAPI_FlateOrLZWDecode(FX_BOOL bLZW, - const uint8_t* src_buf, - FX_DWORD src_size, - CPDF_Dictionary* pParams, - FX_DWORD estimated_size, - uint8_t*& dest_buf, - FX_DWORD& dest_size); -FX_BOOL PDF_DataDecode(const uint8_t* src_buf, - FX_DWORD src_size, - const CPDF_Dictionary* pDict, - uint8_t*& dest_buf, - FX_DWORD& dest_size, - CFX_ByteString& ImageEncoding, - CPDF_Dictionary*& pImageParms, - FX_DWORD estimated_size, - FX_BOOL bImageAcc); - -#endif // CORE_INCLUDE_FPDFAPI_FPDF_PARSER_DECODE_H_ diff --git a/core/include/fpdfapi/fpdf_render.h b/core/include/fpdfapi/fpdf_render.h deleted file mode 100644 index 71711e3b16..0000000000 --- a/core/include/fpdfapi/fpdf_render.h +++ /dev/null @@ -1,263 +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_INCLUDE_FPDFAPI_FPDF_RENDER_H_ -#define CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ - -#include <map> -#include <memory> - -#include "core/include/fpdfapi/fpdf_page.h" -#include "core/include/fxge/fx_ge.h" - -class CFX_GraphStateData; -class CFX_PathData; -class CFX_RenderDevice; -class CPDF_ImageCacheEntry; -class CPDF_RenderStatus; -class IFX_Pause; - -class IPDF_OCContext { - public: - virtual ~IPDF_OCContext() {} - - virtual FX_BOOL CheckOCGVisible(const CPDF_Dictionary* pOCG) = 0; - - FX_BOOL CheckObjectVisible(const CPDF_PageObject* pObj); -}; -#define RENDER_COLOR_NORMAL 0 -#define RENDER_COLOR_GRAY 1 -#define RENDER_COLOR_TWOCOLOR 2 -#define RENDER_COLOR_ALPHA 3 -#define RENDER_CLEARTYPE 0x00000001 -#define RENDER_PRINTGRAPHICTEXT 0x00000002 -#define RENDER_FORCE_DOWNSAMPLE 0x00000004 -#define RENDER_PRINTPREVIEW 0x00000008 -#define RENDER_BGR_STRIPE 0x00000010 -#define RENDER_NO_NATIVETEXT 0x00000020 -#define RENDER_FORCE_HALFTONE 0x00000040 -#define RENDER_RECT_AA 0x00000080 -#define RENDER_FILL_FULLCOVER 0x00000100 -#define RENDER_PRINTIMAGETEXT 0x00000200 -#define RENDER_OVERPRINT 0x00000400 -#define RENDER_THINLINE 0x00000800 -#define RENDER_NOTEXTSMOOTH 0x10000000 -#define RENDER_NOPATHSMOOTH 0x20000000 -#define RENDER_NOIMAGESMOOTH 0x40000000 -#define RENDER_LIMITEDIMAGECACHE 0x80000000 - -class CPDF_RenderOptions { - public: - CPDF_RenderOptions(); - FX_ARGB TranslateColor(FX_ARGB argb) const; - - int m_ColorMode; - FX_COLORREF m_BackColor; - FX_COLORREF m_ForeColor; - FX_DWORD m_Flags; - int m_Interpolation; - FX_DWORD m_AddFlags; - IPDF_OCContext* m_pOCContext; - FX_DWORD m_dwLimitCacheSize; - int m_HalftoneLimit; -}; - -class CPDF_RenderContext { - public: - class Layer { - public: - CPDF_PageObjectHolder* m_pObjectHolder; - CFX_Matrix m_Matrix; - }; - - explicit CPDF_RenderContext(CPDF_Page* pPage); - CPDF_RenderContext(CPDF_Document* pDoc, CPDF_PageRenderCache* pPageCache); - ~CPDF_RenderContext(); - - void AppendLayer(CPDF_PageObjectHolder* pObjectHolder, - const CFX_Matrix* pObject2Device); - - void Render(CFX_RenderDevice* pDevice, - const CPDF_RenderOptions* pOptions, - const CFX_Matrix* pFinalMatrix); - - void Render(CFX_RenderDevice* pDevice, - const CPDF_PageObject* pStopObj, - const CPDF_RenderOptions* pOptions, - const CFX_Matrix* pFinalMatrix); - - void GetBackground(CFX_DIBitmap* pBuffer, - const CPDF_PageObject* pObj, - const CPDF_RenderOptions* pOptions, - CFX_Matrix* pFinalMatrix); - - FX_DWORD CountLayers() const { return m_Layers.GetSize(); } - Layer* GetLayer(FX_DWORD index) { return m_Layers.GetDataPtr(index); } - - CPDF_Document* GetDocument() const { return m_pDocument; } - CPDF_Dictionary* GetPageResources() const { return m_pPageResources; } - CPDF_PageRenderCache* GetPageCache() const { return m_pPageCache; } - - protected: - CPDF_Document* const m_pDocument; - CPDF_Dictionary* m_pPageResources; - CPDF_PageRenderCache* m_pPageCache; - FX_BOOL m_bFirstLayer; - CFX_ArrayTemplate<Layer> m_Layers; -}; - -class CPDF_ProgressiveRenderer { - public: - // Must match FDF_RENDER_* definitions in public/fpdf_progressive.h, but - // cannot #include that header. fpdfsdk/fpdf_progressive.cpp has - // static_asserts to make sure the two sets of values match. - enum Status { - Ready, // FPDF_RENDER_READER - ToBeContinued, // FPDF_RENDER_TOBECOUNTINUED - Done, // FPDF_RENDER_DONE - Failed // FPDF_RENDER_FAILED - }; - - static int ToFPDFStatus(Status status) { return static_cast<int>(status); } - - CPDF_ProgressiveRenderer(CPDF_RenderContext* pContext, - CFX_RenderDevice* pDevice, - const CPDF_RenderOptions* pOptions); - ~CPDF_ProgressiveRenderer(); - - Status GetStatus() const { return m_Status; } - void Start(IFX_Pause* pPause); - void Continue(IFX_Pause* pPause); - - private: - void RenderStep(); - - // Maximum page objects to render before checking for pause. - static const int kStepLimit = 100; - - Status m_Status; - CPDF_RenderContext* const m_pContext; - CFX_RenderDevice* const m_pDevice; - const CPDF_RenderOptions* const m_pOptions; - std::unique_ptr<CPDF_RenderStatus> m_pRenderStatus; - CFX_FloatRect m_ClipRect; - FX_DWORD m_LayerIndex; - CPDF_RenderContext::Layer* m_pCurrentLayer; - CPDF_PageObjectList::iterator m_LastObjectRendered; -}; - -class CPDF_TextRenderer { - public: - static void DrawTextString(CFX_RenderDevice* pDevice, - int left, - int top, - CPDF_Font* pFont, - int height, - const CFX_ByteString& str, - FX_ARGB argb); - - static void DrawTextString(CFX_RenderDevice* pDevice, - FX_FLOAT origin_x, - FX_FLOAT origin_y, - CPDF_Font* pFont, - FX_FLOAT font_size, - const CFX_Matrix* matrix, - const CFX_ByteString& str, - FX_ARGB fill_argb, - FX_ARGB stroke_argb = 0, - const CFX_GraphStateData* pGraphState = NULL, - const CPDF_RenderOptions* pOptions = NULL); - - static FX_BOOL DrawTextPath(CFX_RenderDevice* pDevice, - int nChars, - FX_DWORD* pCharCodes, - FX_FLOAT* pCharPos, - CPDF_Font* pFont, - FX_FLOAT font_size, - const CFX_Matrix* pText2User, - const CFX_Matrix* pUser2Device, - const CFX_GraphStateData* pGraphState, - FX_ARGB fill_argb, - FX_ARGB stroke_argb, - CFX_PathData* pClippingPath, - int nFlag = 0); - - static FX_BOOL DrawNormalText(CFX_RenderDevice* pDevice, - int nChars, - FX_DWORD* pCharCodes, - FX_FLOAT* pCharPos, - CPDF_Font* pFont, - FX_FLOAT font_size, - const CFX_Matrix* pText2Device, - FX_ARGB fill_argb, - const CPDF_RenderOptions* pOptions); - - static FX_BOOL DrawType3Text(CFX_RenderDevice* pDevice, - int nChars, - FX_DWORD* pCharCodes, - FX_FLOAT* pCharPos, - CPDF_Font* pFont, - FX_FLOAT font_size, - const CFX_Matrix* pText2Device, - FX_ARGB fill_argb); -}; -class CPDF_PageRenderCache { - public: - explicit CPDF_PageRenderCache(CPDF_Page* pPage) - : m_pPage(pPage), - m_pCurImageCacheEntry(nullptr), - m_nTimeCount(0), - m_nCacheSize(0), - m_bCurFindCache(FALSE) {} - ~CPDF_PageRenderCache(); - void ClearImageData(); - - FX_DWORD EstimateSize(); - void CacheOptimization(int32_t dwLimitCacheSize); - FX_DWORD GetTimeCount() const { return m_nTimeCount; } - void SetTimeCount(FX_DWORD dwTimeCount) { m_nTimeCount = dwTimeCount; } - - void GetCachedBitmap(CPDF_Stream* pStream, - CFX_DIBSource*& pBitmap, - CFX_DIBSource*& pMask, - FX_DWORD& MatteColor, - FX_BOOL bStdCS = FALSE, - FX_DWORD GroupFamily = 0, - FX_BOOL bLoadMask = FALSE, - CPDF_RenderStatus* pRenderStatus = NULL, - int32_t downsampleWidth = 0, - int32_t downsampleHeight = 0); - - void ResetBitmap(CPDF_Stream* pStream, const CFX_DIBitmap* pBitmap); - void ClearImageCacheEntry(CPDF_Stream* pStream); - CPDF_Page* GetPage() const { return m_pPage; } - CPDF_ImageCacheEntry* GetCurImageCacheEntry() const { - return m_pCurImageCacheEntry; - } - - FX_BOOL StartGetCachedBitmap(CPDF_Stream* pStream, - FX_BOOL bStdCS = FALSE, - FX_DWORD GroupFamily = 0, - FX_BOOL bLoadMask = FALSE, - CPDF_RenderStatus* pRenderStatus = NULL, - int32_t downsampleWidth = 0, - int32_t downsampleHeight = 0); - - FX_BOOL Continue(IFX_Pause* pPause); - - protected: - friend class CPDF_Page; - CPDF_Page* const m_pPage; - CPDF_ImageCacheEntry* m_pCurImageCacheEntry; - std::map<CPDF_Stream*, CPDF_ImageCacheEntry*> m_ImageCache; - FX_DWORD m_nTimeCount; - FX_DWORD m_nCacheSize; - FX_BOOL m_bCurFindCache; -}; - -FX_BOOL IsAvailableMatrix(const CFX_Matrix& matrix); - -#endif // CORE_INCLUDE_FPDFAPI_FPDF_RENDER_H_ diff --git a/core/include/fpdfapi/fpdf_resource.h b/core/include/fpdfapi/fpdf_resource.h index 7c19dd52c3..a8a3ecc52a 100644 --- a/core/include/fpdfapi/fpdf_resource.h +++ b/core/include/fpdfapi/fpdf_resource.h @@ -9,8 +9,8 @@ #include <map> -#include "core/include/fpdfapi/cpdf_stream.h" -#include "core/include/fpdfapi/cpdf_stream_acc.h" +#include "core/fpdfapi/fpdf_parser/include/cpdf_stream.h" +#include "core/fpdfapi/fpdf_parser/include/cpdf_stream_acc.h" #include "core/include/fxcrt/fx_system.h" #include "core/include/fxge/fx_font.h" diff --git a/core/include/fpdfapi/fpdf_serial.h b/core/include/fpdfapi/fpdf_serial.h deleted file mode 100644 index cb0c290783..0000000000 --- a/core/include/fpdfapi/fpdf_serial.h +++ /dev/null @@ -1,105 +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_INCLUDE_FPDFAPI_FPDF_SERIAL_H_ -#define CORE_INCLUDE_FPDFAPI_FPDF_SERIAL_H_ - -#include "core/include/fpdfapi/fpdf_page.h" -#include "core/include/fpdfapi/fpdf_pageobj.h" - -class CPDF_XRefStream; -class IPDF_CryptoHandler; - -CFX_ByteTextBuf& operator<<(CFX_ByteTextBuf& buf, const CPDF_Object* pObj); - -#define FPDFCREATE_INCREMENTAL 1 -#define FPDFCREATE_NO_ORIGINAL 2 -#define FPDFCREATE_PROGRESSIVE 4 -#define FPDFCREATE_OBJECTSTREAM 8 - -class CPDF_Creator { - public: - CPDF_Creator(CPDF_Document* pDoc); - ~CPDF_Creator(); - - void RemoveSecurity(); - bool Create(IFX_StreamWrite* pFile, FX_DWORD flags = 0); - int32_t Continue(IFX_Pause* pPause = NULL); - FX_BOOL SetFileVersion(int32_t fileVersion = 17); - - protected: - CPDF_Document* m_pDocument; - - CPDF_Parser* m_pParser; - - FX_BOOL m_bCompress; - - FX_BOOL m_bSecurityChanged; - - CPDF_Dictionary* m_pEncryptDict; - FX_DWORD m_dwEnryptObjNum; - FX_BOOL m_bEncryptCloned; - - FX_BOOL m_bStandardSecurity; - - IPDF_CryptoHandler* m_pCryptoHandler; - FX_BOOL m_bNewCrypto; - - FX_BOOL m_bEncryptMetadata; - - CPDF_Object* m_pMetadata; - - CPDF_XRefStream* m_pXRefStream; - - int32_t m_ObjectStreamSize; - - FX_DWORD m_dwLastObjNum; - bool Create(FX_DWORD flags); - void ResetStandardSecurity(); - void Clear(); - int32_t WriteDoc_Stage1(IFX_Pause* pPause); - int32_t WriteDoc_Stage2(IFX_Pause* pPause); - int32_t WriteDoc_Stage3(IFX_Pause* pPause); - int32_t WriteDoc_Stage4(IFX_Pause* pPause); - - CFX_FileBufferArchive m_File; - - FX_FILESIZE m_Offset; - void InitOldObjNumOffsets(); - void InitNewObjNumOffsets(); - void AppendNewObjNum(FX_DWORD objbum); - int32_t WriteOldIndirectObject(FX_DWORD objnum); - int32_t WriteOldObjs(IFX_Pause* pPause); - int32_t WriteNewObjs(FX_BOOL bIncremental, IFX_Pause* pPause); - int32_t WriteIndirectObj(const CPDF_Object* pObj); - int32_t WriteDirectObj(FX_DWORD objnum, - const CPDF_Object* pObj, - FX_BOOL bEncrypt = TRUE); - int32_t WriteIndirectObjectToStream(const CPDF_Object* pObj); - int32_t WriteIndirectObj(FX_DWORD objnum, const CPDF_Object* pObj); - int32_t WriteIndirectObjectToStream(FX_DWORD objnum, - const uint8_t* pBuffer, - FX_DWORD dwSize); - int32_t AppendObjectNumberToXRef(FX_DWORD objnum); - void InitID(FX_BOOL bDefault = TRUE); - int32_t WriteStream(const CPDF_Object* pStream, - FX_DWORD objnum, - IPDF_CryptoHandler* pCrypto); - - int32_t m_iStage; - FX_DWORD m_dwFlags; - FX_POSITION m_Pos; - FX_FILESIZE m_XrefStart; - CFX_FileSizeListArray m_ObjectOffset; - CFX_DWordArray m_NewObjNumArray; - CPDF_Array* m_pIDArray; - int32_t m_FileVersion; - - friend class CPDF_ObjectStream; - friend class CPDF_XRefStream; -}; - -#endif // CORE_INCLUDE_FPDFAPI_FPDF_SERIAL_H_ diff --git a/core/include/fpdfapi/ipdf_crypto_handler.h b/core/include/fpdfapi/ipdf_crypto_handler.h deleted file mode 100644 index 6a09a02278..0000000000 --- a/core/include/fpdfapi/ipdf_crypto_handler.h +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_ -#define CORE_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_ - -#include "core/include/fxcrt/fx_basic.h" - -class CPDF_Dictionary; -class IPDF_SecurityHandler; - -class IPDF_CryptoHandler { - public: - virtual ~IPDF_CryptoHandler(); - - virtual FX_BOOL Init(CPDF_Dictionary* pEncryptDict, - IPDF_SecurityHandler* pSecurityHandler) = 0; - - virtual FX_DWORD DecryptGetSize(FX_DWORD src_size) = 0; - virtual void* DecryptStart(FX_DWORD objnum, FX_DWORD gennum) = 0; - virtual FX_BOOL DecryptStream(void* context, - const uint8_t* src_buf, - FX_DWORD src_size, - CFX_BinaryBuf& dest_buf) = 0; - - virtual FX_BOOL DecryptFinish(void* context, CFX_BinaryBuf& dest_buf) = 0; - virtual FX_DWORD EncryptGetSize(FX_DWORD objnum, - FX_DWORD version, - const uint8_t* src_buf, - FX_DWORD src_size) = 0; - - virtual FX_BOOL EncryptContent(FX_DWORD objnum, - FX_DWORD version, - const uint8_t* src_buf, - FX_DWORD src_size, - uint8_t* dest_buf, - FX_DWORD& dest_size) = 0; - - void Decrypt(FX_DWORD objnum, FX_DWORD version, CFX_ByteString& str); -}; - -#endif // CORE_INCLUDE_FPDFAPI_IPDF_CRYPTO_HANDLER_H_ diff --git a/core/include/fpdfapi/ipdf_data_avail.h b/core/include/fpdfapi/ipdf_data_avail.h deleted file mode 100644 index e2b22eaf2a..0000000000 --- a/core/include/fpdfapi/ipdf_data_avail.h +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ -#define CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ - -#include "core/include/fxcrt/fx_stream.h" -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Document; -class CPDF_Object; - -class IPDF_DataAvail { - public: - // Must match PDF_DATA_* definitions in public/fpdf_dataavail.h, but cannot - // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts - // to make sure the two sets of values match. - enum DocAvailStatus { - DataError = -1, // PDF_DATA_ERROR - DataNotAvailable = 0, // PDF_DATA_NOTAVAIL - DataAvailable = 1, // PDF_DATA_AVAIL - }; - - // Must match PDF_*LINEAR* definitions in public/fpdf_dataavail.h, but cannot - // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts - // to make sure the two sets of values match. - enum DocLinearizationStatus { - LinearizationUnknown = -1, // PDF_LINEARIZATION_UNKNOWN - NotLinearized = 0, // PDF_NOT_LINEARIZED - Linearized = 1, // PDF_LINEARIZED - }; - - // Must match PDF_FORM_* definitions in public/fpdf_dataavail.h, but cannot - // #include that header. fpdfsdk/fpdf_dataavail.cpp has static_asserts - // to make sure the two sets of values match. - enum DocFormStatus { - FormError = -1, // PDF_FORM_ERROR - FormNotAvailable = 0, // PDF_FORM_NOTAVAIL - FormAvailable = 1, // PDF_FORM_AVAIL - FormNotExist = 2, // PDF_FORM_NOTEXIST - }; - - class FileAvail { - public: - virtual ~FileAvail(); - virtual FX_BOOL IsDataAvail(FX_FILESIZE offset, FX_DWORD size) = 0; - }; - - class DownloadHints { - public: - virtual ~DownloadHints(); - virtual void AddSegment(FX_FILESIZE offset, FX_DWORD size) = 0; - }; - - static IPDF_DataAvail* Create(FileAvail* pFileAvail, IFX_FileRead* pFileRead); - virtual ~IPDF_DataAvail(); - - FileAvail* GetFileAvail() const { return m_pFileAvail; } - IFX_FileRead* GetFileRead() const { return m_pFileRead; } - - virtual DocAvailStatus IsDocAvail(DownloadHints* pHints) = 0; - virtual void SetDocument(CPDF_Document* pDoc) = 0; - virtual DocAvailStatus IsPageAvail(int iPage, DownloadHints* pHints) = 0; - virtual FX_BOOL IsLinearized() = 0; - virtual DocFormStatus IsFormAvail(DownloadHints* pHints) = 0; - virtual DocLinearizationStatus IsLinearizedPDF() = 0; - virtual void GetLinearizedMainXRefInfo(FX_FILESIZE* pPos, - FX_DWORD* pSize) = 0; - - protected: - IPDF_DataAvail(FileAvail* pFileAvail, IFX_FileRead* pFileRead); - - FileAvail* m_pFileAvail; - IFX_FileRead* m_pFileRead; -}; - -#endif // CORE_INCLUDE_FPDFAPI_IPDF_DATA_AVAIL_H_ diff --git a/core/include/fpdfapi/ipdf_security_handler.h b/core/include/fpdfapi/ipdf_security_handler.h deleted file mode 100644 index 4dce7c6963..0000000000 --- a/core/include/fpdfapi/ipdf_security_handler.h +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2016 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_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_ -#define CORE_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_ - -#include "core/include/fxcrt/fx_system.h" - -class CPDF_Parser; -class CPDF_Dictionary; -class IPDF_CryptoHandler; - -#define FXCIPHER_NONE 0 -#define FXCIPHER_RC4 1 -#define FXCIPHER_AES 2 -#define FXCIPHER_AES2 3 - -class IPDF_SecurityHandler { - public: - virtual ~IPDF_SecurityHandler(); - virtual FX_BOOL OnInit(CPDF_Parser* pParser, - CPDF_Dictionary* pEncryptDict) = 0; - - virtual FX_DWORD GetPermissions() = 0; - virtual FX_BOOL GetCryptInfo(int& cipher, - const uint8_t*& buffer, - int& keylen) = 0; - - virtual FX_BOOL IsMetadataEncrypted() = 0; - virtual IPDF_CryptoHandler* CreateCryptoHandler() = 0; -}; - -#endif // CORE_INCLUDE_FPDFAPI_IPDF_SECURITY_HANDLER_H_ |