QT += printsupport
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPrintDialog>
#include <QTextEdit>
#include <QTextDocument>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();//保存
void on_pushButton_2_clicked();//打印
private:
Ui::MainWindow *ui;
QTextDocument textDocument;
};
#endif // MAINWINDOW_Hmainwindow.cpp:
#include "ui_mainwindow.h"
#include <QTextDocument>
#include <QtPrintSupport/QPrinter>
#include <QPainter>
#include <QTextBrowser>
#include <QDebug>
#include <QMessageBox>
#include <QPrinter>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
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(5);
painter.setPen(pen);
int paperWidth = printer.width();
int paperHeigth = printer.height();
//qDebug("width:%d",paperWidth);
//qDebug("height:%d",paperHeigth);
painter.drawText( QRect(QPoint( 0,0),QPoint(243,100)),"name: "+ui->name->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 243,0),QPoint(486,100)),"age: "+ui->age->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 486,0),QPoint(729,100)),"sex: "+ui->sex->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 0,100),QPoint(243,200)),"origo: "+ui->origo->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 243,100),QPoint(486,200)),"education: "+ui->education->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 486,100),QPoint(729,200)),"major: "+ui->major->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 0,200),QPoint(365,300)),"phone: "+ui->phone->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 365,200),QPoint(729,300)),"email: "+ui->email->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 0,300),QPoint(729,400)),"address: "+ui->address->toPlainText (),textOption);
painter.drawText( QRect(QPoint( 0,400),QPoint(729,500)),"evalution: "+ui->evalution->toPlainText (),textOption);
textDocument.print(&printer);
QMessageBox::about(NULL,"about","pdf has saved");
}
void MainWindow::on_pushButton_2_clicked()
{
QPrinter printer;
if(QPrintDialog(&printer).exec() == QDialog::Accepted){
textDocument.print(&printer);
}
}