WPS4Parser Class Reference

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

`#include <WPS4.h>`

Inheritance diagram for WPS4Parser:

## Public Member Functions

| WPS4Parser (WPXInputStreamPtr &input, WPSHeaderPtr &header)
| constructor More...
| ~WPS4Parser ()
| destructor More...
void | parse (WPXDocumentInterface *documentInterface)
| called by WPSDocument to parse the file More...
Public Member Functions inherited from WPSParser
| WPSParser (WPXInputStreamPtr &input, WPSHeaderPtr &header)
virtual | ~WPSParser ()

## Protected Member Functions

bool | getColor (int id, uint32_t &color) const
| color More...
long | getSizeFile () const
| returns the file size (or the ole zone size) More...
void | setSizeFile (long sz)
| sets the file size ( filled by WPS4Text ) More...
bool | checkInFile (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< WPS4ContentListener > 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< WPS4ContentListener > | createListener (WPXDocumentInterface *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...
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, WPXString 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, WPXPropertyList &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 (WPXInputStreamPtr 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
WPXInputStreamPtr & | getInput ()
WPSHeaderPtr & | getHeader ()
int | version () const
void | setVersion (int vers)
NameMultiMap & | getNameEntryMap ()
NameMultiMap const & | getNameEntryMap () const
libwps::DebugFile & | ascii ()
| a DebugFile used to write what we recognize when we parse the document More...

## Protected Attributes

shared_ptr< WPS4ContentListener > | m_listener
shared_ptr< WPS4Graph > | m_graphParser
| the graph parser More...
shared_ptr< WPS4Text > | m_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 | ( | WPXInputStreamPtr & | input,
|  | WPSHeaderPtr & | header
| ) |  |

constructor

WPS4Parser::~WPS4Parser | ( |  | ) |

destructor

## Member Function Documentation

bool WPS4Parser::checkInFile | ( | long | pos | ) |

protected

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

Referenced by findZones(), and parseEntry().

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< WPS4ContentListener > WPS4Parser::createListener | ( | WPXDocumentInterface * | interface | ) |

protected

creates the main listener

Referenced by parse().

void WPS4Parser::createNote | ( | WPSEntry const & | entry,
|  | WPXString 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,
|  | WPXPropertyList & | 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

color

Referenced by readDocWindowsInfo(), WPS4Text::readFont(), and WPS4Text::readParagraph().

long WPS4Parser::getSizeFile | ( |  | ) | const

protected

returns the file size (or the ole zone size)

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 | ( | WPXDocumentInterface * | 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 | ( | WPXInputStreamPtr | 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< WPS4ContentListener > | 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

the graph parser

Referenced by createListener(), createOLEStructures(), createStructures(), newPage(), parse(), readObject(), sendObject(), setListener(), and WPS4Parser().

shared_ptr<WPS4ContentListener> WPS4Parser::m_listener

protected

Referenced by createDocument(), createNote(), createTextBox(), newPage(), parse(), send(), and setListener().

shared_ptr<WPS4ParserInternal::State> WPS4Parser::m_state

protected

the internal state

Referenced by checkInFile(), createListener(), findZones(), getColor(), getSizeFile(), newPage(), numColumns(), pageHeight(), pageWidth(), readDocDim(), setSizeFile(), and WPS4Parser().

shared_ptr<WPS4Text> WPS4Parser::m_textParser

protected

the text parser

Referenced by createListener(), createStructures(), findZones(), parse(), send(), setListener(), and WPS4Parser().

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

- WPS4.h
- WPS4.cpp