Lotus.h
Go to the documentation of this file.
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
2 /* libwps
3  * Version: MPL 2.0 / LGPLv2.1+
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * Major Contributor(s):
10  * Copyright (C) 2006, 2007 Andrew Ziem
11  * Copyright (C) 2003-2005 William Lachance (william.lachance@sympatico.ca)
12  * Copyright (C) 2003 Marc Maurer (uwog@uwog.net)
13  *
14  * For minor contributions see the git repository.
15  *
16  * Alternatively, the contents of this file may be used under the terms
17  * of the GNU Lesser General Public License Version 2.1 or later
18  * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
19  * applicable instead of those above.
20  */
21 
22 #ifndef LOTUS_H
23 #define LOTUS_H
24 
25 #include <vector>
26 
27 #include <librevenge-stream/librevenge-stream.h>
28 #include "libwps_internal.h"
29 #include "libwps_tools_win.h"
30 #include "WPSDebug.h"
31 
32 #include "WKSParser.h"
33 
34 namespace LotusParserInternal
35 {
36 class SubDocument;
37 struct State;
38 }
39 
40 class LotusGraph;
41 class LotusChart;
42 class LotusSpreadsheet;
43 class LotusStyleManager;
44 class WPSGraphicStyle;
45 class WPSOLE1Parser;
46 
47 /* .wk3: a spreadsheet is composed in two files
48  + a wk3 file which contains the spreadsheet data
49  + a fm3 file which contains the different formatings
50 
51  .wk4: the file contains three parts:
52  + the wk3 previous file
53  + the fm3 file
54  + an unknown part, which may code the file structure,
55 
56  Normally the wk3 and the fm3 are a sequence of small zones,
57  but picture seems to be appeared at random position inside the
58  fm3 part (and even inside some structure fm3 structures...)
59 
60  search for .ole and OLE1
61 
62  .123: the file contains at least two parts:
63  + the 123 storing the spreadsheet's data and format
64  + the last part containing the file's structure
65  + some optional part containing chart, picture, ...
66  */
67 
72 class LotusParser final : public WKSParser
73 {
75  friend class LotusChart;
76  friend class LotusGraph;
77  friend class LotusSpreadsheet;
78  friend class LotusStyleManager;
79 public:
83  char const *password=nullptr);
85  ~LotusParser() final;
87  void parse(librevenge::RVNGSpreadsheetInterface *documentInterface) final;
89  bool checkHeader(WPSHeader *header, bool strict=false);
90 
92  struct Link
93  {
95  Link() : m_name(), m_linkName()
96  {
97  }
99  std::string m_name;
101  WPSVec3i m_cells[2];
103  librevenge::RVNGString m_linkName;
104  };
105 protected:
107  int version() const;
108 
109  //
110  // interface
111  //
112 
114  bool getFont(int id, WPSFont &font, libwps_tools_win::Font::Type &type) const;
120  std::vector<Link> getLinksList(int lId) const;
121 
122  //
123  // interface with LotusChart
124  //
125 
127  bool sendChart(int cId, WPSPosition const &pos, WPSGraphicStyle const &style);
128 
129  //
130  // interface with LotusGraph
131  //
132 
134  bool hasGraphics(int sheetId) const;
136  void sendGraphics(int sheetId);
137 
138  //
139  // interface with LotusSpreadsheet
140  //
141 
143  bool getLeftTopPosition(Vec2i const &cell, int spreadsheet, Vec2f &pos) const;
145  librevenge::RVNGString getSheetName(int id) const;
146 
147  //
148  // interface with WPSOLE1Parser
149  //
150 
152  bool updateEmbeddedObject(int id, WPSEmbeddedObject &object) const;
153 
155  bool createZones();
157  bool createListener(librevenge::RVNGSpreadsheetInterface *interface);
158 
159  //
160  // low level
161  //
162 
164  bool parseFormatStream();
165 
167  bool checkHeader(std::shared_ptr<WPSStream> stream, bool mainStream, bool strict);
169  bool readZones(std::shared_ptr<WPSStream> stream);
171  bool readDataZone(std::shared_ptr<WPSStream> stream);
173  bool readZone(std::shared_ptr<WPSStream> &stream);
175  bool readZone1(std::shared_ptr<WPSStream> stream);
177  bool readSheetZone(std::shared_ptr<WPSStream> stream);
179  bool readZone4(std::shared_ptr<WPSStream> stream);
181  bool readChartZone(std::shared_ptr<WPSStream> stream);
183  bool readRefZone(std::shared_ptr<WPSStream> stream);
185  bool readZone7(std::shared_ptr<WPSStream> stream);
187  bool readZone8(std::shared_ptr<WPSStream> stream);
189  bool readVersionZone(std::shared_ptr<WPSStream> stream);
191  bool readZoneV3(std::shared_ptr<WPSStream> stream);
193 
195  bool readMacFontName(std::shared_ptr<WPSStream> stream, long endPos);
197  bool readFMTStyleName(std::shared_ptr<WPSStream> stream);
199  bool readLinkZone(std::shared_ptr<WPSStream> stream);
201  bool readDocumentInfoMac(std::shared_ptr<WPSStream> stream, long endPos);
202 
204 
206  static RVNGInputStreamPtr decodeStream(RVNGInputStreamPtr input, long endPos, std::vector<uint8_t> const &key);
208  static std::vector<uint8_t> retrievePasswordKeys(std::vector<uint8_t> const &fileKeys);
209 
210  std::shared_ptr<WKSContentListener> m_listener;
211  std::shared_ptr<LotusParserInternal::State> m_state;
214  std::shared_ptr<LotusStyleManager> m_styleManager;
216  std::shared_ptr<LotusChart> m_chartParser;
218  std::shared_ptr<LotusGraph> m_graphParser;
220  std::shared_ptr<LotusSpreadsheet> m_spreadsheetParser;
222  std::shared_ptr<WPSOLE1Parser> m_ole1Parser;
223 };
224 
225 #endif /* LOTUS_H */
226 /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
LotusParserInternal::State::m_maxSheet
int m_maxSheet
the last sheet number
Definition: Lotus.cpp:208
LotusParserInternal::State::m_zone1Stack
std::vector< unsigned long > m_zone1Stack
a unknown Zone1 stack of increasing(?) numbers
Definition: Lotus.cpp:222
LotusChart.h
LotusParser::hasGraphics
bool hasGraphics(int sheetId) const
return true if the sheet sheetId has some graphic
Definition: Lotus.cpp:303
LotusParser::LotusStyleManager
friend class LotusStyleManager
Definition: Lotus.h:78
LotusParserInternal::State::m_isMacFile
bool m_isMacFile
flag to know if this is a mac file
Definition: Lotus.cpp:200
libwps::DebugStream::str
static std::string str()
Definition: WPSDebug.h:200
libwps::DebugFile::open
static bool open(std::string const &)
Definition: WPSDebug.h:215
LotusParserInternal::State::m_pageSpan
WPSPageSpan m_pageSpan
the actual document size
Definition: Lotus.cpp:206
libwps::DebugFile::addPos
static void addPos(long)
Definition: WPSDebug.h:220
LotusChart
This class parses Microsoft Works chart file.
Definition: LotusChart.h:54
LotusParser::readLinkZone
bool readLinkZone(std::shared_ptr< WPSStream > stream)
reads a link
Definition: Lotus.cpp:3115
libwps::encodeLotusPassword
bool encodeLotusPassword(char const *password, uint16_t &key, std::vector< uint8_t > &keys, uint8_t const(&defValues)[16])
returns the checksum and the keys (to encode a lotus file) given a password file
Definition: libwps_internal.cpp:977
LotusParser::getSheetName
librevenge::RVNGString getSheetName(int id) const
returns the name of the id's spreadsheet
Definition: Lotus.cpp:318
LotusParser::m_chartParser
std::shared_ptr< LotusChart > m_chartParser
the chart manager
Definition: Lotus.h:216
WPSCell.h
LotusParserInternal::State::m_isEncrypted
bool m_isEncrypted
true if the file is encrypted
Definition: Lotus.cpp:232
libwps_tools_win::Font::Type
Type
enum Type
Definition: libwps_tools_win.h:46
WPSHeader::setKind
void setKind(libwps::WPSKind kind)
Definition: WPSHeader.h:64
LotusParserInternal::State::getDataZoneIdToSheetIdMap
std::map< int, int > getDataZoneIdToSheetIdMap() const
returns a map dataZoneId to sheet final id
Definition: Lotus.cpp:142
WPSTable.h
LotusParser::readZone
bool readZone(std::shared_ptr< WPSStream > &stream)
reads a zone
Definition: Lotus.cpp:649
LotusParser::readMacFontName
bool readMacFontName(std::shared_ptr< WPSStream > stream, long endPos)
reads a mac font name
Definition: Lotus.cpp:2948
LotusParser::createZones
bool createZones()
try to parse the different zones
Definition: Lotus.cpp:514
LotusParser::updateEmbeddedObject
bool updateEmbeddedObject(int id, WPSEmbeddedObject &object) const
try to retrieve the content of a graphic, knowing it local id
Definition: Lotus.cpp:328
libwps
Definition: libwps_internal.cpp:39
WPSStream
small structure use to store a stream and it debug file
Definition: WPSStream.h:30
libwps_tools_win::Font::MAC_ROMAN
@ MAC_ROMAN
Definition: libwps_tools_win.h:59
LotusParser::readSheetZone
bool readSheetZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 2: 123 files
Definition: Lotus.cpp:1973
LotusParser::parseFormatStream
bool parseFormatStream()
check for the existence of a format stream, if it exists, parse it
Definition: Lotus.cpp:553
LotusParserInternal::State::getLevels
void getLevels(WPSVec3i &minC, WPSVec3i &maxC) const
returns the min and max cell
Definition: Lotus.cpp:127
LotusParser::readZone1
bool readZone1(std::shared_ptr< WPSStream > stream)
reads a zone of type 1: 123 files
Definition: Lotus.cpp:1789
LotusParser::LotusSpreadsheet
friend class LotusSpreadsheet
Definition: Lotus.h:77
LotusParserInternal::State::m_actualZoneId
int m_actualZoneId
the actual zone id
Definition: Lotus.cpp:210
LotusParser::readDocumentInfoMac
bool readDocumentInfoMac(std::shared_ptr< WPSStream > stream, long endPos)
reads a mac document info zone: zone 1b, then 2af8
Definition: Lotus.cpp:3232
libwps::DebugFile::reset
static void reset()
Definition: WPSDebug.h:224
LotusParser::parse
void parse(librevenge::RVNGSpreadsheetInterface *documentInterface) final
called by WPSDocument to parse the file
Definition: Lotus.cpp:343
WPSColumnFormat
Definition: WPSTable.h:40
LotusStyleManager
This class parses the Lotus style.
Definition: LotusStyleManager.h:48
libwps_tools_win::Font::unicodeString
static librevenge::RVNGString unicodeString(const unsigned char *p, unsigned long size, Type type, bool skipUnknown=true)
converts a list of character in unicode
Definition: libwps_tools_win.cpp:7283
libwps_tools_win::Font::MAC_SYMBOL
@ MAC_SYMBOL
Definition: libwps_tools_win.h:62
LotusParser::getDefaultFontType
libwps_tools_win::Font::Type getDefaultFontType() const
returns the default font type, ie.
Definition: Lotus.cpp:273
WPSHeader.h
LotusParser::retrievePasswordKeys
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
LotusParserInternal::State::m_dataZoneIdToSheetZoneIdMap
std::map< int, int > m_dataZoneIdToSheetZoneIdMap
a map to retrieve the sheet zone id from the data sheet zone id
Definition: Lotus.cpp:216
LotusParserInternal::Font
the font of a LotusParser
Definition: Lotus.cpp:64
WPSFont
define the font properties
Definition: WPSFont.h:37
LotusParser::m_spreadsheetParser
std::shared_ptr< LotusSpreadsheet > m_spreadsheetParser
the spreadsheet manager
Definition: Lotus.h:220
LotusParser::readZone7
bool readZone7(std::shared_ptr< WPSStream > stream)
reads a zone of type 7: 123 files
Definition: Lotus.cpp:2642
LotusParserInternal::State::m_actualLevels
std::vector< Vec2i > m_actualLevels
the actual zone: (0,0), table list, col list, row list
Definition: Lotus.cpp:220
LotusParserInternal::State::getDefaultFont
WPSFont getDefaultFont() const
returns a default font (Courier12) with file's version to define the default encoding *‍/
Definition: Lotus.cpp:116
WPSHeader::setMajorVersion
void setMajorVersion(int version)
Definition: WPSHeader.h:94
Vec2i
Vec2< int > Vec2i
Vec2 of int.
Definition: libwps_internal.h:702
WPSHeader::setCreator
void setCreator(libwps::WPSCreator creator)
Definition: WPSHeader.h:54
LotusParserInternal::Font::Font
Font(libwps_tools_win::Font::Type type)
constructor
Definition: Lotus.cpp:66
LotusParser::LotusGraph
friend class LotusGraph
Definition: Lotus.h:76
WPSPageSpan.h
LotusParser::checkHeader
bool checkHeader(WPSHeader *header, bool strict=false)
checks if the document header is correct (or not)
Definition: Lotus.cpp:427
WPSStringStream
internal class used to create a RVNGInputStream from a unsigned char's pointer
Definition: WPSStringStream.h:42
LotusParserInternal::State::State
State(State const &)=delete
LotusParserInternal::State::getZone1StackDebugName
std::string getZone1StackDebugName() const
returns a name corresponding to the zone1 stack(for debugging)
Definition: Lotus.cpp:184
LotusParser::readVersionZone
bool readVersionZone(std::shared_ptr< WPSStream > stream)
reads a zone of type a: 123 files
Definition: Lotus.cpp:2910
WPSOLE1Parser.h
LotusParser::getLinksList
std::vector< Link > getLinksList(int lId) const
returns a list of links corresponding to an id
Definition: Lotus.cpp:291
WPSHeader::setNeedEncoding
void setNeedEncoding(bool needEncoding)
Definition: WPSHeader.h:84
WKSParser::getInput
RVNGInputStreamPtr & getInput()
Definition: WKSParser.h:41
libwps::ParseException
Definition: libwps_internal.h:152
Vec2< int >
libwps::PasswordException
Definition: libwps_internal.h:157
WPSVec3< int >
LotusParser::m_graphParser
std::shared_ptr< LotusGraph > m_graphParser
the graph manager
Definition: Lotus.h:218
WPS_DEBUG_MSG
#define WPS_DEBUG_MSG(M)
Definition: libwps_internal.h:134
libwps::readU32
uint32_t readU32(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:76
LotusParser
This class parses a wk3,wk4,123 Lotus spreadsheet.
Definition: Lotus.h:73
WKSParser.h
LotusParser::version
int version() const
return the file version
Definition: Lotus.cpp:265
LotusParserInternal::State::operator=
State operator=(State const &)=delete
WPSHeader
Definition: WPSHeader.h:32
LotusParserInternal::State::m_actualZoneParentId
int m_actualZoneParentId
the actual zone parent id
Definition: Lotus.cpp:212
WPSHeader::setIsEncrypted
void setIsEncrypted(bool isEncrypted)
Definition: WPSHeader.h:74
libwps_tools_win::Font::UNKNOWN
@ UNKNOWN
Definition: libwps_tools_win.h:63
libwps::read32
int32_t read32(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:85
WPSOLE1Parser
a class used to parse a container which is used by Lotus123 (and also by RagTime).
Definition: WPSOLE1Parser.h:50
WPSFont.h
LotusParserInternal::State::State
State(libwps_tools_win::Font::Type fontType, char const *password)
constructor
Definition: Lotus.cpp:83
LotusParserInternal::State::m_inMainContentBlock
bool m_inMainContentBlock
a flag used to know if we are in the main block or no
Definition: Lotus.cpp:202
LotusParser::m_state
std::shared_ptr< LotusParserInternal::State > m_state
the listener (if set)
Definition: Lotus.h:212
LotusParser::readDataZone
bool readDataZone(std::shared_ptr< WPSStream > stream)
parse the different zones 1B
Definition: Lotus.cpp:1332
WPSEntry.h
WPSGraphicStyle
a structure used to define a picture style
Definition: WPSGraphicStyle.h:38
LotusParserInternal::State::getDefaultFontType
libwps_tools_win::Font::Type getDefaultFontType() const
return the default font style
Definition: Lotus.cpp:108
LotusParser::readRefZone
bool readRefZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 6: 123 files
Definition: Lotus.cpp:2556
LotusStyleManager.h
libwps::readDouble4
bool readDouble4(RVNGInputStreamPtr &input, double &res, bool &isNaN)
read a double store with 4 bytes: mantisse 2.5 bytes, exponent 1.5 bytes
Definition: libwps_internal.cpp:90
libwps::DebugFile::addNote
static void addNote(char const *)
Definition: WPSDebug.h:221
libwps::WPS_SPREADSHEET
@ WPS_SPREADSHEET
Definition: WPSDocument.h:60
LotusParserInternal::State::m_linkIdToLinkMap
std::multimap< int, LotusParser::Link > m_linkIdToLinkMap
a multimap link id to link zone
Definition: Lotus.cpp:218
libwps::read8
int8_t read8(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:59
WPSFont::m_size
double m_size
font size
Definition: WPSFont.h:83
WPSColumnFormat::m_numRepeat
int m_numRepeat
the number times a column is repeated
Definition: WPSTable.h:92
WPSEmbeddedObject
small class use to define a embedded object
Definition: libwps_internal.h:1077
LotusParser::getLeftTopPosition
bool getLeftTopPosition(Vec2i const &cell, int spreadsheet, Vec2f &pos) const
returns the left top position of a cell
Definition: Lotus.cpp:313
LotusParserInternal::State::m_fontsMap
std::map< int, Font > m_fontsMap
the fonts map
Definition: Lotus.cpp:204
LotusParserInternal::State
the state of LotusParser
Definition: Lotus.cpp:81
Lotus.h
WPSHeaderPtr
std::shared_ptr< WPSHeader > WPSHeaderPtr
shared pointer to WPSHeader
Definition: libwps_internal.h:109
LotusParserInternal::Font::Font
Font(Font const &)=default
LotusParser::getFont
bool getFont(int id, WPSFont &font, libwps_tools_win::Font::Type &type) const
returns the font corresponding to an id
Definition: Lotus.cpp:278
LotusParser::readZone8
bool readZone8(std::shared_ptr< WPSStream > stream)
reads a zone of type 8: 123 files
Definition: Lotus.cpp:2768
libwps::DebugStream
Definition: WPSDebug.h:192
LotusParser::m_listener
std::shared_ptr< WKSContentListener > m_listener
Definition: Lotus.h:210
libwps::readU8
uint8_t readU8(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:40
LotusParserInternal::State::m_fontType
libwps_tools_win::Font::Type m_fontType
the user font type
Definition: Lotus.cpp:196
LotusParser::m_styleManager
std::shared_ptr< LotusStyleManager > m_styleManager
the style manager
Definition: Lotus.h:214
LotusParserInternal::State::m_sheetZoneIdList
std::vector< int > m_sheetZoneIdList
the list of sheet main zone id
Definition: Lotus.cpp:214
LotusParser::LotusChart
friend class LotusChart
Definition: Lotus.h:75
LotusParser::sendGraphics
void sendGraphics(int sheetId)
send the graphics corresponding to a sheetId
Definition: Lotus.cpp:308
libwps_tools_win.h
WPSVec3i
WPSVec3< int > WPSVec3i
WPSVec3 of int.
Definition: libwps_internal.h:1067
WPSPageSpan
Definition: WPSPageSpan.h:39
libwps::readData
bool readData(RVNGInputStreamPtr &input, unsigned long size, librevenge::RVNGBinaryData &data)
try to read sz bytes from input and store them in a librevenge::RVNGBinaryData
Definition: libwps_internal.cpp:332
LotusParser::LotusParser
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
libwps::readU16
uint16_t readU16(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:64
libwps_tools_win::Language::name
std::string name(long id)
returns the name given Windows id
Definition: libwps_tools_win.cpp:7332
libwps::WPS_LOTUS
@ WPS_LOTUS
Lotus DOS(wk1), Apple(Lotus 123 v1), Windows(wk3,wk4,123) spreadsheets.
Definition: WPSDocument.h:49
RVNGInputStreamPtr
std::shared_ptr< librevenge::RVNGInputStream > RVNGInputStreamPtr
shared pointer to librevenge::RVNGInputStream
Definition: libwps_internal.h:87
WPSPosition
Class to define the position of an object (textbox, picture, ..) in the document.
Definition: WPSPosition.h:40
WPSDebug.h
libwps::DebugFile::addDelimiter
static void addDelimiter(long, char)
Definition: WPSDebug.h:222
LotusParser::m_ole1Parser
std::shared_ptr< WPSOLE1Parser > m_ole1Parser
the ole1 parser
Definition: Lotus.h:222
LotusParserInternal::State::m_isDecoded
bool m_isDecoded
true if the main stream has been decoded
Definition: Lotus.cpp:234
libwps_tools_win::Font::WIN3_WEUROPE
@ WIN3_WEUROPE
Definition: libwps_tools_win.h:52
LotusParser::sendChart
bool sendChart(int cId, WPSPosition const &pos, WPSGraphicStyle const &style)
try to send a chart
Definition: Lotus.cpp:323
LotusSpreadsheet
This class parses Microsoft Works spreadsheet file.
Definition: LotusSpreadsheet.h:53
LotusParser::readZone4
bool readZone4(std::shared_ptr< WPSStream > stream)
reads a zone of type 4: 123 files
Definition: Lotus.cpp:2272
LotusParser::decodeStream
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
LotusSpreadsheet.h
LotusParserInternal
Internal: namespace to define internal class of LotusParser.
Definition: Lotus.cpp:61
LotusParser::~LotusParser
~LotusParser() final
destructor
Definition: Lotus.cpp:261
libwps::read16
int16_t read16(librevenge::RVNGInputStream *input)
Definition: libwps_internal.cpp:71
WKSParser::ascii
libwps::DebugFile & ascii()
a DebugFile used to write what we recognize when we parse the document
Definition: WKSParser.h:63
libwps_internal.h
LotusParserInternal::State::m_version
int m_version
the file version
Definition: Lotus.cpp:198
LotusGraph
This class parses Microsoft Works graph file.
Definition: LotusGraph.h:56
WKSContentListener.h
WPSBox2i
WPSBox2< int > WPSBox2i
WPSBox2 of int.
Definition: libwps_internal.h:888
LotusParser::readZoneV3
bool readZoneV3(std::shared_ptr< WPSStream > stream)
parse a wk123 zone
Definition: Lotus.cpp:1765
LotusParserInternal::State::m_sheetSubZoneOpened
std::vector< bool > m_sheetSubZoneOpened
some sheet sub zones (SheetZone)
Definition: Lotus.cpp:224
WPSStream.h
LotusGraph.h
LotusParser::readChartZone
bool readChartZone(std::shared_ptr< WPSStream > stream)
reads a zone of type 5: 123 files
Definition: Lotus.cpp:2456
LotusParserInternal::State::getLevelsDebugName
std::string getLevelsDebugName() const
returns a name corresponding to the actual level(for debugging)
Definition: Lotus.cpp:160
WKSContentListener
Definition: WKSContentListener.h:54
librevenge
Definition: WPSOLEStream.h:34
WKSParser::getFileInput
RVNGInputStreamPtr getFileInput()
Definition: WKSParser.cpp:44
libwps_tools_win
some Windows classes and tools
Definition: libwps_tools_win.cpp:32
LotusParser::createListener
bool createListener(librevenge::RVNGSpreadsheetInterface *interface)
creates the main listener
Definition: Lotus.cpp:408
libwps::DebugFile
Definition: WPSDebug.h:208
LotusParser::readZones
bool readZones(std::shared_ptr< WPSStream > stream)
finds the different zones (spreadsheet, chart, print, ...)
Definition: Lotus.cpp:577
LotusParserInternal::State::m_password
char const * m_password
the password (if known)
Definition: Lotus.cpp:230
LotusParserInternal::State::m_metaData
librevenge::RVNGPropertyList m_metaData
the metadata
Definition: Lotus.cpp:227
WPSStringStream.h
WPSFont::m_name
librevenge::RVNGString m_name
font name
Definition: WPSFont.h:81
libwps::DebugFile::setStream
static void setStream(RVNGInputStreamPtr)
Definition: WPSDebug.h:212
LotusParser::readFMTStyleName
bool readFMTStyleName(std::shared_ptr< WPSStream > stream)
reads a format style name: b6
Definition: Lotus.cpp:3068
LotusParser::SubDocument
friend class LotusParserInternal::SubDocument
Definition: Lotus.h:74
WKSParser
Definition: WKSParser.h:34

Generated on Wed Dec 11 2024 15:34:58 for libwps by doxygen 1.8.20