Qt/C++ generator dokumentów

0

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ć:

tsGXC.png

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();
}
0

Do tej pory to ty nawet zalążka nie masz.
Długa droga prze tobą.

Poczytaj dokumentację klas: QTextDocument, QTextCursor, QTextBlock, QTextLayout.
Chociaż z drugiej strony: może dla ciebie za duża ta armata.

1 użytkowników online, w tym zalogowanych: 0, gości: 1