一步步学Qt,第八天-使用QPrinter打印多页文档

来源:互联网 发布:秦风拍牌软件好用吗 编辑:程序博客网 时间:2024/04/29 04:12

一步步学Qt,第八天-使用QPrinter打印多页文档

使用文档打印,在很多的地方都有应用,办公室里可能需要用此来将编辑好的文档打印出来。当然遇到多页文档的打印时,就程序设计来说,就设计到分页的问题,怎么样的分页才是合理的呢。Qt中使用QTextDocument的的方式可以自动的实现文档的自动分页。具体看code:

#include "dialog.h"#include "ui_dialog.h"//#include <QDebug>//#include <QPainter>//#include <QPoint>//#include <QPrintDialog>//#include <QPrinter>#include <string>using namespace std;Dialog::Dialog(QWidget *parent) :    QDialog(parent),    ui(new Ui::Dialog){    ui->setupUi(this);    ui->widget->size();    qDebug() << ui->widget->size().width()<<ui->widget->height()<<this->width();}Dialog::~Dialog(){    delete ui;}void Dialog::paintEvent(QPaintEvent *e){/*    QPainter painter(this);    QPoint pointer(ui->widget->size().width()-150,ui->widget->size().height());    QFont font("Times", 100, QFont::Bold);    font.setItalic(true);    painter.setFont(font);    QPen pen(Qt::red);    painter.setPen(pen);    painter.drawText(pointer,tr("hello"));    this->update();*/}void Dialog::on_pushButton_clicked(){    QPrinter printer(QPrinter::PrinterResolution);    QPrintDialog printDialog(&printer,this);    if (printDialog.exec()){        QTextDocument textdocument;        QString title="Title";        QString body="this is the content";        QString str = "<body><center><h1>"+title+"</h1></center>"+body+"</body>";        textdocument.setHtml(str);        textdocument.print(&printer);    }}

运行效果:


打印效果:


使用的html的一个标签来控制文档的格式



原创粉丝点击