27#include <librevenge-stream/librevenge-stream.h>
83 char const *password=
nullptr);
87 void parse(librevenge::RVNGSpreadsheetInterface *documentInterface) final;
157 bool createListener(librevenge::RVNGSpreadsheetInterface *interface);
167 bool checkHeader(std::shared_ptr<WPSStream> stream,
bool mainStream,
bool strict);
169 bool readZones(std::shared_ptr<WPSStream> stream);
173 bool readZone(std::shared_ptr<WPSStream> &stream);
175 bool readZone1(std::shared_ptr<WPSStream> stream);
179 static bool readZone4(std::shared_ptr<WPSStream> stream);
181 static bool readChartZone(std::shared_ptr<WPSStream> stream);
183 static bool readRefZone(std::shared_ptr<WPSStream> stream);
185 static bool readZone7(std::shared_ptr<WPSStream> stream);
187 bool readZone8(std::shared_ptr<WPSStream> stream);
191 static bool readZoneV3(std::shared_ptr<WPSStream> stream);
212 std::shared_ptr<LotusParserInternal::State>
m_state;
This class parses Microsoft Works chart file.
Definition LotusChart.h:54
This class parses Microsoft Works graph file.
Definition LotusGraph.h:56
friend class LotusChart
Definition Lotus.h:75
friend class LotusSpreadsheet
Definition Lotus.h:77
bool readZones(std::shared_ptr< WPSStream > stream)
finds the different zones (spreadsheet, chart, print, ...)
Definition Lotus.cpp:577
std::shared_ptr< LotusStyleManager > m_styleManager
the style manager
Definition Lotus.h:214
bool updateEmbeddedObject(int id, WPSEmbeddedObject &object) const
try to retrieve the content of a graphic, knowing it local id
Definition Lotus.cpp:328
bool readZone(std::shared_ptr< WPSStream > &stream)
reads a zone
Definition Lotus.cpp:649
bool readLinkZone(std::shared_ptr< WPSStream > stream)
reads a link
Definition Lotus.cpp:3115
std::shared_ptr< LotusGraph > m_graphParser
the graph manager
Definition Lotus.h:218
static bool readChartZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 5: 123 files
Definition Lotus.cpp:2456
~LotusParser() final
destructor
Definition Lotus.cpp:261
std::vector< Link > getLinksList(int lId) const
returns a list of links corresponding to an id
Definition Lotus.cpp:291
std::shared_ptr< LotusSpreadsheet > m_spreadsheetParser
the spreadsheet manager
Definition Lotus.h:220
bool getLeftTopPosition(Vec2i const &cell, int spreadsheet, Vec2f &pos) const
returns the left top position of a cell
Definition Lotus.cpp:313
bool readMacFontName(std::shared_ptr< WPSStream > stream, long endPos)
reads a mac font name
Definition Lotus.cpp:2948
bool readZone8(std::shared_ptr< WPSStream > stream)
reads a zone of type 8: 123 files
Definition Lotus.cpp:2768
void sendGraphics(int sheetId)
send the graphics corresponding to a sheetId
Definition Lotus.cpp:308
std::shared_ptr< WPSOLE1Parser > m_ole1Parser
the ole1 parser
Definition Lotus.h:222
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
Definition Lotus.cpp:3304
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
Definition Lotus.cpp:3366
bool checkHeader(WPSHeader *header, bool strict=false)
checks if the document header is correct (or not)
Definition Lotus.cpp:427
bool readSheetZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 2: 123 files
Definition Lotus.cpp:1973
bool parseFormatStream()
check for the existence of a format stream, if it exists, parse it
Definition Lotus.cpp:553
static bool readZoneV3(std::shared_ptr< WPSStream > stream)
parse a wk123 zone
Definition Lotus.cpp:1765
static bool readVersionZone(std::shared_ptr< WPSStream > stream)
reads a zone of type a: 123 files
Definition Lotus.cpp:2910
bool readZone1(std::shared_ptr< WPSStream > stream)
reads a zone of type 1: 123 files
Definition Lotus.cpp:1789
bool createZones()
try to parse the different zones
Definition Lotus.cpp:514
bool sendChart(int cId, WPSPosition const &pos, WPSGraphicStyle const &style)
try to send a chart
Definition Lotus.cpp:323
LotusParser(RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN, char const *password=nullptr)
constructor
Definition Lotus.cpp:243
std::shared_ptr< LotusParserInternal::State > m_state
the listener (if set)
Definition Lotus.h:212
librevenge::RVNGString getSheetName(int id) const
returns the name of the id's spreadsheet
Definition Lotus.cpp:318
friend class LotusParserInternal::SubDocument
Definition Lotus.h:74
static bool readZone7(std::shared_ptr< WPSStream > stream)
reads a zone of type 7: 123 files
Definition Lotus.cpp:2642
bool getFont(int id, WPSFont &font, libwps_tools_win::Font::Type &type) const
returns the font corresponding to an id
Definition Lotus.cpp:278
std::shared_ptr< LotusChart > m_chartParser
the chart manager
Definition Lotus.h:216
static bool readRefZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 6: 123 files
Definition Lotus.cpp:2556
bool readDocumentInfoMac(std::shared_ptr< WPSStream > stream, long endPos)
reads a mac document info zone: zone 1b, then 2af8
Definition Lotus.cpp:3232
libwps_tools_win::Font::Type getDefaultFontType() const
returns the default font type, ie.
Definition Lotus.cpp:273
friend class LotusGraph
Definition Lotus.h:76
static bool readZone4(std::shared_ptr< WPSStream > stream)
reads a zone of type 4: 123 files
Definition Lotus.cpp:2272
int version() const
return the file version
Definition Lotus.cpp:265
void parse(librevenge::RVNGSpreadsheetInterface *documentInterface) final
called by WPSDocument to parse the file
Definition Lotus.cpp:343
static bool readFMTStyleName(std::shared_ptr< WPSStream > stream)
reads a format style name: b6
Definition Lotus.cpp:3068
bool readDataZone(std::shared_ptr< WPSStream > stream)
parse the different zones 1B
Definition Lotus.cpp:1332
std::shared_ptr< WKSContentListener > m_listener
Definition Lotus.h:210
bool createListener(librevenge::RVNGSpreadsheetInterface *interface)
creates the main listener
Definition Lotus.cpp:408
bool hasGraphics(int sheetId) const
return true if the sheet sheetId has some graphic
Definition Lotus.cpp:303
friend class LotusStyleManager
Definition Lotus.h:78
This class parses Microsoft Works spreadsheet file.
Definition LotusSpreadsheet.h:53
This class parses the Lotus style.
Definition LotusStyleManager.h:51
WKSParser(RVNGInputStreamPtr &input, WPSHeaderPtr &header)
Definition WKSParser.cpp:30
define the font properties
Definition WPSFont.h:37
a structure used to define a picture style
Definition WPSGraphicStyle.h:38
a class used to parse a container which is used by Lotus123 (and also by RagTime).
Definition WPSOLE1Parser.h:50
Class to define the position of an object (textbox, picture, ..) in the document.
Definition WPSPosition.h:40
std::shared_ptr< WPSHeader > WPSHeaderPtr
shared pointer to WPSHeader
Definition libwps_internal.h:109
Vec2< int > Vec2i
Vec2 of int.
Definition libwps_internal.h:702
Vec2< float > Vec2f
Vec2 of float.
Definition libwps_internal.h:704
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition libwps_internal.h:87
WPSVec3< int > WPSVec3i
WPSVec3 of int.
Definition libwps_internal.h:1067
Internal: namespace to define internal class of LotusParser.
Definition Lotus.cpp:61
the state of LotusParser
Definition Lotus.cpp:81
std::string m_name
the basic name(used to retrieve a data)
Definition Lotus.h:99
Link()
constructor
Definition Lotus.h:95
WPSVec3i m_cells[2]
the cell positions
Definition Lotus.h:101
librevenge::RVNGString m_linkName
the link name
Definition Lotus.h:103
small class use to define a embedded object
Definition libwps_internal.h:1077