WKS4Parser Class Reference

This class parses Microsoft Works spreadsheet or a database file. More...

#include <WKS4.h>

Inheritance diagram for WKS4Parser:
WKSParser

Public Member Functions

 WKS4Parser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN, char const *password=0)
 constructor More...
 
 ~WKS4Parser ()
 destructor More...
 
void parse (librevenge::RVNGSpreadsheetInterface *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 WKSParser
 WKSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header)
 
virtual ~WKSParser ()
 

Protected Member Functions

bool checkFilePosition (long pos)
 return true if the pos is in the file, update the file size if need More...
 
int version () const
 return the file version More...
 
libwps_tools_win::Font::Type getDefaultFontType () const
 returns the default font type, ie. More...
 
bool hasLICSCharacters () const
 returns the true if the file has LICS characters More...
 
libwps::WPSCreator getCreator () const
 returns the creator More...
 
bool getColor (int id, WPSColor &color) const
 returns the color corresponding to an id More...
 
bool getFont (int id, WPSFont &font, libwps_tools_win::Font::Type &type) const
 returns the font corresponding to an id More...
 
shared_ptr< WKSContentListenercreateListener (librevenge::RVNGSpreadsheetInterface *interface)
 creates the main listener More...
 
void sendHeaderFooter (bool header)
 send the header/footer More...
 
bool parseFormatStream ()
 check for the existence of a format stream, if it exists, parse it More...
 
void resetMainInput (RVNGInputStreamPtr newInput)
 reset the main input More...
 
bool readZones ()
 finds the different zones (spreadsheet, chart, print, ...) More...
 
bool readZone ()
 reads a zone More...
 
bool readZoneQuattro ()
 reads a Quattro Pro zone More...
 
bool readFont ()
 reads a mswork font More...
 
bool readPrnt ()
 reads a printer data ? More...
 
bool readPrn2 ()
 reads another printer data. Seem simillar to ZZPrnt More...
 
bool readHeaderFooter (bool header)
 reads the header/footer More...
 
bool readFieldName ()
 read a list of field name + ... More...
 
bool readChartName ()
 reads the chart name or title More...
 
bool readChartDef ()
 reads a structure which seems to define a chart More...
 
bool readChartFont ()
 reads a structure which seems to define two chart font (only present in windows file) More...
 
bool readChart2Font ()
 reads a structure which seems to define four chart font (only present in windows file) More...
 
bool readChartLimit ()
 reads end/begin of chart (only present in windows file) More...
 
bool readChartList ()
 reads a list of int/cellule which seems relative to a chart : CHECKME More...
 
bool readChartUnknown ()
 reads an unknown structure which seems relative to a chart : CHECKME More...
 
bool readWindowRecord ()
 reads windows record 0:7|0:9 More...
 
bool readUnknown1 ()
 reads some unknown spreadsheet zones 0:18|0:19|0:20|0:27|0:2a More...
 
- Protected Member Functions inherited from WKSParser
RVNGInputStreamPtrgetInput ()
 
void resetInput (RVNGInputStreamPtr newInput)
 
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...
 

Static Protected Member Functions

static RVNGInputStreamPtr decodeStream (RVNGInputStreamPtr input, long endPos, std::vector< uint8_t > const &key)
 try to decode a stream, if successful, replace the stream'input by the new one More...
 

Protected Attributes

shared_ptr< WKSContentListenerm_listener
 
shared_ptr
< WKS4ParserInternal::State
m_state
 the listener (if set) More...
 
shared_ptr< WKS4Spreadsheetm_spreadsheetParser
 the spreadsheet manager More...
 

Friends

class WKS4ParserInternal::SubDocument
 
class WKS4Spreadsheet
 

Detailed Description

This class parses Microsoft Works spreadsheet or a database file.

Constructor & Destructor Documentation

WKS4Parser::WKS4Parser ( RVNGInputStreamPtr input,
WPSHeaderPtr header,
libwps_tools_win::Font::Type  encoding = libwps_tools_win::Font::UNKNOWN,
char const *  password = 0 
)

constructor

WKS4Parser::~WKS4Parser ( )

destructor

Member Function Documentation

bool WKS4Parser::checkFilePosition ( long  pos)
protected

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

Referenced by checkHeader(), readZone(), readZoneQuattro(), and readZones().

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

checks if the document header is correct (or not)

Referenced by parse().

shared_ptr< WKSContentListener > WKS4Parser::createListener ( librevenge::RVNGSpreadsheetInterface *  interface)
protected

creates the main listener

Referenced by parse().

RVNGInputStreamPtr WKS4Parser::decodeStream ( RVNGInputStreamPtr  input,
long  endPos,
std::vector< uint8_t > const &  key 
)
staticprotected

try to decode a stream, if successful, replace the stream'input by the new one

Referenced by readZone().

bool WKS4Parser::getColor ( int  id,
WPSColor color 
) const
protected

returns the color corresponding to an id

Referenced by WKS4Spreadsheet::readMsWorksDOSCellExtraProperty(), and WKS4Spreadsheet::readMsWorksStyle().

libwps::WPSCreator WKS4Parser::getCreator ( ) const
protected

returns the creator

libwps_tools_win::Font::Type WKS4Parser::getDefaultFontType ( ) const
protected
bool WKS4Parser::getFont ( int  id,
WPSFont font,
libwps_tools_win::Font::Type type 
) const
protected

returns the font corresponding to an id

Referenced by WKS4Spreadsheet::readMsWorksStyle().

bool WKS4Parser::hasLICSCharacters ( ) const
protected

returns the true if the file has LICS characters

Referenced by WKS4Spreadsheet::hasLICSCharacters(), and sendHeaderFooter().

void WKS4Parser::parse ( librevenge::RVNGSpreadsheetInterface *  documentInterface)
virtual

called by WPSDocument to parse the file

Implements WKSParser.

bool WKS4Parser::parseFormatStream ( )
protected

check for the existence of a format stream, if it exists, parse it

Referenced by parse().

bool WKS4Parser::readChart2Font ( )
protected

reads a structure which seems to define four chart font (only present in windows file)

Referenced by readZone().

bool WKS4Parser::readChartDef ( )
protected

reads a structure which seems to define a chart

Referenced by readZone().

bool WKS4Parser::readChartFont ( )
protected

reads a structure which seems to define two chart font (only present in windows file)

Referenced by readZone().

bool WKS4Parser::readChartLimit ( )
protected

reads end/begin of chart (only present in windows file)

Referenced by readZone().

bool WKS4Parser::readChartList ( )
protected

reads a list of int/cellule which seems relative to a chart : CHECKME

Referenced by readZone().

bool WKS4Parser::readChartName ( )
protected

reads the chart name or title

Referenced by readZone().

bool WKS4Parser::readChartUnknown ( )
protected

reads an unknown structure which seems relative to a chart : CHECKME

Referenced by readZone().

bool WKS4Parser::readFieldName ( )
protected

read a list of field name + ...

Referenced by readZone().

bool WKS4Parser::readFont ( )
protected

reads a mswork font

Referenced by readZone().

bool WKS4Parser::readHeaderFooter ( bool  header)
protected

reads the header/footer

Referenced by readZone().

bool WKS4Parser::readPrn2 ( )
protected

reads another printer data. Seem simillar to ZZPrnt

Referenced by readZone().

bool WKS4Parser::readPrnt ( )
protected

reads a printer data ?

Referenced by readZone().

bool WKS4Parser::readUnknown1 ( )
protected

reads some unknown spreadsheet zones 0:18|0:19|0:20|0:27|0:2a

Note
this zones seems to consist of a list of flags potentially followed by other data

Referenced by readZone().

bool WKS4Parser::readWindowRecord ( )
protected

reads windows record 0:7|0:9

Referenced by readZone().

bool WKS4Parser::readZone ( )
protected

reads a zone

Referenced by checkHeader(), and readZones().

bool WKS4Parser::readZoneQuattro ( )
protected

reads a Quattro Pro zone

Referenced by readZones().

bool WKS4Parser::readZones ( )
protected

finds the different zones (spreadsheet, chart, print, ...)

Referenced by parse().

void WKS4Parser::resetMainInput ( RVNGInputStreamPtr  newInput)
protected

reset the main input

Referenced by readZone().

void WKS4Parser::sendHeaderFooter ( bool  header)
protected

send the header/footer

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

int WKS4Parser::version ( ) const
protected

return the file version

Referenced by hasLICSCharacters(), readZones(), and WKS4Spreadsheet::version().

Friends And Related Function Documentation

friend class WKS4ParserInternal::SubDocument
friend
friend class WKS4Spreadsheet
friend

Referenced by WKS4Parser().

Member Data Documentation

shared_ptr<WKSContentListener> WKS4Parser::m_listener
protected

Referenced by parse(), and sendHeaderFooter().

shared_ptr<WKS4Spreadsheet> WKS4Parser::m_spreadsheetParser
protected

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

Generated on Sat Jul 29 2017 15:32:23 for libwps by doxygen 1.8.8