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) | |
Public Member Functions inherited from WPSParser | |
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 | |
Protected Member Functions inherited from WPSParser | |
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 | |
Public Types inherited from WPSParser | |
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
|
protected |
return true if the pos is in the file, update the file size if need
Referenced by checkHeader(), findZones(), parseEntry(), and WPS4Text.
bool WPS4Parser::checkHeader | ( | WPSHeader * | header, |
bool | strict = false ) |
checks if the document header is correct (or not)
Referenced by libwps::WPSDocument::isFileFormatSupported(), parse(), and WPS4Text.
|
protected |
creates a document for a comment entry and then send the data
Referenced by WPS4Text::readText(), and WPS4Text.
|
protected |
|
protected |
creates a document for a footnote entry with label and then send the data
Referenced by WPS4Text::readText(), and WPS4Text.
|
protected |
|
protected |
|
protected |
creates a textbox and then send the data
Referenced by WPS4Text::readText(), and WPS4Text.
|
protected |
finds the different zones (text, print, ...) and updates nameMultiMap
Referenced by createStructures(), and WPS4Text.
|
protected |
color
Referenced by readDocWindowsInfo(), and WPS4Text.
|
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(), WPS4Text::readFontNames(), and WPS4Text.
|
protected |
returns the document codepage ( given from the file OEM field )
Referenced by WPS4Text.
|
protected |
adds a new page
Referenced by WPS4Text::readText(), and WPS4Text.
|
protected |
returns the number of columns
Referenced by WPS4Text::readText(), and WPS4Text.
|
protected |
returns the page height, ie. paper size less margin (in inches)
Referenced by WPS4Text.
|
protected |
returns the page width, ie. paper size less margin (in inches)
Referenced by WPS4Text.
|
finalvirtual |
|
protected |
parses an entry
reads a zone offset and a zone size and checks if this entry is valid
Referenced by findZones(), WPS4Text::readEntries(), and WPS4Text.
|
protected |
tries to read the document dimension
Referenced by findZones(), and WPS4Text.
|
protected |
reads the additional windows info
\note this zone contains many unknown data
Referenced by createStructures(), and WPS4Text.
|
protected |
tries to read a picture ( via its WPS4Graph )
Referenced by WPS4Text::objectDataParser(), and WPS4Text.
|
protected |
tries to read the printer information
Referenced by createStructures(), and WPS4Text.
|
protected |
sends text corresponding to the entry to the listener (via WPS4Text)
Referenced by WPS4ParserInternal::SubDocument::parse(), and 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(), WPS4Text::sendObjects(), and WPS4Text.
|
protected |
|
protected |
sets the file size ( filled by WPS4Text )
Referenced by WPS4Text::readEntries(), and WPS4Text.
|
friend |
Referenced by WPS4Graph, and WPS4Parser().
|
friend |
|
friend |
Referenced by WPS4Parser(), and WPS4Text.
|
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(), setListener(), and WPS4Parser().
|
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().