00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00030
00031 #ifndef TEXTPRINTER_H
00032 #define TEXTPRINTER_H
00033
00034 #include <QObject>
00035 #include <QPrinter>
00036
00037 class QTextDocument;
00038 class QWidget;
00039
00049
00050 class TextPrinter : public QObject
00051 {
00052 Q_OBJECT
00053 public:
00055 explicit TextPrinter(QObject *parent=0);
00057 ~TextPrinter();
00058
00060 void print(const QTextDocument *document,
00061 const QString &caption=QString());
00063 void exportPdf(const QTextDocument *document,
00064 const QString &caption=QString(),
00065 const QString &filename=QString());
00067 void preview(const QTextDocument *document,
00068 const QString &caption=QString());
00069
00071 QPrinter::PageSize pageSize() const;
00073 void setPageSize(QPrinter::PageSize size);
00075 QPrinter::Orientation orientation() const;
00077 void setOrientation(QPrinter::Orientation orientation);
00078
00080 double leftMargin() const;
00082 void setLeftMargin(double margin);
00084 double rightMargin() const;
00086 void setRightMargin(double margin);
00088 double topMargin() const;
00090 void setTopMargin(double margin);
00092 double bottomMargin() const;
00094 void setBottomMargin(double margin);
00096 void setMargins(double margin);
00097
00099 double spacing() const;
00101 void setSpacing(double spacing);
00102
00104 double headerSize() const;
00106 void setHeaderSize(double size);
00108 double headerRule() const;
00110 void setHeaderRule(double pointsize);
00112 const QString &headerText() const;
00114 void setHeaderText(const QString &text);
00115
00117 double footerSize() const;
00119 void setFooterSize(double size);
00121 double footerRule() const;
00123 void setFooterRule(double pointsize);
00125 const QString &footerText() const;
00127 void setFooterText(const QString &text);
00128
00130 const QString &dateFormat() const;
00132 void setDateFormat(const QString &format);
00133
00134 private:
00135
00136 TextPrinter(const TextPrinter&);
00137 TextPrinter &operator=(const TextPrinter&);
00138
00139
00140 QRectF paperRect(QPaintDevice *device);
00141
00142 QRectF contentRect(QPaintDevice *device);
00143 QRectF headerRect(QPaintDevice *device);
00144 QRectF footerRect(QPaintDevice *device);
00145
00146
00147 void paintPage(QPainter *painter,
00148 QTextDocument *document,
00149 int pagenum);
00150 private slots:
00151
00152 void print(QPrinter *printer);
00153
00154 private:
00155 QWidget *parent_;
00156 QPrinter *printer_;
00157
00158 QTextDocument *tempdoc_;
00159
00160 double leftmargin_;
00161 double rightmargin_;
00162 double topmargin_;
00163 double bottommargin_;
00164 double spacing_;
00165
00166 double headersize_;
00167 double headerrule_;
00168 QString headertext_;
00169 double footersize_;
00170 double footerrule_;
00171 QString footertext_;
00172
00173 QString dateformat_;
00174 };
00175
00176 #endif // TEXTPRINTER_H