LotusParser Class Reference

This class parses a WK2..WK4 Lotus spreadsheet. More...

#include <Lotus.h>

Inheritance diagram for LotusParser:
WKSParser

Public Member Functions

 LotusParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN, char const *password=0)
 constructor More...
 
 ~LotusParser ()
 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

int version () const
 return the file version More...
 
bool getFont (int id, WPSFont &font, libwps_tools_win::Font::Type &type) const
 returns the font corresponding to an id More...
 
libwps_tools_win::Font::Type getDefaultFontType () const
 returns the default font type, ie. More...
 
bool hasGraphics (int sheetId) const
 return true if the sheet sheetId has some graphic More...
 
void sendGraphics (int sheetId)
 send the graphics corresponding to a sheetId More...
 
bool getLeftTopPosition (Vec2i const &cell, int spreadsheet, Vec2f &pos) const
 returns the left top position of a cell More...
 
bool updateEmbeddedObject (int id, WPSEmbeddedObject &object) const
 try to retrieve the content of a graphic, knowing it local id More...
 
bool createZones ()
 try to parse the different zones More...
 
bool createListener (librevenge::RVNGSpreadsheetInterface *interface)
 creates the main listener More...
 
bool parseFormatStream ()
 check for the existence of a format stream, if it exists, parse it More...
 
bool checkHeader (shared_ptr< WPSStream > stream, bool mainStream, bool strict)
 checks if the document header is correct (or not) More...
 
bool readZones (shared_ptr< WPSStream > stream)
 finds the different zones (spreadsheet, chart, print, ...) More...
 
bool readDataZone (shared_ptr< WPSStream > stream)
 parse the different zones 1B More...
 
bool readZone (shared_ptr< WPSStream > stream)
 reads a zone More...
 
bool readZone1 (shared_ptr< WPSStream > stream)
 reads a zone of type 1: 123 files More...
 
bool readSheetZone (shared_ptr< WPSStream > stream)
 reads a zone of type 2: 123 files More...
 
bool readZone4 (shared_ptr< WPSStream > stream)
 reads a zone of type 4: 123 files More...
 
bool readChartZone (shared_ptr< WPSStream > stream)
 reads a zone of type 5: 123 files More...
 
bool readRefZone (shared_ptr< WPSStream > stream)
 reads a zone of type 6: 123 files More...
 
bool readZone7 (shared_ptr< WPSStream > stream)
 reads a zone of type 7: 123 files More...
 
bool readZone8 (shared_ptr< WPSStream > stream)
 reads a zone of type 8: 123 files More...
 
bool readVersionZone (shared_ptr< WPSStream > stream)
 reads a zone of type a: 123 files More...
 
bool readZoneV3 (shared_ptr< WPSStream > stream)
 parse a wk123 zone More...
 
bool readMacFontName (shared_ptr< WPSStream > stream, long endPos)
 reads a mac font name More...
 
bool readFMTStyleName (shared_ptr< WPSStream > stream)
 reads a format style name: b6 More...
 
bool readLinkZone (shared_ptr< WPSStream > stream)
 reads a link More...
 
bool readDocumentInfoMac (shared_ptr< WPSStream > stream, long endPos)
 reads a mac document info zone: zone 1b, then 2af8 More...
 
bool readChartDefinition (shared_ptr< WPSStream > stream)
 reads a chart definitions More...
 
bool readChartName (shared_ptr< WPSStream > stream)
 reads the chart name or title 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...
 
static std::vector< uint8_t > retrievePasswordKeys (std::vector< uint8_t > const &fileKeys)
 try to guess a password knowing its file keys. Returns the keys if it founds a valid password More...
 

Protected Attributes

shared_ptr< WKSContentListenerm_listener
 
shared_ptr< LotusParserInternal::Statem_state
 the listener (if set) More...
 
shared_ptr< LotusStyleManagerm_styleManager
 the style manager More...
 
shared_ptr< LotusGraphm_graphParser
 the graph manager More...
 
shared_ptr< LotusSpreadsheetm_spreadsheetParser
 the spreadsheet manager More...
 
shared_ptr< WPSOLE1Parserm_ole1Parser
 the ole1 parser More...
 

Friends

class LotusParserInternal::SubDocument
 
class LotusGraph
 
class LotusSpreadsheet
 
class LotusStyleManager
 

Detailed Description

This class parses a WK2..WK4 Lotus spreadsheet.

Constructor & Destructor Documentation

◆ LotusParser()

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

constructor

◆ ~LotusParser()

LotusParser::~LotusParser ( )

destructor

Member Function Documentation

◆ checkHeader() [1/2]

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

checks if the document header is correct (or not)

Referenced by parse(), and parseFormatStream().

◆ checkHeader() [2/2]

bool LotusParser::checkHeader ( shared_ptr< WPSStream stream,
bool  mainStream,
bool  strict 
)
protected

checks if the document header is correct (or not)

◆ createListener()

bool LotusParser::createListener ( librevenge::RVNGSpreadsheetInterface *  interface)
protected

creates the main listener

Referenced by parse().

◆ createZones()

bool LotusParser::createZones ( )
protected

try to parse the different zones

Referenced by parse().

◆ decodeStream()

RVNGInputStreamPtr LotusParser::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().

◆ getDefaultFontType()

◆ getFont()

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

returns the font corresponding to an id

Referenced by LotusStyleManager::readCellStyleD2Data(), LotusGraph::sendTextBox(), and LotusStyleManager::updateState().

◆ getLeftTopPosition()

bool LotusParser::getLeftTopPosition ( Vec2i const &  cell,
int  spreadsheet,
Vec2f pos 
) const
protected

returns the left top position of a cell

Referenced by LotusGraph::sendGraphics().

◆ hasGraphics()

bool LotusParser::hasGraphics ( int  sheetId) const
protected

return true if the sheet sheetId has some graphic

◆ parse()

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

called by WPSDocument to parse the file

Implements WKSParser.

◆ parseFormatStream()

bool LotusParser::parseFormatStream ( )
protected

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

Referenced by createZones().

◆ readChartDefinition()

bool LotusParser::readChartDefinition ( shared_ptr< WPSStream stream)
protected

reads a chart definitions

Referenced by readZone().

◆ readChartName()

bool LotusParser::readChartName ( shared_ptr< WPSStream stream)
protected

reads the chart name or title

Referenced by readZone().

◆ readChartZone()

bool LotusParser::readChartZone ( shared_ptr< WPSStream stream)
protected

reads a zone of type 5: 123 files

Referenced by readZone().

◆ readDataZone()

bool LotusParser::readDataZone ( shared_ptr< WPSStream stream)
protected

parse the different zones 1B

Referenced by readZone().

◆ readDocumentInfoMac()

bool LotusParser::readDocumentInfoMac ( shared_ptr< WPSStream stream,
long  endPos 
)
protected

reads a mac document info zone: zone 1b, then 2af8

Referenced by readDataZone().

◆ readFMTStyleName()

bool LotusParser::readFMTStyleName ( shared_ptr< WPSStream stream)
protected

reads a format style name: b6

Referenced by readZone().

◆ readLinkZone()

bool LotusParser::readLinkZone ( shared_ptr< WPSStream stream)
protected

reads a link

Referenced by readZone().

◆ readMacFontName()

bool LotusParser::readMacFontName ( shared_ptr< WPSStream stream,
long  endPos 
)
protected

reads a mac font name

Referenced by readDataZone().

◆ readRefZone()

bool LotusParser::readRefZone ( shared_ptr< WPSStream stream)
protected

reads a zone of type 6: 123 files

Referenced by readZone().

◆ readSheetZone()

bool LotusParser::readSheetZone ( shared_ptr< WPSStream stream)
protected

reads a zone of type 2: 123 files

Referenced by readZone().

◆ readVersionZone()

bool LotusParser::readVersionZone ( shared_ptr< WPSStream stream)
protected

reads a zone of type a: 123 files

Referenced by readZone().

◆ readZone()

bool LotusParser::readZone ( shared_ptr< WPSStream stream)
protected

reads a zone

Referenced by checkHeader(), and readZones().

◆ readZone1()

bool LotusParser::readZone1 ( shared_ptr< WPSStream stream)
protected

reads a zone of type 1: 123 files

Referenced by readZone().

◆ readZone4()

bool LotusParser::readZone4 ( shared_ptr< WPSStream stream)
protected

reads a zone of type 4: 123 files

Referenced by readZone().

◆ readZone7()

bool LotusParser::readZone7 ( shared_ptr< WPSStream stream)
protected

reads a zone of type 7: 123 files

Referenced by readZone().

◆ readZone8()

bool LotusParser::readZone8 ( shared_ptr< WPSStream stream)
protected

reads a zone of type 8: 123 files

Referenced by readZone().

◆ readZones()

bool LotusParser::readZones ( shared_ptr< WPSStream stream)
protected

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

Referenced by createZones(), and parseFormatStream().

◆ readZoneV3()

bool LotusParser::readZoneV3 ( shared_ptr< WPSStream stream)
protected

parse a wk123 zone

Referenced by readZone().

◆ retrievePasswordKeys()

std::vector< uint8_t > LotusParser::retrievePasswordKeys ( std::vector< uint8_t > const &  fileKeys)
staticprotected

try to guess a password knowing its file keys. Returns the keys if it founds a valid password

Referenced by readZone().

◆ sendGraphics()

void LotusParser::sendGraphics ( int  sheetId)
protected

send the graphics corresponding to a sheetId

Referenced by LotusSpreadsheet::sendSpreadsheet().

◆ updateEmbeddedObject()

bool LotusParser::updateEmbeddedObject ( int  id,
WPSEmbeddedObject object 
) const
protected

try to retrieve the content of a graphic, knowing it local id

Referenced by LotusGraph::sendGraphics().

◆ version()

int LotusParser::version ( ) const
protected

Friends And Related Function Documentation

◆ LotusGraph

friend class LotusGraph
friend

Referenced by LotusParser().

◆ LotusParserInternal::SubDocument

friend class LotusParserInternal::SubDocument
friend

◆ LotusSpreadsheet

friend class LotusSpreadsheet
friend

Referenced by LotusParser().

◆ LotusStyleManager

friend class LotusStyleManager
friend

Referenced by LotusParser().

Member Data Documentation

◆ m_graphParser

shared_ptr<LotusGraph> LotusParser::m_graphParser
protected

◆ m_listener

shared_ptr<WKSContentListener> LotusParser::m_listener
protected

Referenced by createListener(), and parse().

◆ m_ole1Parser

shared_ptr<WPSOLE1Parser> LotusParser::m_ole1Parser
protected

the ole1 parser

Referenced by createZones(), and updateEmbeddedObject().

◆ m_spreadsheetParser

shared_ptr<LotusSpreadsheet> LotusParser::m_spreadsheetParser
protected

◆ m_state

◆ m_styleManager

shared_ptr<LotusStyleManager> LotusParser::m_styleManager
protected

the style manager

Referenced by createZones(), LotusParser(), parse(), readDataZone(), and readZone().


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

Generated on Tue Oct 31 2017 04:26:20 for libwps by doxygen 1.8.13