Uczę się Qt i piszę aplikację, w której chcę generować dokumenty. Użytkownik podaje mi w dialogu co ma się w dokumencie znaleźć, a ja na tej podstawie mam wygenerować dokument. Mam jednak problem z tym, jak przesunąć painter żeby drukował w odpowiednich miejscach tekst, a także z tym, jak radzić sobie z długim tekstem, przejściem na nową stronę. Może użyć zupełnie czegoś innego niż używam?
Dokument, który chcę wygenerować:
To, co do tej pory mam:
#include <QApplication>
#include <QtCore>
#include <QPrinter>
#include <QPdfWriter>
#include <QPainter>
QString currDate()
{
QDate date = QDate::currentDate();
return date.toString("dd.MM.yyyy");
}
void pdf(QString filename)
{
QPdfWriter writer(filename);
writer.setPageSize(QPagedPaintDevice::A4);
writer.setPageMargins(QMargins(30, 30, 30, 30));
QPainter painter(&writer);
painter.setPen(Qt::black);
painter.setFont(QFont("Times", 10));
QRect r = painter.viewport();
QString citydate = "City, ";
citydate += currDate();
painter.drawText(r, Qt::AlignRight, citydate);
QString sender = "COMPANY XYZ\n";
sender += "Random Street 12/314A\n";
sender += "123-1232 City\n";
painter.drawText(r, Qt::AlignLeft, sender);
painter.end();
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
pdf("example1.pdf");
return a.exec();
}