10#ifndef INCLUDED_MSPUBPARSER_H
11#define INCLUDED_MSPUBPARSER_H
19#include <boost/optional.hpp>
21#include <librevenge/librevenge.h>
95 virtual bool parseContents(librevenge::RVNGInputStream *input);
97 bool parseQuill(librevenge::RVNGInputStream *input);
98 bool parseEscher(librevenge::RVNGInputStream *input);
129 std::vector<Calculation>
parseGuides(
const std::vector<unsigned char>
131 std::vector<Vertex>
parseVertices(
const std::vector<unsigned char>
136 const std::vector<unsigned char> &segmentData);
138 const std::vector<unsigned char> &vertexData,
139 const std::vector<unsigned char> &segmentData,
140 const std::vector<unsigned char> &guideData,
141 unsigned geoWidth,
unsigned geoHeight);
146 std::shared_ptr<Fill>
getNewFill(
const std::map<unsigned short, unsigned> &foptProperties,
bool &skipIfNotBg, std::map<
unsigned short, std::vector<unsigned char> > &foptValues);
174 unsigned *geomFlags =
nullptr);
FindByParentSeqNum(unsigned sn)
Definition MSPUBParser.h:49
bool operator()(const libmspub::ContentChunkReference &ref)
Definition MSPUBParser.h:50
unsigned seqNum
Definition MSPUBParser.h:47
FindBySeqNum(unsigned sn)
Definition MSPUBParser.h:38
unsigned seqNum
Definition MSPUBParser.h:36
bool operator()(const libmspub::ContentChunkReference &ref)
Definition MSPUBParser.h:39
Definition MSPUBCollector.h:45
void parseDefaultStyle(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:1177
virtual ~MSPUBParser()
Definition MSPUBParser.cpp:123
std::vector< TextSpanReference > parseCharacterStyles(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:1252
void parseColors(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:1205
unsigned m_length
Definition MSPUBParser.h:149
unsigned m_lastAddedImage
Definition MSPUBParser.h:162
virtual bool parseContents(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:379
std::vector< Vertex > parseVertices(const std::vector< unsigned char > &vertexData)
Definition MSPUBParser.cpp:2228
EscherContainerInfo parseEscherContainer(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:2503
static bool lineExistsByFlagPointer(unsigned *flags, unsigned *geomFlags=nullptr)
Definition MSPUBParser.cpp:127
bool parsePaletteChunk(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:2579
bool parsePageShapeList(librevenge::RVNGInputStream *input, MSPUBBlockInfo block, unsigned pageSeqNum)
Definition MSPUBParser.cpp:697
static unsigned getEscherElementAdditionalHeaderLength(unsigned short type)
Definition MSPUBParser.cpp:2296
std::vector< int > m_alternateShapeSeqNums
Definition MSPUBParser.h:163
static ImgType imgTypeByBlipType(unsigned short type)
Definition MSPUBParser.cpp:234
std::vector< unsigned > parseTableCellDefinitions(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:964
bool findEscherContainerWithTypeInSet(librevenge::RVNGInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, std::set< unsigned short > types)
Definition MSPUBParser.cpp:2307
std::vector< unsigned > m_paletteChunkIndices
Definition MSPUBParser.h:156
bool parseEscher(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:1542
static PageType getPageTypeBySeqNum(unsigned seqNum)
Definition MSPUBParser.cpp:2565
std::vector< ContentChunkReference > m_contentChunks
Definition MSPUBParser.h:152
bool parseFontChunk(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:526
void parsePaletteEntry(librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
Definition MSPUBParser.cpp:2606
static int getStartOffset(ImgType type, unsigned short initial)
Definition MSPUBParser.cpp:258
boost::optional< unsigned > m_documentChunkIndex
Definition MSPUBParser.h:160
std::map< unsigned short, unsigned > extractEscherValues(librevenge::RVNGInputStream *input, const EscherContainerInfo &record)
Definition MSPUBParser.cpp:2383
FOPTValues extractFOPTValues(librevenge::RVNGInputStream *input, const libmspub::EscherContainerInfo &record)
Definition MSPUBParser.cpp:2338
bool parseQuill(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:982
static unsigned getEscherElementTailLength(unsigned short type)
Definition MSPUBParser.cpp:2284
int m_lastSeenSeqNum
Definition MSPUBParser.h:161
static short getBlockDataLength(unsigned type)
Definition MSPUBParser.cpp:142
void parseFonts(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:1159
bool parseShape(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:711
virtual unsigned getColorIndexByQuillEntry(unsigned entry)
Definition MSPUBParser.cpp:137
bool parseMetaData()
Definition MSPUBParser.cpp:2618
std::vector< MSPUBBlockInfo > m_blockInfo
Definition MSPUBParser.h:151
unsigned getFontIndex(librevenge::RVNGInputStream *input, const MSPUBBlockInfo &info)
Definition MSPUBParser.cpp:1504
ParagraphStyle getParagraphStyle(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:1279
bool parseContentChunkReference(librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
Definition MSPUBParser.cpp:2403
MSPUBParser & operator=(const MSPUBParser &)
MSPUBParser(librevenge::RVNGInputStream *input, MSPUBCollector *collector)
Definition MSPUBParser.cpp:108
std::shared_ptr< Fill > getNewFill(const std::map< unsigned short, unsigned > &foptProperties, bool &skipIfNotBg, std::map< unsigned short, std::vector< unsigned char > > &foptValues)
Definition MSPUBParser.cpp:2010
std::vector< ContentChunkReference >::const_iterator ccr_iterator_t
Definition MSPUBParser.h:90
bool parseEscherDelay(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:299
std::vector< Calculation > parseGuides(const std::vector< unsigned char > &guideData)
Definition MSPUBParser.cpp:2218
std::vector< TextParagraphReference > parseParagraphStyles(librevenge::RVNGInputStream *input, const QuillChunkReference &chunk)
Definition MSPUBParser.cpp:1224
std::vector< unsigned short > parseSegments(const std::vector< unsigned char > &segmentData)
Definition MSPUBParser.cpp:2195
void skipBlock(librevenge::RVNGInputStream *input, MSPUBBlockInfo block)
Definition MSPUBParser.cpp:2498
std::vector< unsigned > m_unknownChunkIndices
Definition MSPUBParser.h:159
virtual bool parse()
Definition MSPUBParser.cpp:185
MSPUBCollector * m_collector
Definition MSPUBParser.h:150
librevenge::RVNGInputStream * m_input
Definition MSPUBParser.h:148
void parseShapeGroup(librevenge::RVNGInputStream *input, const EscherContainerInfo &spgr, Coordinate parentCoordinateSystem, Coordinate parentGroupAbsoluteCoord, unsigned depth=0)
Definition MSPUBParser.cpp:1588
MSPUBBlockInfo parseBlock(librevenge::RVNGInputStream *input, bool skipHierarchicalData=false)
Definition MSPUBParser.cpp:2514
bool parseDocumentChunk(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:482
std::vector< unsigned > m_pageChunkIndices
Definition MSPUBParser.h:154
bool findEscherContainer(librevenge::RVNGInputStream *input, const EscherContainerInfo &parent, EscherContainerInfo &out, unsigned short type)
Definition MSPUBParser.cpp:2322
std::vector< unsigned > m_cellsChunkIndices
Definition MSPUBParser.h:153
std::vector< unsigned > m_shapeChunkIndices
Definition MSPUBParser.h:155
MSPUBParser(const MSPUBParser &)
std::vector< unsigned > m_borderArtChunkIndices
Definition MSPUBParser.h:157
QuillChunkReference parseQuillChunkReference(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:939
CharacterStyle getCharacterStyle(librevenge::RVNGInputStream *input)
Definition MSPUBParser.cpp:1409
DynamicCustomShape getDynamicCustomShape(const std::vector< unsigned char > &vertexData, const std::vector< unsigned char > &segmentData, const std::vector< unsigned char > &guideData, unsigned geoWidth, unsigned geoHeight)
Definition MSPUBParser.cpp:2183
int getColorIndex(librevenge::RVNGInputStream *input, const MSPUBBlockInfo &info)
Definition MSPUBParser.cpp:1525
std::vector< unsigned > m_fontChunkIndices
Definition MSPUBParser.h:158
void parseEscherShape(librevenge::RVNGInputStream *input, const EscherContainerInfo &sp, Coordinate &parentCoordinateSystem, Coordinate &parentGroupAbsoluteCoord)
Definition MSPUBParser.cpp:1613
std::vector< int > m_escherDelayIndices
Definition MSPUBParser.h:164
static bool isBlockDataString(unsigned type)
Definition MSPUBParser.cpp:2494
bool parseBorderArtChunk(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:591
bool parsePageChunk(librevenge::RVNGInputStream *input, const ContentChunkReference &chunk)
Definition MSPUBParser.cpp:655
PageType
Definition MSPUBTypes.h:207
ImgType
Definition MSPUBTypes.h:214
Definition MSPUBTypes.h:113
Definition MSPUBTypes.h:91
unsigned parentSeqNum
Definition MSPUBTypes.h:99
unsigned seqNum
Definition MSPUBTypes.h:98
Definition Coordinate.h:22
Definition PolygonUtils.h:91
Definition MSPUBTypes.h:71
Definition MSPUBParser.h:57
std::map< unsigned short, std::vector< unsigned char > > m_complexValues
Definition MSPUBParser.h:59
FOPTValues()
Definition MSPUBParser.h:60
std::map< unsigned short, unsigned > m_scalarValues
Definition MSPUBParser.h:58
Definition MSPUBTypes.h:79
ParagraphStyle paraStyle
Definition MSPUBParser.h:87
unsigned short last
Definition MSPUBParser.h:86
unsigned short first
Definition MSPUBParser.h:85
TextParagraphReference(unsigned short f, unsigned short l, const ParagraphStyle &ps)
Definition MSPUBParser.h:84
unsigned short last
Definition MSPUBParser.h:78
CharacterStyle charStyle
Definition MSPUBParser.h:79
TextSpanReference(unsigned short f, unsigned short l, const CharacterStyle &cs)
Definition MSPUBParser.h:76
unsigned short first
Definition MSPUBParser.h:77
Definition MSPUBTypes.h:164
Definition MSPUBTypes.h:103