头文件
#include <QMessageBox>
#include <QDebug>
#include <QPrinter>
#include <QPrintDialog>
#include <QPrintPreviewDialog>
#include <QPainter>
#include <QFileDialog>
#include <QFileInfo>
#include <QPageSetupDialog>
打印文本
// 创建打印机对象
QPrinter printer;
// 创建打印对话框
QPrintDialog dlg(&printer, this);
//如果编辑器中有选中区域,则打印选中区域
dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);
//页面相关设置
printer.setPaperSize(QPrinter::Custom);//自定义大小
printer.setPageSizeMM(QSizeF(80,15));//自定义纸张尺寸
// 如果在对话框中按下了打印按钮,则执行打印操作
if (dlg.exec() == QDialog::Accepted) {
QPainter painter;//创建画笔
painter.begin(&printer);//绘制到打印机上
painter.drawText(1,20,ui->lineEdit->text());//绘制文本,其他的类似
painter.end();
}
打印PDF
QString fileName = QFileDialog::getSaveFileName(this, tr("导出PDF文件"),
QString(), "*.pdf");
if (!fileName.isEmpty()) {
// 如果文件后缀为空,则默认使用.pdf
if (QFileInfo(fileName).suffix().isEmpty())
fileName.append(".pdf");
QPrinter printer;
// 指定输出格式为pdf
printer.setOutputFormat(QPrinter::PdfFormat);
printer.setOutputFileName(fileName);
QPainter painter;
painter.begin(&printer);
painter.drawText(1,20,ui->lineEdit->text());
painter.end();
}
打印预览
QPrinter printer;
// 创建打印预览对话框
QPrintPreviewDialog preview(&printer, this);
//页面相关设置
printer.setPaperSize(QPrinter::Custom);//自定义大小
//printer.setPaperSize(QSizeF(size.height(),size.width()),QPrinter::Point);
printer.setPageSizeMM(QSizeF(85,15));
// 当要生成预览页面时,发射paintRequested()信号
connect(&preview, SIGNAL(paintRequested(QPrinter*)),
this,SLOT(printPreview(QPrinter*)));
preview.exec();
void MainWindow::printPreview(QPrinter *printer)
{
QPainter painter;
QFont font;
painter.begin(printer);
font.setFamily("Microsoft YaHei");
font.setPointSize(15);
font.setItalic(true);
painter.setFont(font);
painter.drawText(1,35,ui->lineEdit->text());
painter.end();
//ui->textEdit->print(printer);
}
更多推荐
QT 打印机打印特殊尺寸
发布评论