1 /* 2 For general Scribus (>=1.3.2) copyright and licensing information please refer 3 to the COPYING file provided with the program. Following this notice may exist 4 a copyright and/or license notice that predates the release of Scribus 1.3.2 5 for which a new license (GPL+exception) is in place. 6 */ 7 /*************************************************************************** 8 ------------------- 9 begin : Sat Okt 03 2015 10 copyright : (C) 2015 by Franz Schmid 11 email : Franz.Schmid@altmuehlnet.de 12 ***************************************************************************/ 13 #ifndef SLADOCUMENTRTFOUTPUT_H 14 #define SLADOCUMENTRTFOUTPUT_H 15 16 #include <QTextCodec> 17 #include "AbstractRtfOutput.h" 18 #include "styles/charstyle.h" 19 #include "styles/paragraphstyle.h" 20 21 class QImage; 22 class QTextImageFormat; 23 class QString; 24 class QColor; 25 class PageItem; 26 class ScribusDoc; 27 class ParagraphStyle; 28 class CharStyle; 29 30 namespace RtfReader 31 { 32 class SlaDocumentRtfOutput : public AbstractRtfOutput 33 { 34 public: 35 explicit SlaDocumentRtfOutput(PageItem* ite, ScribusDoc* doc, bool prefix); 36 virtual ~SlaDocumentRtfOutput(); 37 virtual void startGroup(); 38 virtual void endGroup(); 39 virtual void setEncoding(const int enc); 40 virtual void appendText(const QByteArray &text); 41 virtual void appendUnicodeText(const QString &text); 42 virtual void insertPar(); 43 virtual void insertTab(); 44 virtual void insertLeftQuote(); 45 virtual void insertRightQuote(); 46 virtual void insertLeftDoubleQuote(); 47 virtual void insertRightDoubleQuote(); 48 virtual void insertEnDash(); 49 virtual void insertEmDash(); 50 virtual void insertEnSpace(); 51 virtual void insertEmSpace(); 52 virtual void insertBullet(); 53 virtual void insertNewLine(); 54 virtual void setFontItalic(const int value); 55 virtual void setFontBold(const int value); 56 virtual void setFontUnderline(const int value); 57 virtual void setFontWordUnderline(const int value); 58 virtual void setFontOutline(const int value); 59 virtual void setFontShadow(const int value); 60 virtual void setFontSmallCaps(const int value); 61 virtual void setFontCaps(const int value); 62 virtual void setFontStrikeOut(const int value); 63 virtual void setFontScaleH(const int value); 64 virtual void setFontOffset(const int value); 65 virtual void setFontStretch(const int value); 66 virtual void setFontStretchTw(const int value); 67 virtual void setFontPointSize(const int pointSize); 68 virtual void setFontLineSpacing(const int value); 69 virtual void setForegroundColour(const int colourIndex); 70 virtual void setHighlightColour(const int colourIndex); 71 virtual void setParagraphPatternBackgroundColour(const int colourIndex); 72 virtual void setCharacterPatternBackgroundColour(const int colourIndex); 73 virtual void setFont(const int fontIndex); 74 virtual void setDefaultFont(const int fontIndex); 75 virtual void setFontSuperscript(); 76 virtual void setFontSubscript(); 77 virtual void setTextDirectionLeftToRight(); 78 virtual void setTextDirectionRightToLeft(); 79 virtual void appendToColourTable(const QColor &colour); 80 virtual void insertFontTableEntry(FontTableEntry fontTableEntry, quint32 fontTableIndex); 81 virtual void insertStyleSheetTableEntry(quint32 stylesheetTableIndex, const ParagraphStyle& stylesheetTableEntry); 82 virtual void resolveStyleSheetParents(QHash<quint32, int> &parentSet); 83 virtual void useStyleSheetTableEntry(const int styleIndex); 84 virtual void resetParagraphFormat(); 85 virtual void resetCharacterProperties(); 86 virtual void setParagraphAlignmentLeft(); 87 virtual void setParagraphAlignmentCentred(); 88 virtual void setParagraphAlignmentJustified(); 89 virtual void setParagraphAlignmentRight(); 90 virtual void setFirstLineIndent(const int twips); 91 virtual void setLeftIndent(const int twips); 92 virtual void setRightIndent(const int twips); 93 virtual void createImage(const QByteArray &image, int width, int height, int type); 94 virtual void setPageHeight(const int pageHeight); 95 virtual void setPageWidth(const int pageWidth); 96 virtual void setSpaceBefore(const int twips); 97 virtual void setSpaceAfter(const int twips); 98 virtual void keepWithNext(); 99 virtual void setDropCapsLines(const int value); 100 virtual void setDropCaps(); 101 virtual void addTabStop(const int value, const int type); 102 QString getFontName(const QString& name); 103 double pixelsFromTwips(const int twips); getCurrentCodec()104 virtual QTextCodec *getCurrentCodec() { return m_codec; } 105 private: 106 PageItem* m_item; 107 ScribusDoc* m_Doc; 108 QTextCodec *m_codec; 109 QStack<ParagraphStyle> m_textStyle; 110 QStack<CharStyle> m_textCharStyle; 111 QList<QString> m_colourTable; 112 QHash<int, FontTableEntry> m_fontTable; 113 QHash<int, FontTableEntry> m_fontTableReal; 114 QHash<int, ParagraphStyle> m_stylesTable; 115 QList<QByteArray> m_codecList; 116 bool m_keepn; 117 bool m_isBold; 118 bool m_isItalic; 119 bool m_prefixName; 120 }; 121 } 122 #endif // SLADOCUMENTRTFOUTPUT_H 123