当前位置: 代码迷 >> QT开发 >> QPrinter打印类如何自定义纸张大小
  详细解决方案

QPrinter打印类如何自定义纸张大小

热度:21   发布时间:2016-04-25 03:48:15.0
QPrinter打印类怎么自定义纸张大小
需要借用它生成pdf文档,但是大小总是通过枚举去设置的。有个setPageSize(QPrinter::Custom)又不知道下一步该 怎么设置 。设置成Custom还是A4默认大小 的

------解决方案--------------------
引用:
我需要自定义的,导出的东西没有一定大小,随时会变的。最后一个是自定义,但是不知道怎么用。

先setPageSize(QPagePaintDevice::Custom);
再setPageSizeMM你自己想要的大小
------解决方案--------------------
我打印用的程序,可以参考一下
#include "Widget.hpp"
#include "ui_Widget.h"

#include <QPainter>
#include <QPrinter>
#include <QFile>
#include <QDebug>
#include <QRegExp>
#include <QTextDocument>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#include <QDateTime>
#include <QPageSetupDialog>

Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) {
    ui->setupUi(this);

    printer = new QPrinter();
    printer->setFullPage(true);
    printer->setOrientation(QPrinter::Portrait);
    printer->setOutputFormat(QPrinter::NativeFormat);

    connect(ui->printOrderButton, SIGNAL(clicked()), this, SLOT(printOrder()));
    connect(ui->printOrdersButton, SIGNAL(clicked()), this, SLOT(printOrders()));
}

Widget::~Widget() {
    delete ui;
}

void Widget::printOrder() {
    printer->setPaperSize(QPrinter::A6);

    // 没连打印机这个窗口弹不出来.
    //    QPageSetupDialog setupDialog(&printer, this);
    //    setupDialog.exec();

    //    qDebug() << printer.getPageMargins();

    // 打印预览.
    QPrintPreviewDialog preview(printer, this);
    connect(&preview, SIGNAL(paintRequested(QPrinter*)), this, SLOT(printOrder(QPrinter*)));
  相关解决方案