Qt 批量打印图片

来源:互联网 发布:股市交易软件 编辑:程序博客网 时间:2024/06/06 00:59
Qt 调用打印机批量打印图片,输出为pdf;
void  showPrintDialog(const QStringList &paths) {    QPrinter printer;    printer.setOutputFormat(QPrinter::PdfFormat);    QPixmap img;    QPrintDialog* printDialog = new QPrintDialog(&printer, this);    printDialog->resize(400, 300);    m_printDialogVisible = true;    if (printDialog->exec() == QDialog::Accepted) {        QPainter painter(&printer);        QList<QString>::const_iterator i;        for(i = paths.begin(); i!= paths.end(); ++i){            if (!img.load(*i)) {                qDebug() << "img load failed" << *i;                continue;            }            if (img.width() > img.height())                printer.setPageOrientation(QPageLayout::Landscape);            else                printer.setPageOrientation(QPageLayout::Portrait);            QRect pageOriginRect = printer.pageRect();            QSize pageRect = QSize(pageOriginRect.width() - 8,                                   pageOriginRect.height() - 8);            img = img.scaled(pageRect, Qt::KeepAspectRatio, Qt::SmoothTransformation);            painter.drawPixmap(0, 0, img);            if (i != paths.end() - 1)                printer.newPage();        }        painter.end();        qDebug() << "print succeed!";        return;    }    QObject::connect(printDialog, &QPrintDialog::finished,  this, [=]{        printDialog->deleteLater();        m_printDialogVisible =  false;    });    qDebug() << "print failed!";}

0 0
原创粉丝点击