QT 打印机打印特殊尺寸

编程入门 行业动态 更新时间:2024-10-25 13:28:41

头文件

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

本文发布于:2023-06-14 01:49:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1424190.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:尺寸   打印机打印   QT

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!