MSWriteParser Class Reference

This class parses Microsoft Write 3.0 and 3.1. More...

#include <MSWrite.h>

Inheritance diagram for MSWriteParser:
WPSParser DosWordParser

Public Member Functions

 MSWriteParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::WIN3_WEUROPE)
 ~MSWriteParser () override
void parse (librevenge::RVNGTextInterface *documentInterface) override
Public Member Functions inherited from WPSParser
 WPSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header)
virtual ~WPSParser ()

Protected Member Functions

void readStructures ()
virtual libwps_tools_win::Font::Type getFileEncoding (libwps_tools_win::Font::Type hint)
void readFIB ()
virtual void readFFNTB ()
void readFOD (unsigned page, void(MSWriteParser::*parseFOD)(uint32_t fcFirst, uint32_t fcLim, unsigned size))
virtual void readPAP (uint32_t fcFirst, uint32_t fcLim, unsigned cch)
virtual void readCHP (uint32_t fcFirst, uint32_t fcLim, unsigned cch)
virtual void readSUMD ()
virtual void readFNTB ()
virtual void readSED ()
void readText (WPSEntry const &e, MSWriteParserInternal::Paragraph::Location location)
int numPages ()
void processObject (WPSPosition &pos, unsigned long lastPos)
bool processDDB (librevenge::RVNGBinaryData &bmpdata, WPSPosition &pos, unsigned width, unsigned height, unsigned byte_width, unsigned planes, unsigned bits_pixel, unsigned size)
bool processDIB (librevenge::RVNGBinaryData &bmpdata, unsigned size)
bool processWMF (librevenge::RVNGBinaryData &wmfdata, unsigned size)
void processEmbeddedOLE (WPSPosition &pos, unsigned long lastPos)
bool processStaticOLE (librevenge::RVNGBinaryData &, std::string &mimetype, WPSPosition &pos, unsigned long lastPos)
bool readString (std::string &res, unsigned long lastPos)
virtual void insertSpecial (uint8_t val, uint32_t fc, MSWriteParserInternal::Paragraph::Location location)
virtual void insertControl (uint8_t val, uint32_t fc)
void insertNote (bool annotation, uint32_t fcPos, librevenge::RVNGString const &label)
unsigned insertString (const unsigned char *str, unsigned size, libwps_tools_win::Font::Type type)
void getHeaderFooters (uint32_t first, MSWriteParserInternal::Section &sep, WPSPageSpan &pageSpan)
void startSection (MSWriteParserInternal::Section const &section)
bool checkFilePosition (uint32_t pos) const
 check if the file position is correct or not
Protected Member Functions inherited from WPSParser
RVNGInputStreamPtrgetInput ()
RVNGInputStreamPtr getFileInput ()
WPSHeaderPtrgetHeader ()
int version () const
void setVersion (int vers)
libwps::DebugFileascii ()
 a DebugFile used to write what we recognize when we parse the document
NameMultiMapgetNameEntryMap ()
NameMultiMap const & getNameEntryMap () const

Static Protected Member Functions

static void getPageStyle (MSWriteParserInternal::Section &sep, WPSPageSpan &pageSpan)

Protected Attributes

uint32_t m_fileLength
 the last file position
uint32_t m_fcMac
std::vector< MSWriteParserInternal::Paragraphm_paragraphList
std::vector< MSWriteParserInternal::Fontm_fontList
std::vector< MSWriteParserInternal::Footnotem_footnotes
std::vector< MSWriteParserInternal::Sectionm_sections
std::vector< librevenge::RVNGString > m_fonts
libwps_tools_win::Font::Type m_fontType
std::shared_ptr< WPSContentListenerm_listener
librevenge::RVNGPropertyList m_metaData

Private Member Functions

 MSWriteParser (const MSWriteParser &)=delete
MSWriteParseroperator= (const MSWriteParser &)=delete
std::shared_ptr< WPSContentListenercreateListener (librevenge::RVNGTextInterface *interface)

Friends

class MSWriteParserInternal::SubDocument
struct MSWriteParserInternal::Paragraph
struct MSWriteParserInternal::Font

Additional Inherited Members

Public Types inherited from WPSParser
typedef std::multimap< std::string, WPSEntryNameMultiMap
 a map to retrieve a file entry by name

Detailed Description

This class parses Microsoft Write 3.0 and 3.1.

Constructor & Destructor Documentation

◆ MSWriteParser() [1/2]

◆ ~MSWriteParser()

MSWriteParser::~MSWriteParser ( )
override

◆ MSWriteParser() [2/2]

MSWriteParser::MSWriteParser ( const MSWriteParser & )
privatedelete

Member Function Documentation

◆ checkFilePosition()

bool MSWriteParser::checkFilePosition ( uint32_t pos) const
inlineprotected

◆ createListener()

std::shared_ptr< WPSContentListener > MSWriteParser::createListener ( librevenge::RVNGTextInterface * interface)
private

Referenced by operator=(), and parse().

◆ getFileEncoding()

libwps_tools_win::Font::Type MSWriteParser::getFileEncoding ( libwps_tools_win::Font::Type hint)
protectedvirtual

Reimplemented in DosWordParser.

Referenced by MSWriteParser(), and operator=().

◆ getHeaderFooters()

void MSWriteParser::getHeaderFooters ( uint32_t first,
MSWriteParserInternal::Section & sep,
WPSPageSpan & pageSpan )
protected

Referenced by createListener(), and numPages().

◆ getPageStyle()

void MSWriteParser::getPageStyle ( MSWriteParserInternal::Section & sep,
WPSPageSpan & pageSpan )
staticprotected

Referenced by createListener(), and numPages().

◆ insertControl()

void MSWriteParser::insertControl ( uint8_t val,
uint32_t fc )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by numPages(), and readText().

◆ insertNote()

void MSWriteParser::insertNote ( bool annotation,
uint32_t fcPos,
librevenge::RVNGString const & label )
protected

◆ insertSpecial()

void MSWriteParser::insertSpecial ( uint8_t val,
uint32_t fc,
MSWriteParserInternal::Paragraph::Location location )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by numPages(), and readText().

◆ insertString()

unsigned MSWriteParser::insertString ( const unsigned char * str,
unsigned size,
libwps_tools_win::Font::Type type )
protected

Referenced by numPages(), and readText().

◆ numPages()

int MSWriteParser::numPages ( )
protected

◆ operator=()

MSWriteParser & MSWriteParser::operator= ( const MSWriteParser & )
privatedelete

◆ parse()

void MSWriteParser::parse ( librevenge::RVNGTextInterface * documentInterface)
overridevirtual

Implements WPSParser.

Referenced by MSWriteParserInternal::Font.

◆ processDDB()

bool MSWriteParser::processDDB ( librevenge::RVNGBinaryData & bmpdata,
WPSPosition & pos,
unsigned width,
unsigned height,
unsigned byte_width,
unsigned planes,
unsigned bits_pixel,
unsigned size )
protected

◆ processDIB()

bool MSWriteParser::processDIB ( librevenge::RVNGBinaryData & bmpdata,
unsigned size )
protected

Referenced by numPages(), and processStaticOLE().

◆ processEmbeddedOLE()

void MSWriteParser::processEmbeddedOLE ( WPSPosition & pos,
unsigned long lastPos )
protected

Referenced by numPages(), and processObject().

◆ processObject()

void MSWriteParser::processObject ( WPSPosition & pos,
unsigned long lastPos )
protected

Referenced by numPages(), and readText().

◆ processStaticOLE()

bool MSWriteParser::processStaticOLE ( librevenge::RVNGBinaryData & b,
std::string & mimetype,
WPSPosition & pos,
unsigned long lastPos )
protected

◆ processWMF()

bool MSWriteParser::processWMF ( librevenge::RVNGBinaryData & wmfdata,
unsigned size )
protected

◆ readCHP()

void MSWriteParser::readCHP ( uint32_t fcFirst,
uint32_t fcLim,
unsigned cch )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readFFNTB()

void MSWriteParser::readFFNTB ( )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readFIB()

void MSWriteParser::readFIB ( )
protected

Referenced by operator=(), and readStructures().

◆ readFNTB()

void MSWriteParser::readFNTB ( )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readFOD()

void MSWriteParser::readFOD ( unsigned page,
void(MSWriteParser::* parseFOD )(uint32_t fcFirst, uint32_t fcLim, unsigned size) )
protected

Referenced by operator=(), and readStructures().

◆ readPAP()

void MSWriteParser::readPAP ( uint32_t fcFirst,
uint32_t fcLim,
unsigned cch )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readSED()

void MSWriteParser::readSED ( )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readString()

bool MSWriteParser::readString ( std::string & res,
unsigned long lastPos )
protected

◆ readStructures()

void MSWriteParser::readStructures ( )
protected

Referenced by operator=(), and parse().

◆ readSUMD()

void MSWriteParser::readSUMD ( )
protectedvirtual

Reimplemented in DosWordParser.

Referenced by operator=(), and readStructures().

◆ readText()

void MSWriteParser::readText ( WPSEntry const & e,
MSWriteParserInternal::Paragraph::Location location )
protected

Referenced by operator=(), and parse().

◆ startSection()

void MSWriteParser::startSection ( MSWriteParserInternal::Section const & section)
protected

Referenced by numPages(), and parse().

◆ MSWriteParserInternal::Font

friend struct MSWriteParserInternal::Font
friend

◆ MSWriteParserInternal::Paragraph

friend struct MSWriteParserInternal::Paragraph
friend

◆ MSWriteParserInternal::SubDocument

Member Data Documentation

◆ m_fcMac

◆ m_fileLength

uint32_t MSWriteParser::m_fileLength
protected

the last file position

Referenced by checkFilePosition(), MSWriteParser(), and DosWordParser::readSED().

◆ m_fontList

std::vector<MSWriteParserInternal::Font> MSWriteParser::m_fontList
protected

◆ m_fonts

std::vector<librevenge::RVNGString> MSWriteParser::m_fonts
protected

Referenced by MSWriteParser(), readCHP(), and readFFNTB().

◆ m_fontType

◆ m_footnotes

std::vector<MSWriteParserInternal::Footnote> MSWriteParser::m_footnotes
protected

◆ m_listener

◆ m_metaData

librevenge::RVNGPropertyList MSWriteParser::m_metaData
protected

◆ m_paragraphList

std::vector<MSWriteParserInternal::Paragraph> MSWriteParser::m_paragraphList
protected

◆ m_sections


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

Generated on Sat Jul 19 2025 05:24:40 for libwps by doxygen 1.14.0