WPS8Text Class Reference

#include <WPS8Text.h>

Inheritance diagram for WPS8Text:
WPSTextParser

Public Member Functions

 WPS8Text (WPS8Parser &parser)
 ~WPS8Text () override
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
Public Member Functions inherited from WPSTextParser
virtual ~WPSTextParser ()
 virtual destructor
int version () const
 returns the file version
RVNGInputStreamPtrgetInput ()
 returns the actual input

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 Types inherited from WPSTextParser
typedef bool(WPSTextParser::* FDPParser) (long endPos, int &id, std::string &mess)
 callback when a new attribute is found in an FDPP/FDPC entry

Protected Member Functions

WPS8ParsermainParser ()
 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 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=nullptr)
 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 Member Functions inherited from WPSTextParser
 WPSTextParser (WPSParser &parser, RVNGInputStreamPtr &input)
 constructor
std::multimap< std::string, WPSEntry > & getNameEntryMap ()
 returns the map type->entry
std::multimap< std::string, WPSEntry > const & getNameEntryMap () const
 returns the map type->entry
std::vector< DataFODmergeSortedFODLists (std::vector< DataFOD > const &lst1, std::vector< DataFOD > const &lst2) const
 function which takes two sorted list of attribute (by text position).
bool readFDP (WPSEntry const &entry, std::vector< DataFOD > &fods, FDPParser parser)
 parses a FDPP or a FDPC entry (which contains a list of ATTR_TEXT/ATTR_PARAG with their definition ) and adds found data in listFODs
libwps::DebugFileascii ()
 a DebugFile used to write what we recognize when we parse the document

Static Protected Member Functions

static bool readString (RVNGInputStreamPtr input, long page_size, librevenge::RVNGString &res)
 reads a string
static long readUTF16LE (RVNGInputStreamPtr input, long endPos, uint16_t firstC)
 reads a utf16 character,

Protected Attributes

WPSContentListenerPtr m_listener
 the listener
std::shared_ptr< WPS8TextStylem_styleParser
 the graph parser
std::shared_ptr< WPS8TextInternal::Statem_state
 the internal state
Protected Attributes inherited from WPSTextParser
int m_version
 the file version
RVNGInputStreamPtr m_input
 the main input
WPSParserm_mainParser
 pointer to the main zone parser;
WPSEntry m_textPositions
 an entry which corresponds to the complete text zone
std::vector< DataFODm_FODList
 the list of a FOD
libwps::DebugFilem_asciiFile
 the ascii file

Friends

class WPS8TextInternal::SubDocument
class WPS8Parser
class WPS8TextStyle

Member Typedef Documentation

◆ DataParser

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)

Parameters
botdefines the begin of the text zone corresponding to these properties
eotdefine the end of the text zone corresponding to these properties
idthe number of this properties
dataa reference to store the parsed data
messa string which can be filled to indicate unparsed data

◆ EndDataParser

typedef bool(WPS8Text::* WPS8Text::EndDataParser) (long endPos, std::vector< long > const &textPtrs)
protected

definition of the last part of plc data parser (low level)

Parameters
endPosthe end of the properties' definition,
textPtrsthe list of text positions

Constructor & Destructor Documentation

◆ WPS8Text()

WPS8Text::WPS8Text ( WPS8Parser & parser)
explicit

Referenced by getFooterEntry(), and getHeaderEntry().

◆ ~WPS8Text()

WPS8Text::~WPS8Text ( )
override

Member Function Documentation

◆ bmktEndDataParser()

bool WPS8Text::bmktEndDataParser ( long endPage,
std::vector< long > const & textPtrs )
protected

reads a field type : BMKT zone

Warning
the read data are NOT used

Referenced by readStructures().

◆ createNotesCorrespondance()

void WPS8Text::createNotesCorrespondance ( )
protected

creates the notes association : text and notes positions

Note
must be called after all notes have been created

we can now creates the link position -> notes

Referenced by readStructures().

◆ defDataParser()

bool WPS8Text::defDataParser ( long ,
long ,
int ,
WPS8Struct::FileData const & data,
std::string & mess )
protected

default parser

Referenced by readStructures().

◆ flushExtra()

void WPS8Text::flushExtra ( )

sends the data which have not yet been sent to the listener

◆ getEntry()

WPSEntry WPS8Text::getEntry ( int strsId) const

returns ith zone entry (if such entry exists, if not returns an invalid entry)

Referenced by createNotesCorrespondance().

◆ getFooterEntry()

WPSEntry WPS8Text::getFooterEntry ( ) const

returns the footer entry (if such entry exists, if not returns an invalid entry)

◆ getHeaderEntry()

WPSEntry WPS8Text::getHeaderEntry ( ) const

returns the header entry (if such entry exists, if not returns an invalid entry)

◆ getNumTextZones()

int WPS8Text::getNumTextZones ( ) const

returns the number of different text zones

◆ getTextEntry()

WPSEntry WPS8Text::getTextEntry ( ) const

returns the main zone entry (if such entry exists, if not returns an invalid entry)

◆ getTextZoneType()

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

◆ mainParser() [1/2]

WPS8Parser & WPS8Text::mainParser ( )
inlineprotected

return the main parser

Referenced by readText().

◆ mainParser() [2/2]

WPS8Parser const & WPS8Text::mainParser ( ) const
inlineprotected

return the main parser

◆ numPages()

int WPS8Text::numPages ( ) const

returns the number of pages

◆ objectDataParser()

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().

◆ readFont()

bool WPS8Text::readFont ( long endPos,
int & id,
std::string & mess )
protected

reads a font properties

Referenced by WPS8TextStyle::readStructures().

◆ readNotes()

bool WPS8Text::readNotes ( WPSEntry const & entry)
protected

the footnote ( FTN or EDN )

Note
this function must be called after the creation of the text zones

Referenced by readStructures().

◆ readParagraph()

bool WPS8Text::readParagraph ( long endPos,
int & id,
std::string & mess )
protected

the paragraph

Referenced by WPS8TextStyle::readStructures().

◆ readPLC()

bool WPS8Text::readPLC ( WPSEntry const & entry,
std::vector< long > & textPtrs,
std::vector< long > & listValues,
WPS8Text::DataParser parser = &WPS8Text::defDataParser,
WPS8Text::EndDataParser endParser = nullptr )
protected

reads a PLC (Pointer List Composant ?) in zone entry

Parameters
entrythe file zone
textPtrslists of offset in text zones where properties changes
listValueslists of properties values (filled only if values are simple types: int, ..)
parserthe parser to use to read the values
endParserthe parser to use to read remaining data

Referenced by readStructures().

◆ readString()

bool WPS8Text::readString ( RVNGInputStreamPtr input,
long page_size,
librevenge::RVNGString & res )
staticprotected

◆ readStructures()

bool WPS8Text::readStructures ( )

finds all entries which correspond to the text data, parses them and stores data

create the main structures

◆ readText()

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(), and readTextInCell().

◆ readTextInCell()

void WPS8Text::readTextInCell ( int strsId,
int cellId )

reads a cell section and sends it to a listener

◆ readUTF16LE()

long WPS8Text::readUTF16LE ( RVNGInputStreamPtr input,
long endPos,
uint16_t firstC )
staticprotected

reads a utf16 character,

Returns
0xfffd if an error

CHECKME: for Symbol font, we must probably convert 0xF0xx and 0x00xx in a 0x03yy symbol :-~

Referenced by readString(), and readText().

◆ setListener()

void WPS8Text::setListener ( WPSContentListenerPtr & listen)

sets the listener

◆ textZonesDataParser()

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().

◆ tokenEndDataParser()

bool WPS8Text::tokenEndDataParser ( long endPage,
std::vector< long > const & textPtrs )
protected

reads a field type : TOKN zone

Referenced by readStructures().

◆ WPS8Parser

friend class WPS8Parser
friend

◆ WPS8TextInternal::SubDocument

friend class WPS8TextInternal::SubDocument
friend

◆ WPS8TextStyle

friend class WPS8TextStyle
friend

Referenced by WPS8Text(), and WPS8TextStyle.

Member Data Documentation

◆ m_listener

WPSContentListenerPtr WPS8Text::m_listener
protected

the listener

Referenced by flushExtra(), readText(), readTextInCell(), setListener(), and WPS8Text().

◆ m_state

◆ m_styleParser

std::shared_ptr<WPS8TextStyle> WPS8Text::m_styleParser
protected

The documentation for this class was generated from the following files:

Generated on Sat Jul 19 2025 05:24:40 for libwps by doxygen 1.14.0