rtf/export/ExportFilter.h
1/*
2 This file is part of the KDE project
3 Copyright 2001, 2002 Nicolas GOUTTE <goutte@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to
17 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18 * Boston, MA 02110-1301, USA.
19*/
20
21#ifndef EXPORTFILTERFULLPOWER_H
22#define EXPORTFILTERFULLPOWER_H
23
24#include <tqvaluestack.h>
25#include <tqvaluelist.h>
26#include <tqstringlist.h>
27
28#include <KWEFBaseWorker.h>
29
30class ListInfo
31{
32public:
33 CounterData::Style m_typeList;
34 bool m_orderedList;
35};
36
37class RTFWorker : public KWEFBaseWorker
38{
39public:
40 RTFWorker(void);
41 virtual ~RTFWorker(void) { delete m_streamOut; delete m_ioDevice; }
42public:
43 virtual bool doOpenFile(const TQString& filenameOut, const TQString& to);
44 virtual bool doCloseFile(void);
45 virtual bool doOpenDocument(void);
46 virtual bool doCloseDocument(void);
47 virtual bool doFullParagraph(const TQString& paraText, const LayoutData& layout,
48 const ValueListFormatData& paraFormatDataList);
49 virtual bool doFullDocumentInfo(const KWEFDocumentInfo& docInfo);
50 virtual bool doOpenTextFrameSet(void);
51 virtual bool doCloseTextFrameSet(void);
52 virtual bool doFullPaperFormat(const int format,
53 const double width, const double height, const int orientation);
54 virtual bool doFullPaperBorders (const double top, const double left,
55 const double bottom, const double right);
56 virtual bool doFullDefineStyle(LayoutData& layout);
57 virtual bool doHeader(const HeaderData& header);
58 virtual bool doFooter(const FooterData& footer);
59 virtual bool doVariableSettings(const VariableSettingsData& vs);
60
61private:
62 TQString openSpan(const FormatData& formatOrigin, const FormatData& format);
63 TQString closeSpan(const FormatData& formatOrigin, const FormatData& format);
70 TQString escapeRtfText ( const TQString& text ) const;
71 TQString ProcessParagraphData ( const TQString &paraText,
72 const LayoutData& layout, const ValueListFormatData &paraFormatDataList);
73 TQString formatTextParagraph(const TQString& strText,
74 const FormatData& formatOrigin, const FormatData& format);
75 TQString makeTable(const FrameAnchor& anchor);
76 bool convertUnknownPicture(const TQString& strName, const TQString& extension, TQByteArray& image);
77 TQString makeImage(const FrameAnchor& anchor);
78 void writeFontData(void);
79 void writeColorData(void);
80 void writeStyleData(void);
81 TQString textFormatToRtf(const TextFormatting& formatOrigin,
82 const TextFormatting& formatData, const bool force);
83 TQString layoutToRtf(const LayoutData& layoutOrigin,
84 const LayoutData& layout, const bool force);
85 TQString lookupFont(const TQString& markup, const TQString& fontName);
86 TQString lookupColor(const TQString& markup, const TQColor& color);
87 TQString lookupStyle(const TQString& styleName, LayoutData& returnLayout);
88 TQString writeRow(const TQString& textCellHeader, const TQString& rowText, const FrameData& frame);
89 TQString writeBorder(const char whichBorder, const int borderWidth, const TQColor& color);
90protected:
91 TQIODevice* m_ioDevice;
92 TQTextStream* m_streamOut;
93 TQString m_eol;
94 TQString m_textDocInfo;
95 TQString m_textPage;
96 TQString m_textBody;
97 TQString m_fileName;
98 TQValueStack<ListInfo> m_listStack;
99 TQStringList m_fontList;
100 TQValueList<TQColor> m_colorList;
101 TQValueList<LayoutData> m_styleList;
102 bool m_inTable;
103 bool m_paperOrientation;
104 double m_paperWidth, m_paperHeight;
105 double m_paperMarginTop, m_paperMarginLeft, m_paperMarginBottom, m_paperMarginRight;
106 TQString m_prefix;
107 int m_startPageNumber;
108};
109
110#endif /* EXPORTFILTERFULLPOWER_H */
This is basically <FRAMESET> tag.
For <FRAME> Tag.
Base worker of the libexport system.
virtual bool doFullPaperBorders(const double top, const double left, const double bottom, const double right)
Like KWord's <PAPERBORDERS>
virtual bool doFullPaperFormat(const int format, const double width, const double height, const int orientation)
Like AbiWord's <papersize>
virtual bool doFullDefineStyle(LayoutData &layout)
Defines a single style.
Paragraph layout.
TextFormatting is a container for data retrieved from the <FORMAT> tag and its subtags to be used in ...
see <VARIABLESETTINGS> in the KWord DTD