00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00026 #ifndef __PDF_TEXT_TEXT_HEADER_INCLUDED__
00027 #define __PDF_TEXT_TEXT_HEADER_INCLUDED__
00028
00029 #ifndef __PDF_TEXT_STATE_HEADER_INCLUDED__
00030 #include "State.hh"
00031 #endif
00032
00033 #ifndef __PDF_TEXT_POSITION_HEADER_INCLUDED__
00034 #include "Position.hh"
00035 #endif
00036
00037 #include <string>
00038 #include <memory>
00039
00040 namespace pdf { namespace text {
00041
00064 class CText
00065 {
00066 private :
00067 std::string m_line ;
00068 CState m_state ;
00069
00071 std::auto_ptr<CPosition> m_position ;
00072
00073 public :
00074 CText( const std::string& line, const CState& state,
00075 const CPosition& position = CNullPos( ) ) ;
00076 CText( const std::string& line, const CState& state,
00077 double offset_x, double offset_y ) ;
00078 CText( const CText& text ) ;
00079 ~CText( ) ;
00080
00081
00082 const std::string& Line( ) const { return m_line ; }
00083 const CState& State( ) const { return m_state ; }
00084
00085
00086 std::ostream& Write( std::ostream& os, const CState& prev ) const ;
00087 void Move( const CPosition& new_pos ) ;
00088 double Width( ) const ;
00089
00090 private :
00091 static const std::string EscapeString( const std::string& str ) ;
00092 } ;
00093
00094 } }
00095
00096 #endif
00097