Go to the documentation of this file.
10 #ifndef __VSDPARSER_H__
11 #define __VSDPARSER_H__
19 #include <librevenge/librevenge.h>
50 explicit VSDParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter, librevenge::RVNGInputStream *container =
nullptr);
59 void readEllipse(librevenge::RVNGInputStream *input);
60 virtual void readLine(librevenge::RVNGInputStream *input);
62 virtual void readGeomList(librevenge::RVNGInputStream *input);
64 void readMoveTo(librevenge::RVNGInputStream *input);
65 void readLineTo(librevenge::RVNGInputStream *input);
66 void readArcTo(librevenge::RVNGInputStream *input);
67 void readNURBSTo(librevenge::RVNGInputStream *input);
72 virtual void readXForm1D(librevenge::RVNGInputStream *input);
74 void readShapeId(librevenge::RVNGInputStream *input);
75 virtual void readShapeList(librevenge::RVNGInputStream *input);
78 virtual void readShape(librevenge::RVNGInputStream *input);
79 void readColours(librevenge::RVNGInputStream *input);
80 void readFont(librevenge::RVNGInputStream *input);
81 void readFontIX(librevenge::RVNGInputStream *input);
82 virtual void readCharList(librevenge::RVNGInputStream *input);
83 virtual void readParaList(librevenge::RVNGInputStream *input);
84 virtual void readPropList(librevenge::RVNGInputStream *input);
85 virtual void readPage(librevenge::RVNGInputStream *input);
86 virtual void readText(librevenge::RVNGInputStream *input);
87 virtual void readCharIX(librevenge::RVNGInputStream *input);
88 virtual void readParaIX(librevenge::RVNGInputStream *input);
89 virtual void readTextBlock(librevenge::RVNGInputStream *input);
91 virtual void readTabsData(librevenge::RVNGInputStream *input);
94 virtual void readName(librevenge::RVNGInputStream *input);
96 virtual void readNameList2(librevenge::RVNGInputStream *input);
97 virtual void readName2(librevenge::RVNGInputStream *input);
99 virtual void readFieldList(librevenge::RVNGInputStream *input);
100 virtual void readTextField(librevenge::RVNGInputStream *input);
110 void readOLEList(librevenge::RVNGInputStream *input);
111 void readOLEData(librevenge::RVNGInputStream *input);
113 virtual void readNameIDX(librevenge::RVNGInputStream *input);
116 virtual void readMisc(librevenge::RVNGInputStream *input);
118 virtual void readLayerList(librevenge::RVNGInputStream *input);
119 virtual void readLayer(librevenge::RVNGInputStream *input);
120 virtual void readLayerMem(librevenge::RVNGInputStream *input);
123 bool parseDocument(librevenge::RVNGInputStream *input,
unsigned shift);
128 void handleStreams(librevenge::RVNGInputStream *input,
unsigned ptrType,
unsigned shift,
unsigned level, std::set<unsigned> &visited);
129 void handleStream(
const Pointer &ptr,
unsigned idx,
unsigned level, std::set<unsigned> &visited);
130 void handleChunks(librevenge::RVNGInputStream *input,
unsigned level);
131 void handleChunk(librevenge::RVNGInputStream *input);
132 void handleBlob(librevenge::RVNGInputStream *input,
unsigned shift,
unsigned level);
135 virtual void readPointerInfo(librevenge::RVNGInputStream *input,
unsigned ptrType,
unsigned shift,
unsigned &listSize,
int &pointerCount);
142 virtual unsigned getUInt(librevenge::RVNGInputStream *input);
143 virtual int getInt(librevenge::RVNGInputStream *input);
191 #endif // __VSDPARSER_H__
std::vector< std::pair< double, double > > points
Definition: VSDTypes.h:103
void readPolylineTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1496
Pointer()
Definition: VSDParser.h:36
#define VSD_NAME_LIST2
Definition: VSDDocumentStructure.h:32
virtual void readLayerMem(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1064
#define VSD_CHAR_LIST
Definition: VSDDocumentStructure.h:48
#define VSD_FOREIGN_DATA
Definition: VSDDocumentStructure.h:13
#define VSD_GEOMETRY
Definition: VSDDocumentStructure.h:68
void readOLEData(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:782
Colour _colourFromIndex(unsigned idx)
Definition: VSDParser.cpp:2285
void handleStream(const Pointer &ptr, unsigned idx, unsigned level, std::set< unsigned > &visited)
Definition: VSDParser.cpp:290
virtual void readCharIX(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1925
#define VSD_NAMEIDX
Definition: VSDDocumentStructure.h:123
Definition: VSDParser.h:35
XForm m_xform
Definition: VSDStencils.h:54
VSDName m_currentPageName
Definition: VSDParser.h:178
@ VSD_TEXT_TURKISH
Definition: VSDTypes.h:162
double m_shadowOffsetX
Definition: VSDParser.h:169
#define VSD_NAME
Definition: VSDDocumentStructure.h:30
bool m_extractStencils
Definition: VSDParser.h:163
Definition: VSDStylesCollector.h:25
#define VSD_FONT_IX
Definition: VSDDocumentStructure.h:21
#define VSD_TABS_DATA_1
Definition: VSDDocumentStructure.h:67
bool parseDocument(librevenge::RVNGInputStream *input, unsigned shift)
Definition: VSDParser.cpp:177
#define VSD_LAYER
Definition: VSDDocumentStructure.h:99
#define VSD_FONTFACES
Definition: VSDDocumentStructure.h:127
unsigned m_currentGeomListCount
Definition: VSDParser.h:173
bool m_printable
Definition: VSDLayerList.h:30
boost::optional< Colour > m_colour
Definition: VSDLayerList.h:28
void readNURBSTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1337
void readSplineStart(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1678
Definition: VSDParser.h:48
unsigned char b
Definition: VSDTypes.h:91
std::vector< std::pair< double, double > > points
Definition: VSDTypes.h:126
#define VSD_TABS_DATA_2
Definition: VSDDocumentStructure.h:81
virtual void readStyleSheet(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1885
#define VSD_NAME2
Definition: VSDDocumentStructure.h:33
virtual void readCharList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:953
#define VSD_CHAR_IX
Definition: VSDDocumentStructure.h:79
TextFormat m_textFormat
Definition: VSDStencils.h:51
VSDShape m_shape
Definition: VSDParser.h:155
#define VSD_STENCIL_PAGE
Definition: VSDDocumentStructure.h:24
#define VSD_SHAPE_LIST
Definition: VSDDocumentStructure.h:45
Definition: VSDCollector.h:21
void readEllipticalArcTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:744
unsigned char yType
Definition: VSDTypes.h:100
#define VSD_LINE
Definition: VSDDocumentStructure.h:64
#define VSD_SHAPE_DATA
Definition: VSDDocumentStructure.h:125
#define VSD_SHAPE_ID
Definition: VSDDocumentStructure.h:62
librevenge::RVNGInputStream * m_container
Definition: VSDParser.h:147
void _nameFromId(VSDName &name, unsigned id, unsigned level)
Definition: VSDParser.cpp:38
virtual void readNameIDX123(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:833
@ VSD_TEXT_ANSI
Definition: VSDTypes.h:159
#define VSD_SHAPE_FOREIGN
Definition: VSDDocumentStructure.h:40
bool m_isShapeStarted
Definition: VSDParser.h:167
std::map< unsigned, VSDName > m_fonts
Definition: VSDParser.h:175
void readForeignData(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:764
#define VSD_ELLIPTICAL_ARC_TO
Definition: VSDDocumentStructure.h:75
#define VSD_DEBUG_MSG(M)
Definition: libvisio_utils.h:42
Definition: VSDStencils.h:78
#define VSD_NAMEIDX123
Definition: VSDDocumentStructure.h:34
bool m_isBackgroundPage
Definition: VSDParser.h:166
#define VSD_PROP_LIST
Definition: VSDDocumentStructure.h:47
std::map< unsigned, std::map< unsigned, VSDName > > m_namesMapMap
Definition: VSDParser.h:177
ForeignData * m_foreign
Definition: VSDStencils.h:38
VSDMisc m_misc
Definition: VSDStencils.h:57
Definition: libvisio_utils.h:76
void readXFormData(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1134
void handleChunk(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:458
#define VSD_POLYLINE_TO
Definition: VSDDocumentStructure.h:116
unsigned char xType
Definition: VSDTypes.h:124
unsigned char r
Definition: VSDTypes.h:89
virtual void readText(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1903
#define VSD_PAGES
Definition: VSDDocumentStructure.h:27
virtual void readTextBlock(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:892
#define VSD_STYLE_SHEET
Definition: VSDDocumentStructure.h:42
void readFontIX(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1770
void readStencilShape(librevenge::RVNGInputStream *input)
Definition: VSDStencils.h:62
bool parseMain()
Definition: VSDParser.cpp:106
#define VSD_NAME_LIST
Definition: VSDDocumentStructure.h:29
virtual void readMisc(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2241
void handleBlob(librevenge::RVNGInputStream *input, unsigned shift, unsigned level)
Definition: VSDParser.cpp:424
uint32_t readU32(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:55
std::map< unsigned, VSDName > m_names
Definition: VSDParser.h:176
VSDStencil * m_currentStencil
Definition: VSDParser.h:154
unsigned m_currentLayerListLevel
Definition: VSDParser.h:161
#define VSD_LAYER_LIST
Definition: VSDDocumentStructure.h:54
VSDGeometryList * m_currentGeometryList
Definition: VSDParser.h:172
unsigned ListSize
Definition: VSDParser.h:44
librevenge::RVNGDrawingInterface * m_painter
Definition: VSDParser.h:146
Definition: VSDInternalStream.h:19
ChunkHeader m_header
Definition: VSDParser.h:148
Definition: VSDStyles.h:349
void readArcTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1121
#define VSD_NURBS_TO
Definition: VSDDocumentStructure.h:117
void handleStreams(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned level, std::set< unsigned > &visited)
Definition: VSDParser.cpp:219
#define VSD_TEXT_BLOCK
Definition: VSDDocumentStructure.h:66
Definition: VSDTypes.h:73
virtual void readName(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2146
std::vector< double > weights
Definition: VSDTypes.h:102
void readColours(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1734
bool m_isInStyles
Definition: VSDParser.h:157
void readShapeData(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1609
void _flushShape()
Definition: VSDParser.cpp:634
#define VSD_LINE_TO
Definition: VSDDocumentStructure.h:70
uint8_t readU8(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:18
@ VSD_TEXT_CHINESE_TRADITIONAL
Definition: VSDTypes.h:173
bool m_isStencilStarted
Definition: VSDParser.h:156
virtual void readNameList2(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1710
#define VSD_ELLIPSE
Definition: VSDDocumentStructure.h:74
std::map< unsigned, VSDTabStop > * m_currentTabSet
Definition: VSDParser.h:180
virtual void readPropList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:997
uint16_t readU16(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:34
void _handleLevelChange(unsigned level)
Definition: VSDParser.cpp:713
void readLineTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1110
@ VSD_TEXT_GREEK
Definition: VSDTypes.h:161
void readTxtXForm(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1168
void readInfiniteLine(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1595
virtual void readName2(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2157
Definition: VSDStyles.h:224
virtual void readTabsData(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:797
virtual void readLayer(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1041
#define VSD_ALMOST_ZERO(m)
Definition: libvisio_utils.h:24
unsigned long getRemainingLength(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:112
void readNameList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1705
#define VSD_FIELD_LIST
Definition: VSDDocumentStructure.h:46
#define VSD_SPLINE_KNOT
Definition: VSDDocumentStructure.h:97
#define VSD_PAGE
Definition: VSDDocumentStructure.h:18
void readPageProps(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1249
void parseMetaData()
Definition: VSDParser.cpp:151
#define VSD_OLE_LIST
Definition: VSDDocumentStructure.h:14
void readOLEList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:778
virtual void readTabsDataList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1001
Definition: VSDGeometryList.h:48
void readPageSheet(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1897
virtual void readLayerList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1021
virtual void readTextField(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2172
#define VSD_MISC
Definition: VSDDocumentStructure.h:95
void readMoveTo(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1099
@ VSD_TEXT_UTF16
Definition: VSDTypes.h:175
virtual void readParaIX(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1993
Definition: VSDStyles.h:24
std::map< unsigned, VSDTabSet > m_tabSets
Definition: VSDStencils.h:48
#define VSD_TABS_DATA_3
Definition: VSDDocumentStructure.h:82
VSDParser & operator=(const VSDParser &)
Pointer(const Pointer &ptr)
Definition: VSDParser.h:38
Definition: VSDTypes.h:123
@ VSD_TEXT_HEBREW
Definition: VSDTypes.h:164
Definition: VSDLayerList.h:22
Definition: VSDShapeList.h:20
librevenge::RVNGInputStream * m_input
Definition: VSDParser.h:145
void readSplineKnot(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1693
#define VSD_FOREIGN_DATA_TYPE
Definition: VSDDocumentStructure.h:83
#define VSD_STENCILS
Definition: VSDDocumentStructure.h:23
#define VSD_STYLES
Definition: VSDDocumentStructure.h:22
Definition: VSDContentCollector.h:32
void handleChunks(librevenge::RVNGInputStream *input, unsigned level)
Definition: VSDParser.cpp:440
Definition: VSDStyles.h:533
void readShapeId(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1189
Definition: VSDTypes.h:200
virtual void readPointer(librevenge::RVNGInputStream *input, Pointer &ptr)
Definition: VSDParser.cpp:199
unsigned char xType
Definition: VSDTypes.h:99
unsigned char yType
Definition: VSDTypes.h:125
#define VSD_COLORS
Definition: VSDDocumentStructure.h:19
virtual void readFieldList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1715
void readGeometry(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1088
#define VSD_PARA_LIST
Definition: VSDDocumentStructure.h:49
@ VSD_TEXT_RUSSIAN
Definition: VSDTypes.h:167
VSDStencils m_stencils
Definition: VSDParser.h:153
#define VSD_XFORM_DATA
Definition: VSDDocumentStructure.h:86
virtual unsigned getUInt(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2292
#define VSD_SHAPE_GROUP
Definition: VSDDocumentStructure.h:37
VSDCollector * m_collector
Definition: VSDParser.h:149
@ VSD_TEXT_THAI
Definition: VSDTypes.h:168
unsigned Length
Definition: VSDParser.h:42
@ VSD_TEXT_KOREAN
Definition: VSDTypes.h:171
void readForeignDataType(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1221
Definition: VSDTypes.h:135
unsigned long getSize() const
Definition: VSDInternalStream.h:52
virtual void readShape(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1277
@ VSD_TEXT_ARABIC
Definition: VSDTypes.h:165
unsigned char g
Definition: VSDTypes.h:90
TextFormat
Definition: VSDTypes.h:158
XForm * m_txtxform
Definition: VSDStencils.h:55
bool m_visible
Definition: VSDLayerList.h:29
std::vector< double > knots
Definition: VSDTypes.h:101
VSDParser(const VSDParser &)
virtual void readPage(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1081
virtual bool getChunkHeader(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:50
Definition: VSDStencils.h:27
#define VSD_MOVE_TO
Definition: VSDDocumentStructure.h:69
#define VSD_INFINITE_LINE
Definition: VSDDocumentStructure.h:72
virtual void readGeomList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:923
#define VSD_TEXT_FIELD
Definition: VSDDocumentStructure.h:92
#define VSD_PAGE_SHEET
Definition: VSDDocumentStructure.h:36
@ VSD_TEXT_CHINESE_SIMPLIFIED
Definition: VSDTypes.h:172
#define VSD_TRAILER_STREAM
Definition: VSDDocumentStructure.h:17
librevenge::RVNGBinaryData m_text
Definition: VSDStencils.h:49
virtual void readShapeList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1197
#define VSD_GEOM_LIST
Definition: VSDDocumentStructure.h:51
int32_t readS32(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:71
unsigned char a
Definition: VSDTypes.h:92
void readEllipse(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:849
unsigned Type
Definition: VSDParser.h:40
unsigned Offset
Definition: VSDParser.h:41
@ VSD_TEXT_SYMBOL
Definition: VSDTypes.h:160
Definition: VSDTypes.h:179
#define VSD_SHAPE_SHAPE
Definition: VSDDocumentStructure.h:38
#define VSD_TABS_DATA_LIST
Definition: VSDDocumentStructure.h:50
virtual void readPointerInfo(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount)
Definition: VSDParser.cpp:208
std::vector< Colour > m_colours
Definition: VSDParser.h:164
#define VSD_TEXT_XFORM
Definition: VSDDocumentStructure.h:87
unsigned degree
Definition: VSDTypes.h:98
#define VSD_FONTFACE
Definition: VSDDocumentStructure.h:126
#define VSD_FILL_AND_SHADOW
Definition: VSDDocumentStructure.h:65
#define VSD_PARA_IX
Definition: VSDDocumentStructure.h:80
virtual void readNameIDX(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:811
#define MINUS_ONE
Definition: VSDTypes.h:18
virtual int getInt(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2297
virtual void readParaList(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:975
unsigned m_currentShapeLevel
Definition: VSDParser.h:158
double lastKnot
Definition: VSDTypes.h:97
void readFont(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1753
unsigned m_currentLevel
Definition: VSDParser.h:151
Definition: VSDStyles.h:109
@ VSD_TEXT_CENTRAL_EUROPE
Definition: VSDTypes.h:169
#define VSD_XFORM_1D
Definition: VSDDocumentStructure.h:88
virtual void readXForm1D(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:1154
virtual void readFillAndShadow(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:2078
@ VSD_TEXT_BALTIC
Definition: VSDTypes.h:166
#define VSD_OLE_DATA
Definition: VSDDocumentStructure.h:25
const VSDStyles & getStyleSheets() const
Definition: VSDStylesCollector.h:175
#define VSD_TEXT
Definition: VSDDocumentStructure.h:15
Definition: VSDTypes.h:96
Definition: VSDStyles.h:453
@ VSD_TEXT_JAPANESE
Definition: VSDTypes.h:170
double readDouble(librevenge::RVNGInputStream *input)
Definition: libvisio_utils.cpp:92
unsigned m_currentShapeID
Definition: VSDParser.h:159
#define VSD_SPLINE_START
Definition: VSDDocumentStructure.h:96
#define VSD_ARC_TO
Definition: VSDDocumentStructure.h:71
virtual ~VSDParser()
Definition: VSDParser.cpp:34
bool extractStencils()
Definition: VSDParser.cpp:193
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr_t
Definition: libvisio_utils.h:51
Definition: libvisio_utils.h:49
#define VSD_PAGE_PROPS
Definition: VSDDocumentStructure.h:77
@ VSD_TEXT_VIETNAMESE
Definition: VSDTypes.h:163
#define VSD_LAYER_MEMBERSHIP
Definition: VSDDocumentStructure.h:98
unsigned short Format
Definition: VSDParser.h:43
double m_shadowOffsetY
Definition: VSDParser.h:170
VSDShapeList m_shapeList
Definition: VSDParser.h:150
virtual void readLine(librevenge::RVNGInputStream *input)
Definition: VSDParser.cpp:868
Generated for libvisio by
doxygen 1.8.20