This class parses Works version 2 through 4. More...
#include <WPS4.h>
Public Member Functions | |
WPS4Parser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN) | |
constructor | |
~WPS4Parser () final | |
destructor | |
void | parse (librevenge::RVNGTextInterface *documentInterface) final |
called by WPSDocument to parse the file | |
bool | checkHeader (WPSHeader *header, bool strict=false) |
checks if the document header is correct (or not) | |
![]() | |
WPSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header) | |
virtual | ~WPSParser () |
Protected Member Functions | |
bool | getColor (int id, WPSColor &color) const |
color | |
void | setSizeFile (long sz) |
sets the file size ( filled by WPS4Text ) | |
bool | checkFilePosition (long pos) |
return true if the pos is in the file, update the file size if need | |
void | newPage (int number) |
adds a new page | |
void | setListener (std::shared_ptr< WPSContentListener > const &listener) |
set the listener | |
bool | createStructures () |
tries to parse the main zone, ... | |
bool | createOLEStructures () |
tries to parse the different OLE zones ( except the main zone ) | |
std::shared_ptr< WPSContentListener > | createListener (librevenge::RVNGTextInterface *interface) |
creates the main listener | |
float | pageHeight () const |
returns the page height, ie. paper size less margin (in inches) | |
float | pageWidth () const |
returns the page width, ie. paper size less margin (in inches) | |
int | numColumns () const |
returns the number of columns | |
libwps_tools_win::Font::Type | getDefaultFontType () const |
returns the default font type, ie. | |
libwps_tools_win::Font::Type | getOEMFontType () const |
returns the document codepage ( given from the file OEM field ) | |
void | createDocument (WPSEntry const &entry, libwps::SubDocumentType type) |
creates a document for a comment entry and then send the data | |
void | createNote (WPSEntry const &entry, librevenge::RVNGString const &label) |
creates a document for a footnote entry with label and then send the data | |
void | createTextBox (WPSEntry const &entry, WPSPosition const &pos, librevenge::RVNGPropertyList const &extras) |
creates a textbox and then send the data | |
void | send (WPSEntry const &entry, libwps::SubDocumentType type) |
sends text corresponding to the entry to the listener (via WPS4Text) | |
int | readObject (RVNGInputStreamPtr input, WPSEntry const &entry) |
tries to read a picture ( via its WPS4Graph ) | |
void | sendObject (WPSPosition const &position, int id) |
sends an object with given id ( via its WPS4Graph ) | |
bool | findZones () |
finds the different zones (text, print, ...) and updates nameMultiMap | |
bool | parseEntry (std::string const &name) |
parses an entry | |
bool | readDocDim () |
tries to read the document dimension | |
bool | readPrnt (WPSEntry const &entry) |
tries to read the printer information | |
bool | readDocWindowsInfo (WPSEntry const &entry) |
reads the additional windows info | |
![]() | |
RVNGInputStreamPtr & | getInput () |
RVNGInputStreamPtr | getFileInput () |
WPSHeaderPtr & | getHeader () |
int | version () const |
void | setVersion (int vers) |
libwps::DebugFile & | ascii () |
a DebugFile used to write what we recognize when we parse the document | |
NameMultiMap & | getNameEntryMap () |
NameMultiMap const & | getNameEntryMap () const |
Protected Attributes | |
std::shared_ptr< WPSContentListener > | m_listener |
std::shared_ptr< WPS4Graph > | m_graphParser |
the graph parser | |
std::shared_ptr< WPS4Text > | m_textParser |
the text parser | |
std::shared_ptr< WPS4ParserInternal::State > | m_state |
the internal state | |
Friends | |
class | WPS4ParserInternal::SubDocument |
class | WPS4Graph |
class | WPS4Text |
Additional Inherited Members | |
![]() | |
typedef std::multimap< std::string, WPSEntry > | NameMultiMap |
a map to retrieve a file entry by name | |
This class parses Works version 2 through 4.
WPS4Parser::WPS4Parser | ( | RVNGInputStreamPtr & | input, |
WPSHeaderPtr & | header, | ||
libwps_tools_win::Font::Type | encoding = libwps_tools_win::Font::UNKNOWN ) |
constructor
|
final |
destructor
return true if the pos is in the file, update the file size if need
Referenced by checkHeader(), findZones(), and parseEntry().
checks if the document header is correct (or not)
Referenced by libwps::WPSDocument::isFileFormatSupported(), and parse().
|
protected |
creates a document for a comment entry and then send the data
Referenced by WPS4Text::readText().
|
protected |
creates the main listener
Referenced by parse().
|
protected |
creates a document for a footnote entry with label and then send the data
Referenced by WPS4Text::readText().
|
protected |
tries to parse the different OLE zones ( except the main zone )
Referenced by parse().
|
protected |
tries to parse the main zone, ...
Referenced by parse().
|
protected |
creates a textbox and then send the data
Referenced by WPS4Text::readText().
|
protected |
finds the different zones (text, print, ...) and updates nameMultiMap
Referenced by createStructures().
color
Referenced by readDocWindowsInfo(), WPS4Text::readFont(), and WPS4Text::readParagraph().
|
protected |
returns the default font type, ie.
the encoding given by the constructor if given or the encoding deduiced from the version.
Referenced by createOLEStructures(), WPS4Text::readFont(), and WPS4Text::readFontNames().
|
protected |
returns the document codepage ( given from the file OEM field )
adds a new page
Referenced by WPS4Text::readText().
|
protected |
returns the number of columns
Referenced by WPS4Text::readText().
|
protected |
returns the page height, ie. paper size less margin (in inches)
|
protected |
returns the page width, ie. paper size less margin (in inches)
|
finalvirtual |
called by WPSDocument to parse the file
Implements WPSParser.
|
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().
|
protected |
tries to read the document dimension
Referenced by findZones().
reads the additional windows info
\note this zone contains many unknown data
Referenced by createStructures().
|
protected |
tries to read a picture ( via its WPS4Graph )
Referenced by WPS4Text::objectDataParser().
tries to read the printer information
Referenced by createStructures().
|
protected |
sends text corresponding to the entry to the listener (via WPS4Text)
|
protected |
sends an object with given id ( via its WPS4Graph )
The object is sent as a character with given size position
Referenced by WPS4Text::readText(), and WPS4Text::sendObjects().
|
protected |
set the listener
Referenced by parse().
sets the file size ( filled by WPS4Text )
Referenced by WPS4Text::readEntries().
Referenced by WPS4Parser().
Referenced by WPS4Parser().
|
protected |
the graph parser
Referenced by createListener(), createOLEStructures(), createStructures(), newPage(), parse(), readObject(), sendObject(), setListener(), and WPS4Parser().
|
protected |
Referenced by createDocument(), createNote(), createTextBox(), newPage(), parse(), send(), and setListener().
|
protected |
the internal state
Referenced by checkFilePosition(), createListener(), findZones(), getColor(), getDefaultFontType(), getOEMFontType(), newPage(), numColumns(), pageHeight(), pageWidth(), readDocDim(), setSizeFile(), and WPS4Parser().
|
protected |
the text parser
Referenced by createListener(), createStructures(), findZones(), parse(), send(), setListener(), and WPS4Parser().