WPS4Parser Class Reference

This class parses Works version 2 through 4. More...

#include <WPS4.h>

Inheritance diagram for WPS4Parser:
WPSParser

Public Member Functions

 WPS4Parser (RVNGInputStreamPtr &input, WPSHeaderPtr &header)
 constructor More...
 
 ~WPS4Parser ()
 destructor More...
 
void parse (librevenge::RVNGTextInterface *documentInterface)
 called by WPSDocument to parse the file More...
 
bool checkHeader (WPSHeader *header, bool strict=false)
 checks if the document header is correct (or not) More...
 
- Public Member Functions inherited from WPSParser
 WPSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header)
 
virtual ~WPSParser ()
 

Protected Member Functions

bool getColor (int id, uint32_t &color) const
 color More...
 
void setSizeFile (long sz)
 sets the file size ( filled by WPS4Text ) More...
 
bool checkFilePosition (long pos)
 return true if the pos is in the file, update the file size if need More...
 
void newPage (int number)
 adds a new page More...
 
void setListener (shared_ptr< WPSContentListener > listener)
 set the listener More...
 
bool createStructures ()
 tries to parse the main zone, ... More...
 
bool createOLEStructures ()
 tries to parse the different OLE zones ( except the main zone ) More...
 
shared_ptr< WPSContentListenercreateListener (librevenge::RVNGTextInterface *interface)
 creates the main listener More...
 
float pageHeight () const
 returns the page height, ie. paper size less margin (in inches) More...
 
float pageWidth () const
 returns the page width, ie. paper size less margin (in inches) More...
 
int numColumns () const
 returns the number of columns More...
 
libwps_tools_win::Font::Type getDocumentFontType () const
 returns the document codepage ( if known ) More...
 
void createDocument (WPSEntry const &entry, libwps::SubDocumentType type)
 creates a document for a comment entry and then send the data More...
 
void createNote (WPSEntry const &entry, librevenge::RVNGString const &label)
 creates a document for a footnote entry with label and then send the data More...
 
void createTextBox (WPSEntry const &entry, WPSPosition const &pos, librevenge::RVNGPropertyList &extras)
 creates a textbox and then send the data More...
 
void send (WPSEntry const &entry, libwps::SubDocumentType type)
 sends text corresponding to the entry to the listener (via WPS4Text) More...
 
int readObject (RVNGInputStreamPtr input, WPSEntry const &entry)
 tries to read a picture ( via its WPS4Graph ) More...
 
void sendObject (Vec2f const &size, int id)
 sends an object with given id ( via its WPS4Graph ) More...
 
bool findZones ()
 finds the different zones (text, print, ...) and updates nameMultiMap More...
 
bool parseEntry (std::string const &name)
 parses an entry More...
 
bool readDocDim ()
 tries to read the document dimension More...
 
bool readPrnt (WPSEntry const &entry)
 tries to read the printer information More...
 
bool readDocWindowsInfo (WPSEntry const &entry)
 reads the additional windows info More...
 
- 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 More...
 
NameMultiMapgetNameEntryMap ()
 
NameMultiMap const & getNameEntryMap () const
 

Protected Attributes

shared_ptr< WPSContentListenerm_listener
 
shared_ptr< WPS4Graphm_graphParser
 the graph parser More...
 
shared_ptr< WPS4Textm_textParser
 the text parser More...
 
shared_ptr
< WPS4ParserInternal::State
m_state
 the internal state More...
 

Friends

class WPS4ParserInternal::SubDocument
 
class WPS4Graph
 
class WPS4Text
 

Additional Inherited Members

- Public Types inherited from WPSParser
typedef std::multimap
< std::string, WPSEntry
NameMultiMap
 a map to retrieve a file entry by name More...
 

Detailed Description

This class parses Works version 2 through 4.

Constructor & Destructor Documentation

WPS4Parser::WPS4Parser ( RVNGInputStreamPtr input,
WPSHeaderPtr header 
)

constructor

WPS4Parser::~WPS4Parser ( )

destructor

Member Function Documentation

bool WPS4Parser::checkFilePosition ( long  pos)
protected

return true if the pos is in the file, update the file size if need

Referenced by checkHeader(), findZones(), and parseEntry().

bool WPS4Parser::checkHeader ( WPSHeader header,
bool  strict = false 
)

checks if the document header is correct (or not)

Referenced by parse().

void WPS4Parser::createDocument ( WPSEntry const &  entry,
libwps::SubDocumentType  type 
)
protected

creates a document for a comment entry and then send the data

Note
actually all bookmarks (comments) are empty

Referenced by WPS4Text::readText().

shared_ptr< WPSContentListener > WPS4Parser::createListener ( librevenge::RVNGTextInterface *  interface)
protected

creates the main listener

Referenced by parse().

void WPS4Parser::createNote ( WPSEntry const &  entry,
librevenge::RVNGString const &  label 
)
protected

creates a document for a footnote entry with label and then send the data

Referenced by WPS4Text::readText().

bool WPS4Parser::createOLEStructures ( )
protected

tries to parse the different OLE zones ( except the main zone )

Referenced by parse().

bool WPS4Parser::createStructures ( )
protected

tries to parse the main zone, ...

Referenced by parse().

void WPS4Parser::createTextBox ( WPSEntry const &  entry,
WPSPosition const &  pos,
librevenge::RVNGPropertyList &  extras 
)
protected

creates a textbox and then send the data

Referenced by WPS4Text::readText().

bool WPS4Parser::findZones ( )
protected

finds the different zones (text, print, ...) and updates nameMultiMap

Referenced by createStructures().

bool WPS4Parser::getColor ( int  id,
uint32_t &  color 
) const
protected
libwps_tools_win::Font::Type WPS4Parser::getDocumentFontType ( ) const
protected

returns the document codepage ( if known )

void WPS4Parser::newPage ( int  number)
protected

adds a new page

Referenced by WPS4Text::readText().

int WPS4Parser::numColumns ( ) const
protected

returns the number of columns

Referenced by WPS4Text::readText().

float WPS4Parser::pageHeight ( ) const
protected

returns the page height, ie. paper size less margin (in inches)

float WPS4Parser::pageWidth ( ) const
protected

returns the page width, ie. paper size less margin (in inches)

void WPS4Parser::parse ( librevenge::RVNGTextInterface *  documentInterface)
virtual

called by WPSDocument to parse the file

Implements WPSParser.

bool WPS4Parser::parseEntry ( std::string const &  name)
protected

parses an entry

reads a zone offset and a zone size and checks if this entry is valid

Referenced by findZones(), and WPS4Text::readEntries().

bool WPS4Parser::readDocDim ( )
protected

tries to read the document dimension

Referenced by findZones().

bool WPS4Parser::readDocWindowsInfo ( WPSEntry const &  entry)
protected

reads the additional windows info

Note
this zone contains many unknown data

Referenced by createStructures().

int WPS4Parser::readObject ( RVNGInputStreamPtr  input,
WPSEntry const &  entry 
)
protected

tries to read a picture ( via its WPS4Graph )

Note
returns the object id or -1 if find nothing

Referenced by WPS4Text::objectDataParser().

bool WPS4Parser::readPrnt ( WPSEntry const &  entry)
protected

tries to read the printer information

Referenced by createStructures().

void WPS4Parser::send ( WPSEntry const &  entry,
libwps::SubDocumentType  type 
)
protected

sends text corresponding to the entry to the listener (via WPS4Text)

Referenced by WPS4ParserInternal::SubDocument::parse().

void WPS4Parser::sendObject ( Vec2f const &  size,
int  id 
)
protected

sends an object with given id ( via its WPS4Graph )

The object is sent as a character with given size size

Referenced by WPS4Text::readText().

void WPS4Parser::setListener ( shared_ptr< WPSContentListener listener)
protected

set the listener

Referenced by parse().

void WPS4Parser::setSizeFile ( long  sz)
protected

sets the file size ( filled by WPS4Text )

Referenced by WPS4Text::readEntries().

Friends And Related Function Documentation

friend class WPS4Graph
friend

Referenced by WPS4Parser().

friend class WPS4ParserInternal::SubDocument
friend
friend class WPS4Text
friend

Referenced by WPS4Parser().

Member Data Documentation

shared_ptr<WPS4Graph> WPS4Parser::m_graphParser
protected
shared_ptr<WPSContentListener> WPS4Parser::m_listener
protected
shared_ptr<WPS4Text> WPS4Parser::m_textParser
protected

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

Generated on Thu Oct 9 2014 14:30:04 for libwps by doxygen 1.8.8