Qt的打印机Demo

来源:互联网 发布:数据可视化实战pdf下载 编辑:程序博客网 时间:2024/05/16 10:14

先看看小Demo的效果:


总结:

1、QPrinterInfo类(提供了简单的打印机的信息,比如打印机的个数、各个打印机的名字、默认打印机名字等等)

代码:

    QPrinterInfo info;

    QString name = info.defaultPrinterName(); // 默认打印机名字

    QStringList list = info.availablePrinterNames(); // 各个打印机名字

    QPrinter::DuplexMode mode = info.defaultDuplexMode();// 返回此打印机的默认双面打印模式。

    enum DuplexMode {
        DuplexNone = 0,
        DuplexAuto,
        DuplexLongSide,
        DuplexShortSide
    };


2、QPageSetupDialog类(打印机页面设置)


代码:

    QPrinter printer;
    QPageSetupDialog* setup = new QPageSetupDialog(&printer, this);
    if (setup->exec() == QDialog::Accepted) {
        printer.setOrientation(QPrinter::Landscape);
    } else {
        printer.setOrientation(QPrinter::Portrait);
    }


3、QPrintDialog打印机选择类,它也可以通过点击-首选项-然后选择-页面设置,就可以包含QPageSetupDialog类


代码:    

    QPrinter printer;
    QPrintDialog printDialog(&printer, this);
    if (printDialog.exec()) {
        ui->textEdit->print(&printer);
    }


4、QPrintPreviewDialog打印预览类、包含以上所有类的内容。


代码:

    QPrinter printer;
    QPrintPreviewDialog preview(&printer, this);// 创建打印预览对话框
    connect(&preview, &QPrintPreviewDialog::paintRequested, [=](QPrinter *printer) {
        ui->textEdit->print(printer);
    }); // 当要生成预览页面时,发射paintRequested()信号
    preview.exec();