#include <WPS8Text.h>
Public Member Functions | |
WPS8Text (WPS8Parser &parser) | |
~WPS8Text () | |
void | setListener (WPSContentListenerPtr &listen) |
sets the listener | |
int | numPages () const |
returns the number of pages | |
void | flushExtra () |
sends the data which have not yet been sent to the listener | |
bool | readStructures () |
finds all entries which correspond to the text data, parses them and stores data | |
int | getNumTextZones () const |
returns the number of different text zones | |
int | getTextZoneType (int typeId) const |
returns the type of a text zone | |
WPSEntry | getHeaderEntry () const |
returns the header entry (if such entry exists, if not returns an invalid entry) | |
WPSEntry | getFooterEntry () const |
returns the footer entry (if such entry exists, if not returns an invalid entry) | |
WPSEntry | getTextEntry () const |
returns the main zone entry (if such entry exists, if not returns an invalid entry) | |
WPSEntry | getEntry (int strsId) const |
returns ith zone entry (if such entry exists, if not returns an invalid entry) | |
void | readText (WPSEntry const &entry) |
reads a text section and sends it to a listener | |
void | readTextInCell (int strsId, int cellId) |
reads a cell section and sends it to a listener | |
Protected Types | |
typedef bool(WPS8Text::* | DataParser )(long bot, long eot, int id, WPS8Struct::FileData const &data, std::string &mess) |
definition of the plc data parser (low level) | |
typedef bool(WPS8Text::* | EndDataParser )(long endPos, std::vector< long > const &textPtrs) |
definition of the last part of plc data parser (low level) | |
Protected Member Functions | |
WPS8Parser & | mainParser () |
return the main parser | |
WPS8Parser const & | mainParser () const |
return the main parser | |
bool | readFont (long endPos, int &id, std::string &mess) |
reads a font properties | |
bool | readParagraph (long endPos, int &id, std::string &mess) |
the paragraph | |
bool | readString (RVNGInputStreamPtr input, long page_size, librevenge::RVNGString &res) |
reads a string | |
long | readUTF16LE (RVNGInputStreamPtr input, long endPos, uint16_t firstC) |
reads a utf16 character, | |
bool | readNotes (WPSEntry const &entry) |
the footnote ( FTN or EDN ) | |
void | createNotesCorrespondance () |
creates the notes association : text and notes positions | |
bool | readPLC (WPSEntry const &entry, std::vector< long > &textPtrs, std::vector< long > &listValues, DataParser parser=&WPS8Text::defDataParser, EndDataParser endParser=0L) |
reads a PLC (Pointer List Composant ?) in zone entry | |
bool | defDataParser (long, long, int, WPS8Struct::FileData const &data, std::string &mess) |
default parser | |
bool | textZonesDataParser (long bot, long eot, int nId, WPS8Struct::FileData const &data, std::string &mess) |
the text zones parser: STRS | |
bool | objectDataParser (long bot, long eot, int id, WPS8Struct::FileData const &data, std::string &mess) |
reads a EOBJ properties: an object id and its size, ... | |
bool | tokenEndDataParser (long endPage, std::vector< long > const &textPtrs) |
reads a field type : TOKN zone | |
bool | bmktEndDataParser (long endPage, std::vector< long > const &textPtrs) |
reads a field type : BMKT zone | |
Protected Attributes | |
WPSContentListenerPtr | m_listener |
the listener | |
shared_ptr< WPS8TextStyle > | m_styleParser |
the graph parser | |
shared_ptr < WPS8TextInternal::State > | m_state |
the internal state | |
Friends | |
class | WPS8TextInternal::SubDocument |
class | WPS8Parser |
class | WPS8TextStyle |
typedef bool(WPS8Text::* WPS8Text::DataParser)(long bot, long eot, int id, WPS8Struct::FileData const &data, std::string &mess) [protected] |
definition of the plc data parser (low level)
bot | defines the begin of the text zone corresponding to these properties |
eot | define the end of the text zone corresponding to these properties |
id | the number of this properties |
data | a reference to store the parsed data |
mess | a string which can be filled to indicate unparsed data |
typedef bool(WPS8Text::* WPS8Text::EndDataParser)(long endPos, std::vector< long > const &textPtrs) [protected] |
definition of the last part of plc data parser (low level)
endPos | the end of the properties' definition, |
textPtrs | the list of text positions |
WPS8Text::WPS8Text | ( | WPS8Parser & | parser | ) |
bool WPS8Text::bmktEndDataParser | ( | long | endPage, |
std::vector< long > const & | textPtrs | ||
) | [protected] |
void WPS8Text::createNotesCorrespondance | ( | ) | [protected] |
creates the notes association : text and notes positions
we can now creates the link position -> notes
Referenced by readStructures().
bool WPS8Text::defDataParser | ( | long | , |
long | , | ||
int | , | ||
WPS8Struct::FileData const & | data, | ||
std::string & | mess | ||
) | [protected] |
default parser
Referenced by readStructures().
void WPS8Text::flushExtra | ( | ) |
sends the data which have not yet been sent to the listener
WPSEntry WPS8Text::getEntry | ( | int | strsId | ) | const |
returns ith zone entry (if such entry exists, if not returns an invalid entry)
Referenced by createNotesCorrespondance().
WPSEntry WPS8Text::getFooterEntry | ( | ) | const |
returns the footer entry (if such entry exists, if not returns an invalid entry)
WPSEntry WPS8Text::getHeaderEntry | ( | ) | const |
returns the header entry (if such entry exists, if not returns an invalid entry)
int WPS8Text::getNumTextZones | ( | ) | const |
returns the number of different text zones
WPSEntry WPS8Text::getTextEntry | ( | ) | const |
returns the main zone entry (if such entry exists, if not returns an invalid entry)
int WPS8Text::getTextZoneType | ( | int | typeId | ) | const |
returns the type of a text zone
1: mainzone, 2: footnote, 3: endnote, 4: ???, 5: text in table/textbox 6: header, 7: footer
WPS8Parser& WPS8Text::mainParser | ( | ) | [inline, protected] |
return the main parser
Referenced by readText().
WPS8Parser const& WPS8Text::mainParser | ( | ) | const [inline, protected] |
return the main parser
int WPS8Text::numPages | ( | ) | const |
returns the number of pages
bool WPS8Text::objectDataParser | ( | long | bot, |
long | eot, | ||
int | id, | ||
WPS8Struct::FileData const & | data, | ||
std::string & | mess | ||
) | [protected] |
reads a EOBJ properties: an object id and its size, ...
Referenced by readStructures().
bool WPS8Text::readFont | ( | long | endPos, |
int & | id, | ||
std::string & | mess | ||
) | [protected] |
reads a font properties
bool WPS8Text::readNotes | ( | WPSEntry const & | entry | ) | [protected] |
the footnote ( FTN or EDN )
Referenced by readStructures().
bool WPS8Text::readParagraph | ( | long | endPos, |
int & | id, | ||
std::string & | mess | ||
) | [protected] |
the paragraph
Referenced by WPS8TextStyle::readStructures().
bool WPS8Text::readPLC | ( | WPSEntry const & | entry, |
std::vector< long > & | textPtrs, | ||
std::vector< long > & | listValues, | ||
WPS8Text::DataParser | parser = &WPS8Text::defDataParser , |
||
WPS8Text::EndDataParser | endParser = 0L |
||
) | [protected] |
reads a PLC (Pointer List Composant ?) in zone entry
entry | the file zone |
textPtrs | lists of offset in text zones where properties changes |
listValues | lists of properties values (filled only if values are simple types: int, ..) |
parser | the parser to use to read the values |
endParser | the parser to use to read remaining data |
Referenced by WPS8TextStyle::findFDPStructures(), and readStructures().
bool WPS8Text::readString | ( | RVNGInputStreamPtr | input, |
long | page_size, | ||
librevenge::RVNGString & | res | ||
) | [protected] |
reads a string
Referenced by bmktEndDataParser(), WPS8TextStyle::readSTSH(), and tokenEndDataParser().
bool WPS8Text::readStructures | ( | ) |
finds all entries which correspond to the text data, parses them and stores data
create the main structures
void WPS8Text::readText | ( | WPSEntry const & | entry | ) |
reads a text section and sends it to a listener
Read the range of the document text using previously-read formatting information, up to but excluding entry.end().
Referenced by flushExtra(), WPS8TextInternal::SubDocument::parse(), and readTextInCell().
void WPS8Text::readTextInCell | ( | int | strsId, |
int | cellId | ||
) |
reads a cell section and sends it to a listener
long WPS8Text::readUTF16LE | ( | RVNGInputStreamPtr | input, |
long | endPos, | ||
uint16_t | firstC | ||
) | [protected] |
reads a utf16 character,
CHECKME: for Symbol font, we must probably convert 0xF0xx and 0x00xx in a 0x03yy symbol :-~
Referenced by readString(), and readText().
void WPS8Text::setListener | ( | WPSContentListenerPtr & | listen | ) |
sets the listener
bool WPS8Text::textZonesDataParser | ( | long | bot, |
long | eot, | ||
int | nId, | ||
WPS8Struct::FileData const & | data, | ||
std::string & | mess | ||
) | [protected] |
the text zones parser: STRS
Referenced by readStructures().
bool WPS8Text::tokenEndDataParser | ( | long | endPage, |
std::vector< long > const & | textPtrs | ||
) | [protected] |
reads a field type : TOKN zone
Referenced by readStructures().
friend class WPS8Parser [friend] |
friend class WPS8TextInternal::SubDocument [friend] |
friend class WPS8TextStyle [friend] |
Referenced by WPS8Text().
WPSContentListenerPtr WPS8Text::m_listener [protected] |
the listener
Referenced by flushExtra(), readText(), readTextInCell(), and setListener().
shared_ptr<WPS8TextInternal::State> WPS8Text::m_state [mutable, protected] |
the internal state
Referenced by bmktEndDataParser(), createNotesCorrespondance(), flushExtra(), getEntry(), getFooterEntry(), getHeaderEntry(), getNumTextZones(), getTextEntry(), getTextZoneType(), objectDataParser(), readNotes(), readStructures(), readText(), readTextInCell(), tokenEndDataParser(), and WPS8Text().
shared_ptr<WPS8TextStyle> WPS8Text::m_styleParser [protected] |
the graph parser
Referenced by readFont(), readParagraph(), readStructures(), readText(), setListener(), and WPS8Text().