Home | History | Annotate | Download | only in fpdf_edit
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef _FPDF_EDITINT_
      8 #define _FPDF_EDITINT_
      9 class CPDF_ObjectStream : public CFX_Object
     10 {
     11 public:
     12     CPDF_ObjectStream();
     13 
     14     FX_BOOL				Start();
     15 
     16     FX_INT32			CompressIndirectObject(FX_DWORD dwObjNum, const CPDF_Object *pObj);
     17     FX_INT32			CompressIndirectObject(FX_DWORD dwObjNum, FX_LPCBYTE pBuffer, FX_DWORD dwSize);
     18 
     19     FX_FILESIZE			End(CPDF_Creator* pCreator);
     20 
     21     CFX_DWordArray		m_ObjNumArray;
     22 
     23     CFX_ByteTextBuf		m_Buffer;
     24     FX_DWORD			m_dwObjNum;
     25     FX_INT32			m_index;
     26 protected:
     27 
     28     CFX_DWordArray		m_OffsetArray;
     29 };
     30 class CPDF_XRefStream : public CFX_Object
     31 {
     32 public:
     33 
     34     CPDF_XRefStream();
     35 
     36     FX_BOOL				Start();
     37 
     38     FX_INT32			CompressIndirectObject(FX_DWORD dwObjNum, const CPDF_Object *pObj, CPDF_Creator *pCreator);
     39 
     40     FX_INT32			CompressIndirectObject(FX_DWORD dwObjNum, FX_LPCBYTE pBuffer, FX_DWORD dwSize, CPDF_Creator *pCreator);
     41 
     42     FX_BOOL				End(CPDF_Creator *pCreator, FX_BOOL bEOF = FALSE);
     43     FX_BOOL				AddObjectNumberToIndexArray(FX_DWORD objnum);
     44     FX_BOOL				EndXRefStream(CPDF_Creator* pCreator);
     45 
     46 
     47     CFX_DWordArray		m_IndexArray;
     48 
     49     FX_FILESIZE			m_PrevOffset;
     50     FX_DWORD			m_dwTempObjNum;
     51 
     52 protected:
     53     FX_INT32			EndObjectStream(CPDF_Creator *pCreator, FX_BOOL bEOF = TRUE);
     54     FX_BOOL				GenerateXRefStream(CPDF_Creator* pCreator, FX_BOOL bEOF);
     55     FX_INT32			m_iSeg;
     56     CPDF_ObjectStream	m_ObjStream;
     57     CFX_ByteTextBuf		m_Buffer;
     58 };
     59 #endif
     60