头文件
#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 打印机打印特殊尺寸