需要借用它生成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*)));