#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QTextDocument>
#include <QtPrintSupport/QPrinter>
#include <QPainter>
#include <QPen>
#include<QTextBrowser>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(ui->pushButton,QPushButton::clicked,this,MainWindow::exportSlot);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::exportSlot()
{
QTextDocument textDocument;
QPrinter printer(QPrinter::ScreenResolution);
printer.setPaperSize(QPrinter::A4);
printer.setPageMargins(30,30,30,30,QPrinter::DevicePixel);
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(QString("Mytest") + ".pdf");
QPainter painter( &printer );
QFont font;
font.setPixelSize(15);
painter.setFont(font);
QTextOption textOption( Qt::AlignCenter);
QPen pen;
pen.setColor(Qt::black);
pen.setWidth(1);
painter.setPen(pen);
int paperWidth = printer.width();
int paperHeigth = printer.height();
painter.drawText( QRect(QPoint( 30,30),QPoint(paperWidth - 30,paperHeigth- 20)),ui->m_pTextEdit->toPlainText (),textOption);
textDocument.print(&printer);
}
需要在工程中 Qt+=QtPrintSypport;效果如下:
然后会在exe目录下生成一个pdf文档,打开就是这样: