libmspub::MSPUBParser Class Reference

#include <MSPUBParser.h>

Inheritance diagram for libmspub::MSPUBParser:
libmspub::MSPUBParser2k

Classes

struct  TextParagraphReference
struct  TextSpanReference

Public Member Functions

 MSPUBParser (WPXInputStream *input, MSPUBCollector *collector)
virtual ~MSPUBParser ()
virtual bool parse ()

Protected Types

typedef std::vector
< ContentChunkReference >
::const_iterator 
ccr_iterator_t

Protected Member Functions

virtual unsigned getColorIndexByQuillEntry (unsigned entry)
 MSPUBParser ()
 MSPUBParser (const MSPUBParser &)
MSPUBParseroperator= (const MSPUBParser &)
virtual bool parseContents (WPXInputStream *input)
bool parseQuill (WPXInputStream *input)
bool parseEscher (WPXInputStream *input)
bool parseEscherDelay (WPXInputStream *input)
MSPUBBlockInfo parseBlock (WPXInputStream *input, bool skipHierarchicalData=false)
EscherContainerInfo parseEscherContainer (WPXInputStream *input)
bool parseContentChunkReference (WPXInputStream *input, MSPUBBlockInfo block)
QuillChunkReference parseQuillChunkReference (WPXInputStream *input)
bool parseDocumentChunk (WPXInputStream *input, const ContentChunkReference &chunk)
bool parsePageChunk (WPXInputStream *input, const ContentChunkReference &chunk)
bool parsePaletteChunk (WPXInputStream *input, const ContentChunkReference &chunk)
bool parseShapes (WPXInputStream *input, MSPUBBlockInfo block, unsigned pageSeqNum)
bool parseShape (WPXInputStream *input, unsigned seqNum, unsigned pageSeqNum, bool parseWithoutDimensions, bool isGroup)
void parsePaletteEntry (WPXInputStream *input, MSPUBBlockInfo block)
void parseColors (WPXInputStream *input, const QuillChunkReference &chunk)
void parseFonts (WPXInputStream *input, const QuillChunkReference &chunk)
void parseDefaultStyle (WPXInputStream *input, const QuillChunkReference &chunk)
void parseShapeGroup (WPXInputStream *input, const EscherContainerInfo &spgr, bool topLevel, Coordinate parentCoordinateSystem, Coordinate parentGroupAbsoluteCoord)
void skipBlock (WPXInputStream *input, MSPUBBlockInfo block)
void parseEscherShape (WPXInputStream *input, const EscherContainerInfo &sp, bool topLevel, Coordinate &parentCoordinateSystem, Coordinate &parentGroupAbsoluteCoord)
bool findEscherContainer (WPXInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, unsigned short type)
bool findEscherContainerWithTypeInSet (WPXInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, std::set< unsigned short > types)
std::map< unsigned short,
unsigned > 
extractEscherValues (WPXInputStream *input, const EscherContainerInfo &record)
std::vector< TextSpanReferenceparseCharacterStyles (WPXInputStream *input, const QuillChunkReference &chunk)
std::vector
< TextParagraphReference
parseParagraphStyles (WPXInputStream *input, const QuillChunkReference &chunk)
int getColorIndex (WPXInputStream *input, const MSPUBBlockInfo &info)
unsigned getFontIndex (WPXInputStream *input, const MSPUBBlockInfo &info)
CharacterStyle getCharacterStyle (WPXInputStream *input, bool inStsh=false)
ParagraphStyle getParagraphStyle (WPXInputStream *input)
boost::shared_ptr< FillgetNewFill (const std::map< unsigned short, unsigned > &foptValues, bool &skipIfNotBg)

Static Protected Member Functions

static short getBlockDataLength (unsigned type)
static bool isBlockDataString (unsigned type)
static PageType getPageTypeBySeqNum (unsigned seqNum)
static unsigned getEscherElementTailLength (unsigned short type)
static unsigned getEscherElementAdditionalHeaderLength (unsigned short type)
static ImgType imgTypeByBlipType (unsigned short type)
static int getStartOffset (ImgType type, unsigned short initial)
static bool lineExistsByFlagPointer (unsigned *)

Protected Attributes

WPXInputStream * m_input
MSPUBCollectorm_collector
std::vector< MSPUBBlockInfom_blockInfo
std::vector
< ContentChunkReference
m_contentChunks
std::vector< unsigned > m_pageChunkIndices
std::vector< unsigned > m_shapeChunkIndices
std::vector< unsigned > m_paletteChunkIndices
std::vector< unsigned > m_unknownChunkIndices
boost::optional< unsigned > m_documentChunkIndex
int m_lastSeenSeqNum
unsigned m_lastAddedImage
std::vector< int > m_alternateShapeSeqNums
std::vector< int > m_escherDelayIndices

Member Typedef Documentation

typedef std::vector<ContentChunkReference>::const_iterator libmspub::MSPUBParser::ccr_iterator_t
protected

Constructor & Destructor Documentation

libmspub::MSPUBParser::MSPUBParser ( WPXInputStream *  input,
MSPUBCollector collector 
)
explicit
libmspub::MSPUBParser::~MSPUBParser ( )
virtual
libmspub::MSPUBParser::MSPUBParser ( )
protected
libmspub::MSPUBParser::MSPUBParser ( const MSPUBParser )
protected

Member Function Documentation

std::map< unsigned short, unsigned > libmspub::MSPUBParser::extractEscherValues ( WPXInputStream *  input,
const EscherContainerInfo record 
)
protected
bool libmspub::MSPUBParser::findEscherContainer ( WPXInputStream *  input,
const EscherContainerInfo parent,
libmspub::EscherContainerInfo out,
unsigned short  type 
)
protected
bool libmspub::MSPUBParser::findEscherContainerWithTypeInSet ( WPXInputStream *  input,
const EscherContainerInfo parent,
libmspub::EscherContainerInfo out,
std::set< unsigned short >  types 
)
protected
short libmspub::MSPUBParser::getBlockDataLength ( unsigned  type)
staticprotected
libmspub::CharacterStyle libmspub::MSPUBParser::getCharacterStyle ( WPXInputStream *  input,
bool  inStsh = false 
)
protected
int libmspub::MSPUBParser::getColorIndex ( WPXInputStream *  input,
const MSPUBBlockInfo info 
)
protected
unsigned libmspub::MSPUBParser::getColorIndexByQuillEntry ( unsigned  entry)
protectedvirtual

Reimplemented in libmspub::MSPUBParser2k.

unsigned libmspub::MSPUBParser::getEscherElementAdditionalHeaderLength ( unsigned short  type)
staticprotected
unsigned libmspub::MSPUBParser::getEscherElementTailLength ( unsigned short  type)
staticprotected
unsigned libmspub::MSPUBParser::getFontIndex ( WPXInputStream *  input,
const MSPUBBlockInfo info 
)
protected
boost::shared_ptr< libmspub::Fill > libmspub::MSPUBParser::getNewFill ( const std::map< unsigned short, unsigned > &  foptValues,
bool &  skipIfNotBg 
)
protected
libmspub::PageType libmspub::MSPUBParser::getPageTypeBySeqNum ( unsigned  seqNum)
staticprotected

Reimplemented in libmspub::MSPUBParser2k.

libmspub::ParagraphStyle libmspub::MSPUBParser::getParagraphStyle ( WPXInputStream *  input)
protected
int libmspub::MSPUBParser::getStartOffset ( ImgType  type,
unsigned short  initial 
)
staticprotected
libmspub::ImgType libmspub::MSPUBParser::imgTypeByBlipType ( unsigned short  type)
staticprotected
bool libmspub::MSPUBParser::isBlockDataString ( unsigned  type)
staticprotected
bool libmspub::MSPUBParser::lineExistsByFlagPointer ( unsigned *  flags)
staticprotected
MSPUBParser& libmspub::MSPUBParser::operator= ( const MSPUBParser )
protected
bool libmspub::MSPUBParser::parse ( )
virtual
libmspub::MSPUBBlockInfo libmspub::MSPUBParser::parseBlock ( WPXInputStream *  input,
bool  skipHierarchicalData = false 
)
protected
std::vector< libmspub::MSPUBParser::TextSpanReference > libmspub::MSPUBParser::parseCharacterStyles ( WPXInputStream *  input,
const QuillChunkReference chunk 
)
protected
void libmspub::MSPUBParser::parseColors ( WPXInputStream *  input,
const QuillChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parseContentChunkReference ( WPXInputStream *  input,
const libmspub::MSPUBBlockInfo  block 
)
protected
bool libmspub::MSPUBParser::parseContents ( WPXInputStream *  input)
protectedvirtual

Reimplemented in libmspub::MSPUBParser2k.

void libmspub::MSPUBParser::parseDefaultStyle ( WPXInputStream *  input,
const QuillChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parseDocumentChunk ( WPXInputStream *  input,
const ContentChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parseEscher ( WPXInputStream *  input)
protected
libmspub::EscherContainerInfo libmspub::MSPUBParser::parseEscherContainer ( WPXInputStream *  input)
protected
bool libmspub::MSPUBParser::parseEscherDelay ( WPXInputStream *  input)
protected
void libmspub::MSPUBParser::parseEscherShape ( WPXInputStream *  input,
const EscherContainerInfo sp,
bool  topLevel,
Coordinate parentCoordinateSystem,
Coordinate parentGroupAbsoluteCoord 
)
protected
void libmspub::MSPUBParser::parseFonts ( WPXInputStream *  input,
const QuillChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parsePageChunk ( WPXInputStream *  input,
const ContentChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parsePaletteChunk ( WPXInputStream *  input,
const ContentChunkReference chunk 
)
protected
void libmspub::MSPUBParser::parsePaletteEntry ( WPXInputStream *  input,
MSPUBBlockInfo  block 
)
protected
std::vector< libmspub::MSPUBParser::TextParagraphReference > libmspub::MSPUBParser::parseParagraphStyles ( WPXInputStream *  input,
const QuillChunkReference chunk 
)
protected
bool libmspub::MSPUBParser::parseQuill ( WPXInputStream *  input)
protected
libmspub::QuillChunkReference libmspub::MSPUBParser::parseQuillChunkReference ( WPXInputStream *  input)
protected
bool libmspub::MSPUBParser::parseShape ( WPXInputStream *  input,
unsigned  seqNum,
unsigned  pageSeqNum,
bool  parseWithoutDimensions,
bool  isGroup 
)
protected
void libmspub::MSPUBParser::parseShapeGroup ( WPXInputStream *  input,
const EscherContainerInfo spgr,
bool  topLevel,
Coordinate  parentCoordinateSystem,
Coordinate  parentGroupAbsoluteCoord 
)
protected
bool libmspub::MSPUBParser::parseShapes ( WPXInputStream *  input,
libmspub::MSPUBBlockInfo  info,
unsigned  pageSeqNum 
)
protected
void libmspub::MSPUBParser::skipBlock ( WPXInputStream *  input,
libmspub::MSPUBBlockInfo  block 
)
protected

Member Data Documentation

std::vector<int> libmspub::MSPUBParser::m_alternateShapeSeqNums
protected
std::vector<MSPUBBlockInfo> libmspub::MSPUBParser::m_blockInfo
protected
MSPUBCollector* libmspub::MSPUBParser::m_collector
protected
std::vector<ContentChunkReference> libmspub::MSPUBParser::m_contentChunks
protected
boost::optional<unsigned> libmspub::MSPUBParser::m_documentChunkIndex
protected
std::vector<int> libmspub::MSPUBParser::m_escherDelayIndices
protected
WPXInputStream* libmspub::MSPUBParser::m_input
protected
unsigned libmspub::MSPUBParser::m_lastAddedImage
protected
int libmspub::MSPUBParser::m_lastSeenSeqNum
protected
std::vector<unsigned> libmspub::MSPUBParser::m_pageChunkIndices
protected
std::vector<unsigned> libmspub::MSPUBParser::m_paletteChunkIndices
protected
std::vector<unsigned> libmspub::MSPUBParser::m_shapeChunkIndices
protected
std::vector<unsigned> libmspub::MSPUBParser::m_unknownChunkIndices
protected

The documentation for this class was generated from the following files:

Generated for libmspub by doxygen 1.8.1.2