Сделал так:
void MainWindow::on_pushButton_clicked()
{
QPrinter printer(QPrinter::HighResolution);
printer.setOrientation(QPrinter::Portrait);
printer.setPaperSize(QPrinter::A4);
printer.setFullPage(TRUE);
QPrintPreviewWidget *preview = new QPrintPreviewWidget(&printer, this);
preview->setWindowFlags(Qt::Window | Qt::WindowTitleHint);
preview->setWindowState(Qt::WindowMaximized);
preview->setAttribute(Qt::WA_DeleteOnClose);
preview->setWindowTitle("kdfhgdkmhgkd");
connect(preview, SIGNAL(paintRequested(QPrinter *)), SLOT(printDocument(QPrinter *)));
preview->showMaximized();
}
void MainWindow::printDocument(QPrinter* printer) //Print Doc
{
QPainter painter;
painter.begin(printer);
for(int j=0; j<2; j++)
{
for(int i=1; i<=30; i++)
painter.drawText(1200, 200*i, QString("kjsahsa - %1; kjhgkdjf - %2").arg(i+j).arg(i*j));
painter.drawText(printer->pageRect().width()/2-50, printer->pageRect().height()-100,
QString("PAGE - %1").arg(j));
printer->newPage();
}
painter.end();
}
Так работает, но если в цикле ставлю
j<3 зависает приложение полностью. В QPrintPreviewWidget - ограничение на количество страниц?