WPS4Text Class Reference

The class which parses text zones in a pc MS Works document v1-4. More...

#include <WPS4Text.h>

Inheritance diagram for WPS4Text:
WPSTextParser

Public Member Functions

 WPS4Text (WPS4Parser &parser, RVNGInputStreamPtr &input)
 contructor More...
 
 ~WPS4Text ()
 destructor More...
 
void setListener (WPSContentListenerPtr &listen)
 sets the listener More...
 
int numPages () const
 returns the number of pages More...
 
void flushExtra ()
 sends the data which have not yet been sent to the listener More...
 
- Public Member Functions inherited from WPSTextParser
virtual ~WPSTextParser ()
 virtual destructor More...
 
int version () const
 returns the file version More...
 
RVNGInputStreamPtrgetInput ()
 returns the actual input More...
 

Protected Types

typedef bool(WPS4Text::* DataParser )(long bot, long eot, int id, long endPos, std::string &mess)
 definition of the plc data parser (low level) More...
 
- 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 More...
 

Protected Member Functions

WPS4ParsermainParser ()
 return the main parser More...
 
WPS4Parser const & mainParser () const
 return the main parser More...
 
libwps_tools_win::Font::Type getDefaultFontType () const
 returns the default codepage to use for the document More...
 
WPSEntry getHeaderEntry () const
 returns the header entry (if such entry exists, if not returns an invalid entry) More...
 
WPSEntry getFooterEntry () const
 returns the footer entry (if such entry exists, if not returns an invalid entry) More...
 
WPSEntry getMainTextEntry () const
 returns the main text entry (if such entry exists, if not returns an invalid entry) More...
 
bool readText (WPSEntry const &entry)
 reads a text section and sends it to a listener More...
 
bool readEntries ()
 finds all text entries (TEXT, SHdr, SFtr, BTEC, BTEP, FTNp, FTNp, BKMK, FONT, CHRT) More...
 
bool readStructures ()
 parsed all the text entries More...
 
bool findFDPStructures (int which)
 finds the FDPC/FDPP structure using the BTEC/BTEP entries More...
 
bool findFDPStructuresByHand (int which)
 finds the FDPC/FDPP structure by searching after the text zone More...
 
bool readPLC (WPSEntry const &zone, std::vector< long > &textPtrs, std::vector< long > &listValues, DataParser parser=0L)
 reads a PLC (Pointer List Composant ?) in zone entry More...
 
bool defDataParser (long bot, long eot, int id, long endPos, std::string &mess)
 default plc reader More...
 
bool readFontNames (WPSEntry const &entry)
 reads the font names More...
 
bool readFont (long endPos, int &id, std::string &mess)
 reads a font properties More...
 
bool readParagraph (long endPos, int &id, std::string &mess)
 reads a paragraph properties More...
 
bool readDosLink (WPSEntry const &entry)
 reads the ZZDLink ( a list of filename ) More...
 
bool objectDataParser (long bot, long eot, int id, long endPos, std::string &mess)
 reads a object properties ( position in text, size and definition in file) More...
 
bool readFootNotes (WPSEntry const &ftnD, WPSEntry const &ftnP)
 reads the footnotes positions and definitions ( zones FTNd and FTNp) More...
 
bool footNotesDataParser (long bot, long eot, int id, long endPos, std::string &mess)
 reads a book mark property ( string) More...
 
bool bkmkDataParser (long bot, long eot, int id, long endPos, std::string &mess)
 reads a book mark property ( string) More...
 
bool dttmDataParser (long bot, long eot, int id, long endPos, std::string &mess)
 reads a date time property More...
 
- Protected Member Functions inherited from WPSTextParser
 WPSTextParser (WPSParser &parser, RVNGInputStreamPtr &input)
 constructor More...
 
std::multimap< std::string,
WPSEntry > & 
getNameEntryMap ()
 returns the map type->entry More...
 
std::multimap< std::string,
WPSEntry > const & 
getNameEntryMap () const
 returns the map type->entry More...
 
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). More...
 
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 More...
 
libwps::DebugFileascii ()
 a DebugFile used to write what we recognize when we parse the document More...
 

Protected Attributes

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

Friends

class WPS4Parser
 

Detailed Description

The class which parses text zones in a pc MS Works document v1-4.

This class must be associated with a WPS4Parser. It finds and reads:

  • TEXT[3] : the text limits ( header, footer, main text with notes)
  • SHdr, SFtr : a string to store header/footer in v1-2 (?)
  • BTEC : the fonts properties
  • BTEP : the paragraph properties
  • FONT : the font names
  • FTNp, FTNd : the footnote positions (text position and text of notes)
  • BKMK : a comment field ( contain a string )
  • CHRT : a chart ( unknown format ) It reads:
  • DTTM : field contents ( only parsed)
  • EOBJ : the text position with the position and size of an object
Note
It also reads the size of the document because this size is stored between the "entries" which defines the text positions and the BTEC positions...

Member Typedef Documentation

typedef bool(WPS4Text::* WPS4Text::DataParser)(long bot, long eot, int id, long endPos, std::string &mess)
protected

definition of the plc data parser (low level)

Parameters
inputthe file's input
endPosthe end of the properties' definition,
bot,\parameot defined the text zone corresponding to these properties
idthe number of this properties
messa string which can be filled to indicate unparsed data

Constructor & Destructor Documentation

WPS4Text::WPS4Text ( WPS4Parser parser,
RVNGInputStreamPtr input 
)

contructor

WPS4Text::~WPS4Text ( )

destructor

Member Function Documentation

bool WPS4Text::bkmkDataParser ( long  bot,
long  eot,
int  id,
long  endPos,
std::string &  mess 
)
protected

reads a book mark property ( string)

Referenced by readStructures().

bool WPS4Text::defDataParser ( long  bot,
long  eot,
int  id,
long  endPos,
std::string &  mess 
)
protected

default plc reader

Referenced by readPLC().

bool WPS4Text::dttmDataParser ( long  bot,
long  eot,
int  id,
long  endPos,
std::string &  mess 
)
protected

reads a date time property

Referenced by readStructures().

bool WPS4Text::findFDPStructures ( int  which)
protected

finds the FDPC/FDPP structure using the BTEC/BTEP entries

Parameters
which== 0 means FDPP

Referenced by readStructures().

bool WPS4Text::findFDPStructuresByHand ( int  which)
protected

finds the FDPC/FDPP structure by searching after the text zone

Parameters
which== 0 means FDPP

Referenced by readStructures().

void WPS4Text::flushExtra ( )

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

bool WPS4Text::footNotesDataParser ( long  bot,
long  eot,
int  id,
long  endPos,
std::string &  mess 
)
protected

reads a book mark property ( string)

Referenced by readFootNotes().

libwps_tools_win::Font::Type WPS4Text::getDefaultFontType ( ) const
protected

returns the default codepage to use for the document

Referenced by footNotesDataParser(), readFont(), readFontNames(), and readText().

WPSEntry WPS4Text::getFooterEntry ( ) const
protected

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

WPSEntry WPS4Text::getHeaderEntry ( ) const
protected

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

WPSEntry WPS4Text::getMainTextEntry ( ) const
protected

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

WPS4Parser& WPS4Text::mainParser ( )
inlineprotected

return the main parser

Referenced by objectDataParser(), readEntries(), readFont(), readParagraph(), and readText().

WPS4Parser const& WPS4Text::mainParser ( ) const
inlineprotected

return the main parser

int WPS4Text::numPages ( ) const

returns the number of pages

bool WPS4Text::objectDataParser ( long  bot,
long  eot,
int  id,
long  endPos,
std::string &  mess 
)
protected

reads a object properties ( position in text, size and definition in file)

Referenced by readStructures().

bool WPS4Text::readDosLink ( WPSEntry const &  entry)
protected

reads the ZZDLink ( a list of filename )

Referenced by readStructures().

bool WPS4Text::readEntries ( )
protected

finds all text entries (TEXT, SHdr, SFtr, BTEC, BTEP, FTNp, FTNp, BKMK, FONT, CHRT)

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

reads a font properties

Referenced by readStructures().

bool WPS4Text::readFontNames ( WPSEntry const &  entry)
protected

reads the font names

Referenced by readStructures().

bool WPS4Text::readFootNotes ( WPSEntry const &  ftnD,
WPSEntry const &  ftnP 
)
protected

reads the footnotes positions and definitions ( zones FTNd and FTNp)

Referenced by readStructures().

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

reads a paragraph properties

Referenced by readStructures().

bool WPS4Text::readPLC ( WPSEntry const &  zone,
std::vector< long > &  textPtrs,
std::vector< long > &  listValues,
WPS4Text::DataParser  parser = 0L 
)
protected

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

Parameters
zonethe zone of the data in the file,
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

Referenced by findFDPStructures(), readFootNotes(), and readStructures().

bool WPS4Text::readStructures ( )
protected

parsed all the text entries

bool WPS4Text::readText ( WPSEntry const &  entry)
protected

reads a text section and sends it to a listener

Referenced by flushExtra().

void WPS4Text::setListener ( WPSContentListenerPtr listen)
inline

sets the listener

Friends And Related Function Documentation

friend class WPS4Parser
friend

Member Data Documentation

WPSContentListenerPtr WPS4Text::m_listener
protected

the listener

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


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

Generated on Mon Nov 23 2015 07:09:19 for libwps by doxygen 1.8.5