Сделал так:
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 - ограничение на количество страниц?