-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpdfreport.h
80 lines (66 loc) · 2.36 KB
/
pdfreport.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#ifndef PDFREPORT_H
#define PDFREPORT_H
#include <QLineF>
#include <QRectF>
#include <QMarginsF>
#include <QPainter>
#include <QDateTime>
#include <QObject>
#include <QList>
#include <QLabel>
#include <QDebug>
#include <QDir>
#include <QPdfWriter>
#include "imagecontent.h"
#include "textcontent.h"
#include "tablepainter.h"
#include "chartpainter.h"
class PdfReport : public QObject
{
Q_OBJECT
Q_PROPERTY(QMarginsF pageMargins READ pageMargins WRITE setPageMargins NOTIFY pageMarginsChanged)
Q_PROPERTY(QString fileName READ fileName WRITE setFileName NOTIFY fileNameChanged)
public:
explicit PdfReport(QObject *parent = nullptr);
explicit PdfReport(QString path);
const QMarginsF &pageMargins() const;
void setPageMargins(const QMarginsF &newPageMargins);
const QString &fileName() const;
void setFileName(const QString &newFileName);
void exportPdf(QVariantMap header, QVariantList allData);
private:
QPdfWriter* _writer;
QPainter _painter;
qreal _spaceUsedPage = 0.0;
qreal _spacing = 0;
qreal _painterWidth = 0;
qreal _painterHeight = 0;
qreal _endHeight = 0;
qreal _remainingSpace = 0;
QRectF _rect;
QMarginsF _pageMargins = QMarginsF(10, 10, 10, 10);
QString _fileName;
void _changeLineWidth(qreal newLineWidth);
void _chageLineColor(QColor newColor);
void _getHeader(QVariantMap header);
void _getParameterTableHeader(QString indexTest);
void _getParameterTableLine(QVariantMap map, bool withColon = true);
void _getParametersTable(QString indexTest, QVariantMap ventilatorParameters) ;
void _getResultsTableLine(QStringList resultsData, QFont font = QFont());
void _getResultsTable(QVariantList testResults);
void _getChart(QString title, QVariantList testData);
void _getObservation(QString observations);
TablePainter _getSignatureField();
TablePainter _getFooter();
void _addElement(const AbstractPainter &element, qreal height, qreal width);
void _addEnd(bool withSignature = false);
void _addStart();
void _addSpacing(int spacing = -1, bool checkRemainingSpace = true);
void _checkAddElement(const AbstractPainter &element, qreal height, qreal width = 0);
QStringList _getResultsData(QVariantMap map);
qreal getRemainingSpace();
signals:
void pageMarginsChanged();
void fileNameChanged();
};
#endif // PDFREPORT_H