Aus dem QPrintPreviewDialog nur eine Seite drucken.

Alles rund um die Programmierung mit Qt
Antworten
kea_
Beiträge: 1
Registriert: 22. Februar 2011 10:31

Aus dem QPrintPreviewDialog nur eine Seite drucken.

Beitrag von kea_ »

Hallo zusammen,
ich versuche aus einem QPrintPreviewDialog welches mehrere Seiten beinhaltet nur eine Seite auszudrucken (z.B. Seite 2).
Nur leider werden immer alle Seiten ausgedruckt.

Hier ist ein Code-Beispiel:

Code: Alles auswählen

void CPrintWorkout::print(){
    QPrinter printer(QPrinter::ScreenResolution);
    printer.setPageSize(QPrinter::A4);
	printer.setOrientation(QPrinter::Landscape);
    printer.setPageOrder(QPrinter::FirstPageFirst);

    QPrintPreviewDialog preview(&printer);
    connect(&preview, SIGNAL(paintRequested(QPrinter*)), SLOT(print(QPrinter*)));
    preview.resize(QSize(m_cfg->intValue("Print.Preview.Width", 300), m_cfg->intValue("Print.Preview.Height", 400)));
    preview.exec();

    QSize size = preview.size();
    m_cfg->setIntValue("Print.Preview.Width", size.width());
    m_cfg->setIntValue("Print.Preview.Height", size.height());
}


// ** SLOTS **

void CPrintWorkout::print(QPrinter *printer){
    QPainter painter;
    painter.begin(printer);

    QTextDocument doc;
    doc.setTextWidth(printer->pageRect().width());

    for(int i = 1; i <= 3; i++){
        doc.setHtml(QString::number(i) + ". Page");
        doc.drawContents(&painter);

        if(i < 3) printer->newPage();
    }

    painter.end();
}
Vielen Dank für eure Hilfe
kea_
Antworten