Go to the documentation of this file.
27 #include <librevenge-stream/librevenge-stream.h>
77 bool m_special, m_footnote, m_annotation;
101 , m_startPageNumber(0xffff)
143 void parse(librevenge::RVNGTextInterface *documentInterface)
override;
149 std::shared_ptr<WPSContentListener> createListener(librevenge::RVNGTextInterface *interface);
151 void readStructures();
154 virtual void readFFNTB();
155 void readFOD(
unsigned page,
void (
MSWriteParser::*parseFOD)(uint32_t fcFirst, uint32_t fcLim,
unsigned size));
156 virtual void readPAP(uint32_t fcFirst, uint32_t fcLim,
unsigned cch);
157 virtual void readCHP(uint32_t fcFirst, uint32_t fcLim,
unsigned cch);
158 virtual void readSUMD();
159 virtual void readFNTB();
160 virtual void readSED();
163 void processObject(
WPSPosition &pos,
unsigned long lastPos);
164 bool processDDB(librevenge::RVNGBinaryData &bmpdata,
WPSPosition &pos,
unsigned width,
unsigned height,
unsigned byte_width,
unsigned planes,
unsigned bits_pixel,
unsigned size);
165 bool processDIB(librevenge::RVNGBinaryData &bmpdata,
unsigned size);
166 bool processWMF(librevenge::RVNGBinaryData &wmfdata,
unsigned size);
167 void processEmbeddedOLE(
WPSPosition &pos,
unsigned long lastPos);
168 bool processStaticOLE(librevenge::RVNGBinaryData &, std::string &mimetype,
WPSPosition &pos,
unsigned long lastPos);
169 bool readString(std::string &res,
unsigned long lastPos);
171 virtual void insertControl(uint8_t val, uint32_t fc);
172 void insertNote(
bool annotation, uint32_t fcPos, librevenge::RVNGString &label);
181 return pos<=m_fileLength;
@ HEADER_W_PNPARA
Definition: MSWrite.cpp:193
@ HEADER_W_PNFFNTB
Definition: MSWrite.cpp:198
@ XLeft
Definition: WPSPosition.h:47
double m_yaTop
Definition: MSWrite.h:112
Definition: MSWrite.cpp:39
@ BM_INFO_V2_SIZE
Definition: MSWrite.cpp:261
uint8_t m_g
Definition: MSWrite.cpp:271
#define WPS_LE_PUT_GUINT16(p, v)
Definition: libwps_internal.h:232
unsigned m_bkc
Definition: MSWrite.h:110
Paragraph(Paragraph const &)=default
a field
Definition: libwps_internal.h:463
libwps::Justification m_justify
the justification
Definition: WPSParagraph.h:116
uint8_t m_reserved3[5]
Definition: MSWrite.cpp:152
Internal: the subdocument of a MSWriteParser.
Definition: MSWrite.cpp:49
void processEmbeddedOLE(WPSPosition &pos, unsigned long lastPos)
Definition: MSWrite.cpp:1580
uint16_t m_dyaAfter
Definition: MSWrite.cpp:150
uint32_t m_fileLength
the last file position
Definition: MSWrite.h:185
void processObject(WPSPosition &pos, unsigned long lastPos)
Definition: MSWrite.cpp:1186
uint16_t m_startPageNumber
Definition: MSWrite.h:116
double m_xaLeft
Definition: MSWrite.h:114
@ PageNumber
Definition: libwps_internal.h:465
@ HEADER_W_PNSEP
Definition: MSWrite.cpp:195
@ PIC_W_MX
Definition: MSWrite.cpp:217
#define WPS_BOLD_BIT
Definition: libwps_internal.h:506
bool processWMF(librevenge::RVNGBinaryData &wmfdata, unsigned size)
Definition: MSWrite.cpp:1660
void parse(std::shared_ptr< WPSContentListener > &listener, libwps::SubDocumentType subDocumentType) final
the parser function
Definition: MSWrite.cpp:76
void setPageSpan(const int pageSpan)
Definition: WPSPageSpan.h:166
bool readString(std::string &res, unsigned long lastPos)
Definition: MSWrite.cpp:1145
@ XCenter
Definition: WPSPosition.h:47
long end() const
returns the end offset
Definition: WPSEntry.h:78
@ PIC_W_BMWIDTHBYTES
Definition: MSWrite.cpp:213
double m_interLine
Definition: MSWrite.h:60
@ PIC_W_MY
Definition: MSWrite.cpp:218
@ PIC_W_YEXT
Definition: MSWrite.cpp:207
HeaderOffset
Definition: MSWrite.cpp:188
bool m_graphics
Definition: MSWrite.h:59
double m_margins[3]
the margins
Definition: WPSParagraph.h:101
uint32_t m_fcLim
Definition: MSWrite.h:109
virtual void readCHP(uint32_t fcFirst, uint32_t fcLim, unsigned cch)
Definition: MSWrite.cpp:711
#define WPS_LE_GET_GUINT16(p)
Definition: libwps_internal.h:223
bool m_special
Definition: MSWrite.h:77
@ HEADER_W_WTOOL
Definition: MSWrite.cpp:191
#define WPS_SUBSCRIPT_BIT
Definition: libwps_internal.h:500
uint32_t m_fcFirst
Definition: MSWrite.h:57
@ BM_INFO_V2_HEIGHT
Definition: MSWrite.cpp:263
@ HEADER_W_PNFNTB
Definition: MSWrite.cpp:194
bool processStaticOLE(librevenge::RVNGBinaryData &, std::string &mimetype, WPSPosition &pos, unsigned long lastPos)
Definition: MSWrite.cpp:1523
CHP()
Definition: MSWrite.cpp:169
bool m_endFtns
Definition: MSWrite.h:119
#define WPS_UNDERLINE_BIT
Definition: libwps_internal.h:508
MSWriteParser(RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::WIN3_WEUROPE)
Definition: MSWrite.cpp:290
@ BM_INFO_V3_HORZ_RES
Definition: MSWrite.cpp:243
static void appendU16(librevenge::RVNGBinaryData &b, uint16_t val)
Definition: MSWrite.cpp:274
virtual void readPAP(uint32_t fcFirst, uint32_t fcLim, unsigned cch)
Definition: MSWrite.cpp:612
std::vector< MSWriteParserInternal::Font > m_fontList
Definition: MSWrite.h:189
std::shared_ptr< WPSContentListener > WPSContentListenerPtr
shared pointer to WPSContentListener
Definition: libwps_internal.h:107
double m_dxaGutter
Definition: MSWrite.h:121
@ BM_FILE_SIZE
Definition: MSWrite.cpp:253
double m_yaFooter
Definition: MSWrite.h:118
WPSEntry m_Main
Definition: MSWrite.h:122
~Paragraph() final
Definition: MSWrite.cpp:44
@ BM_INFO_V3_COLORS_USED
Definition: MSWrite.cpp:245
@ NEVER
Definition: WPSPageSpan.h:44
@ AtLeast
Definition: WPSParagraph.h:61
#define WPS_SUPERSCRIPT_BIT
Definition: libwps_internal.h:499
WPSParser * m_parser
Definition: WPSTextSubDocument.h:62
SubDocument(RVNGInputStreamPtr const &input, MSWriteParser &pars, WPSEntry const &entry, Paragraph::Location location)
constructor for a text entry
Definition: MSWrite.cpp:52
double getMarginLeft() const
Definition: WPSPageSpan.h:71
@ BM_FILE_MAGIC
Definition: MSWrite.cpp:252
@ PIC_W_DXASIZE
Definition: MSWrite.cpp:209
bool operator==(std::shared_ptr< WPSSubDocument > const &doc) const final
operator==
Definition: MSWrite.cpp:60
uint16_t m_dyaBefore
Definition: MSWrite.cpp:150
std::shared_ptr< WPSContentListener > m_listener
Definition: MSWrite.h:195
bool checkFilePosition(uint32_t pos) const
check if the file position is correct or not
Definition: MSWrite.h:179
void setMarginRight(const double marginRight)
Definition: WPSPageSpan.h:134
uint32_t m_fcLim
Definition: MSWrite.h:57
@ ALL
Definition: WPSPageSpan.h:44
@ JustificationFullAllLines
Definition: libwps_internal.h:250
@ PIC_W_XEXT
Definition: MSWrite.cpp:206
void readText(WPSEntry const &e, MSWriteParserInternal::Paragraph::Location location)
Definition: MSWrite.cpp:931
@ OLE_W_OBJECTTYPE
Definition: MSWrite.cpp:225
librevenge::RVNGPropertyList m_metaData
Definition: MSWrite.h:197
Definition: WPSContentListener.h:45
define the font properties
Definition: WPSFont.h:37
void startSection(MSWriteParserInternal::Section §ion)
Definition: MSWrite.cpp:1754
bool valid(bool checkId=false) const
returns true if the zone length is positive
Definition: WPSEntry.h:89
#define WPS_ITALICS_BIT
Definition: libwps_internal.h:502
Definition: WPSParagraph.h:38
Paragraph::Location m_Location
Definition: MSWrite.cpp:73
bool m_skiptab
Definition: MSWrite.h:59
Definition: MSWrite.cpp:130
@ HEADER
Definition: WPSPageSpan.h:43
@ BM_INFO_V3_COLORS_IMPORTANT
Definition: MSWrite.cpp:246
uint8_t m_reserved2[2]
Definition: MSWrite.cpp:148
@ FOOTER
Definition: WPSPageSpan.h:43
basic class to store an entry in a file This contained :
Definition: WPSEntry.h:39
@ OLE_W_MY
Definition: MSWrite.cpp:231
Definition: WPSParser.h:36
double m_yaHeader
Definition: MSWrite.h:117
Definition: MSWrite.cpp:270
WPSPageSpan::HeaderFooterOccurrence m_HeaderFooterOccurrence
Definition: MSWrite.h:61
#define WPS_PAGE_BREAK
Definition: libwps_internal.h:519
uint8_t m_ftcXtra
Definition: MSWrite.cpp:182
uint8_t m_r
Definition: MSWrite.cpp:271
~SubDocument() final
destructor
Definition: MSWrite.cpp:57
void setInterline(double value, librevenge::RVNGUnit unit, LineSpacingType type=Fixed)
set the interline
Definition: WPSParagraph.h:87
double m_yaMac
Definition: MSWrite.h:111
This class parses Microsoft Write 3.0 and 3.1.
Definition: MSWrite.h:132
bool processDDB(librevenge::RVNGBinaryData &bmpdata, WPSPosition &pos, unsigned width, unsigned height, unsigned byte_width, unsigned planes, unsigned bits_pixel, unsigned size)
Definition: MSWrite.cpp:1295
bool processDIB(librevenge::RVNGBinaryData &bmpdata, unsigned size)
Definition: MSWrite.cpp:1480
@ BM_INFO_V3_SIZE
Definition: MSWrite.cpp:236
std::vector< librevenge::RVNGString > m_fonts
Definition: MSWrite.h:192
unsigned m_columns
Definition: MSWrite.h:120
@ PIC_B_BMBITSPIXEL
Definition: MSWrite.cpp:215
Vec2< float > Vec2f
Vec2 of float.
Definition: libwps_internal.h:704
void setUnit(librevenge::RVNGUnit unt)
sets the dimension unit
Definition: WPSPosition.h:202
@ PIC_W_BMHEIGHT
Definition: MSWrite.cpp:212
void setRelativePosition(AnchorTo anchor, XPos X=XLeft, YPos Y=YTop)
sets the relative position
Definition: WPSPosition.h:214
@ HEADER_W_DTY
Definition: MSWrite.cpp:190
double m_dxaColumns
Definition: MSWrite.h:121
@ BM_INFO_V3_COMPRESSION
Definition: MSWrite.cpp:241
@ LEFT
Definition: WPSParagraph.h:39
Section()
constructor
Definition: MSWrite.h:92
uint16_t m_dyaLine
Definition: MSWrite.cpp:149
BitmapFileHeaderOffset
Definition: MSWrite.cpp:251
Definition: libwps_internal.h:152
virtual void readFFNTB()
Definition: MSWrite.cpp:354
Font()
Definition: MSWrite.h:66
uint32_t m_fcFirst
Definition: MSWrite.h:76
Vec2f const & size() const
returns the frame size
Definition: WPSPosition.h:123
PicOffset
Definition: MSWrite.cpp:204
uint32_t m_fcLim
Definition: MSWrite.h:76
#define WPS_DEBUG_MSG(M)
Definition: libwps_internal.h:134
uint32_t readU32(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:76
@ BM_FILE_STRUCT_SIZE
Definition: MSWrite.cpp:256
XPos
an enum used to define the relative X position
Definition: WPSPosition.h:47
class to store the paragraph properties
Definition: WPSParagraph.h:58
void setBegin(long off)
sets the begin offset
Definition: WPSEntry.h:57
uint8_t m_fBold
Definition: MSWrite.cpp:179
Definition: MSWrite.cpp:168
@ PIC_D_CBSIZE
Definition: MSWrite.cpp:216
BitmapInfoHeaderV2Offset
Definition: MSWrite.cpp:260
static void appendU32(librevenge::RVNGBinaryData &b, uint32_t val)
Definition: MSWrite.cpp:280
double m_dyaText
Definition: MSWrite.h:113
uint8_t m_chAlign
Definition: MSWrite.cpp:163
@ PIC_W_DXAOFFSET
Definition: MSWrite.cpp:208
@ BM_INFO_V3_BITMAP_SIZE
Definition: MSWrite.cpp:242
@ DECIMAL
Definition: WPSParagraph.h:39
void setFormWidth(const double formWidth)
Definition: WPSPageSpan.h:122
SubDocumentType
Definition: libwps_internal.h:248
void setType(std::string const &tp)
sets the type of the entry: BTEP,FDPP, BTEC, FDPC, PLC , TEXT, ...
Definition: WPSEntry.h:126
uint8_t m_reserved1
Definition: MSWrite.cpp:178
uint16_t m_dxaLeft1
Definition: MSWrite.cpp:149
@ BM_INFO_V2_PLANES
Definition: MSWrite.cpp:264
uint32_t m_attributes
the font attributes defined as a set of bits
Definition: WPSFont.h:87
PAP()
constructor
Definition: MSWrite.cpp:132
uint8_t m_fUline
Definition: MSWrite.cpp:181
@ HEADER
Definition: MSWrite.h:43
uint32_t m_fcMac
Definition: MSWrite.h:186
RVNGInputStreamPtr & getInput()
Definition: WPSParser.h:47
void parse(librevenge::RVNGTextInterface *documentInterface) override
Definition: MSWrite.cpp:1764
@ DOC_HEADER_FOOTER
Definition: libwps_internal.h:248
void readStructures()
Definition: MSWrite.cpp:1689
BitmapInfoHeaderV3Offset
Definition: MSWrite.cpp:235
long begin() const
returns the begin offset
Definition: WPSEntry.h:73
std::vector< MSWriteParserInternal::Paragraph > m_paragraphList
Definition: MSWrite.h:188
uint16_t m_dxa
Definition: MSWrite.cpp:161
std::vector< MSWriteParserInternal::Footnote > m_footnotes
Definition: MSWrite.h:190
std::string const & type() const
returns the type of the entry
Definition: WPSEntry.h:131
double m_size
font size
Definition: WPSFont.h:85
double m_xaMac
Definition: MSWrite.h:111
@ OLE_W_MM
Definition: MSWrite.cpp:224
void add(librevenge::RVNGBinaryData const &binaryData, std::string const &type="image/pict")
add a picture
Definition: libwps_internal.h:1105
uint16_t m_dxaLeft
Definition: MSWrite.cpp:149
std::shared_ptr< WPSSubDocument > WPSSubDocumentPtr
shared pointer to WPSSubDocument
Definition: libwps_internal.h:111
small class use to define a embedded object
Definition: libwps_internal.h:1077
OleOffset
Definition: MSWrite.cpp:223
unsigned insertString(const unsigned char *str, unsigned size, libwps_tools_win::Font::Type type)
Definition: MSWrite.cpp:1134
@ BM_FILE_RESERVED
Definition: MSWrite.cpp:254
bool m_firstpage
Definition: MSWrite.h:59
void setMarginTop(const double marginTop)
Definition: WPSPageSpan.h:138
@ PIC_W_DYASIZE
Definition: MSWrite.cpp:210
std::shared_ptr< WPSHeader > WPSHeaderPtr
shared pointer to WPSHeader
Definition: libwps_internal.h:109
@ ParagraphContent
Definition: WPSPosition.h:43
@ HEADER_W_WIDENT
Definition: MSWrite.cpp:189
static void getPageStyle(MSWriteParserInternal::Section &sep, WPSPageSpan &pageSpan)
Definition: MSWrite.cpp:510
void readFOD(unsigned page, void(MSWriteParser::*parseFOD)(uint32_t fcFirst, uint32_t fcLim, unsigned size))
Definition: MSWrite.cpp:557
@ BM_INFO_V3_VERT_RES
Definition: MSWrite.cpp:244
bool isParsed() const
a flag to know if the entry was parsed or not
Definition: WPSEntry.h:115
@ OLE_W_DXASIZE
Definition: MSWrite.cpp:227
~Font() final
Definition: MSWrite.cpp:40
uint8_t readU8(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:40
@ MAIN
Definition: MSWrite.h:43
virtual void insertControl(uint8_t val, uint32_t fc)
Definition: MSWrite.cpp:1107
std::vector< MSWriteParserInternal::Section > m_sections
Definition: MSWrite.h:191
virtual libwps_tools_win::Font::Type getFileEncoding(libwps_tools_win::Font::Type hint)
Definition: MSWrite.cpp:320
~MSWriteParser() override
Definition: MSWrite.cpp:316
@ XRight
Definition: WPSPosition.h:47
void setMarginBottom(const double marginBottom)
Definition: WPSPageSpan.h:142
void setPageNumber(const int pageNumber)
Definition: WPSPageSpan.h:150
libwps_tools_win::Font::Type m_encoding
Definition: MSWrite.h:78
@ PIC_W_MM
Definition: MSWrite.cpp:205
int getPageSpan() const
Definition: WPSPageSpan.h:107
@ BM_INFO_V3_STRUCT_SIZE
Definition: MSWrite.cpp:247
virtual void readFNTB()
Definition: MSWrite.cpp:1684
MSWriteParser(const MSWriteParser &)=delete
uint8_t m_b
Definition: MSWrite.cpp:271
Definition: WPSPageSpan.h:39
void setHeaderFooter(const HeaderFooterType type, const HeaderFooterOccurrence occurrence, WPSSubDocumentPtr &subDocument)
Definition: WPSPageSpan.cpp:111
Location m_Location
Definition: MSWrite.h:58
void setEnd(long e)
sets the end offset
Definition: WPSEntry.h:67
Paragraph()
Definition: MSWrite.h:44
uint16_t readU16(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:64
@ HEADER_W_PNMAC
Definition: MSWrite.cpp:199
uint8_t m_justification
Definition: MSWrite.cpp:147
@ FOOTNOTE
Definition: MSWrite.h:43
struct MSWriteParserInternal::PAP::TBD m_TBD[14]
@ HEADER_W_PNSETB
Definition: MSWrite.cpp:196
@ HEADER_D_FCMAC
Definition: MSWrite.cpp:192
std::shared_ptr< WPSContentListener > createListener(librevenge::RVNGTextInterface *interface)
Definition: MSWrite.cpp:906
uint8_t m_hps
Definition: MSWrite.cpp:180
virtual void readSUMD()
Definition: MSWrite.cpp:1679
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition: libwps_internal.h:87
double getMarginRight() const
Definition: WPSPageSpan.h:75
void readFIB()
Definition: MSWrite.cpp:328
Basic class used to store a sub document.
Definition: WPSTextSubDocument.h:36
@ BM_INFO_V3_WIDTH
Definition: MSWrite.cpp:237
Class to define the position of an object (textbox, picture, ..) in the document.
Definition: WPSPosition.h:40
RVNGInputStreamPtr m_input
Definition: WPSSubDocument.h:65
bool m_headerUseMargin
Definition: MSWrite.h:59
@ BM_INFO_V2_WIDTH
Definition: MSWrite.cpp:262
void getHeaderFooters(uint32_t first, MSWriteParserInternal::Section &sep, WPSPageSpan &pageSpan)
Definition: MSWrite.cpp:767
void insertNote(bool annotation, uint32_t fcPos, librevenge::RVNGString &label)
Definition: MSWrite.cpp:1717
@ BM_INFO_V3_PLANES
Definition: MSWrite.cpp:239
double m_dxaText
Definition: MSWrite.h:115
HeaderFooterOccurrence
Definition: WPSPageSpan.h:44
@ PIC_W_BMWIDTH
Definition: MSWrite.cpp:211
#define WPS_LE_GET_GUINT32(p)
Definition: libwps_internal.h:226
uint8_t m_reserved1
Definition: MSWrite.cpp:146
@ JustificationFull
Definition: libwps_internal.h:249
@ JustificationLeft
Definition: libwps_internal.h:249
virtual void insertSpecial(uint8_t val, uint32_t fc, MSWriteParserInternal::Paragraph::Location location)
Definition: MSWrite.cpp:1101
@ BM_FILE_OFFSET
Definition: MSWrite.cpp:255
void setParsed(bool ok=true) const
sets the flag m_parsed to true or false
Definition: WPSEntry.h:120
MSWriteParser & operator=(const MSWriteParser &)=delete
uint16_t m_dxaRight
Definition: MSWrite.cpp:149
@ OLE_D_DWDATASIZE
Definition: MSWrite.cpp:229
Font(Font const &)=default
@ JustificationCenter
Definition: libwps_internal.h:249
@ BM_INFO_V3_BITS_PIXEL
Definition: MSWrite.cpp:240
void setMarginLeft(const double marginLeft)
Definition: WPSPageSpan.h:130
void setSize(Vec2f const &sz)
sets the frame size
Definition: WPSPosition.h:192
@ HEADER_W_PNBFTB
Definition: MSWrite.cpp:197
uint8_t m_jcTab
Definition: MSWrite.cpp:162
@ FOOTER
Definition: MSWrite.h:43
@ JustificationRight
Definition: libwps_internal.h:250
@ OLE_W_DYASIZE
Definition: MSWrite.cpp:228
@ OLE_W_MX
Definition: MSWrite.cpp:230
@ BM_INFO_V3_HEIGHT
Definition: MSWrite.cpp:238
@ BM_INFO_V2_STRUCT_SIZE
Definition: MSWrite.cpp:266
TBD()
Definition: MSWrite.cpp:155
void setFormLength(const double formLength)
Definition: WPSPageSpan.h:118
@ FIRST
Definition: WPSPageSpan.h:44
@ OLE_W_DXAOFFSET
Definition: MSWrite.cpp:226
libwps_tools_win::Font::Type m_fontType
Definition: MSWrite.h:193
std::vector< WPSTabStop > m_tabs
the tabulations
Definition: WPSParagraph.h:113
@ PIC_B_BMPLANES
Definition: MSWrite.cpp:214
librevenge::RVNGString m_name
font name
Definition: WPSFont.h:83
@ FOOTNOTE
Definition: WPSContentListener.h:99
void setOrigin(Vec2f const &orig)
sets the frame origin
Definition: WPSPosition.h:187
@ BM_INFO_V2_BITS_PIXEL
Definition: MSWrite.cpp:265
Definition: MSWrite.cpp:154
Location
Definition: MSWrite.h:43
virtual void readSED()
Definition: MSWrite.cpp:452
WPSEntry m_entry
the entry
Definition: MSWrite.cpp:72
uint8_t m_hpsPos
Definition: MSWrite.cpp:183
uint8_t m_rhcPage
Definition: MSWrite.cpp:151
Generated on Sun Sep 6 2020 13:16:59 for libwps by
doxygen 1.8.20