1、生成PDF文件

void MainWindow::createPdf()
{
    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);
        ui->textEdit->print(&printer);
    }
}

2、页面设置

void MainWindow::setUpPage()
{
    QPrinter printer;
    QPageSetupDialog pageSetUpdlg(&printer, this);
    if (pageSetUpdlg.exec() == QDialog::Accepted)
    {
        printer.setOrientation(QPrinter::Landscape);
    }
    else
    {
        printer.setOrientation(QPrinter::Portrait);
    }
}

3、打印预览

void MainWindow::doPrintPreview()
{
    QPrinter printer;
    // 创建打印预览对话框
    QPrintPreviewDialog preview(&printer, this);
    // 当要生成预览页面时,发射paintRequested()信号
    connect(&preview, SIGNAL(paintRequested(QPrinter*)),
                  this,SLOT(printPreview(QPrinter*)));
    preview.exec();
}

4、设置打印

void MainWindow::doPrint()
{
    // 创建打印机对象
    QPrinter printer;
    // 创建打印对话框
    QString printerName = printer.printerName();
    if( printerName.size() == 0)
        return;
    QPrintDialog dlg(&printer, this);
    //如果编辑器中有选中区域,则打印选中区域
    if (ui->textEdit->textCursor().hasSelection())
        dlg.addEnabledOption(QAbstractPrintDialog::PrintSelection);
    // 如果在对话框中按下了打印按钮,则执行打印操作
    if (dlg.exec() == QDialog::Accepted)
    {
       //ui->textEdit->print(&printer);
       // print the existing document by absoult path
        //printFile("D:/1.doc");
        QTextDocument doc;
        //doc.setHtml(htmlString);
        QFont font = doc.defaultFont();
        font.setBold(true);
        font.setPointSize(10);
        doc.setDefaultFont(font);
        QSizeF s = QSizeF(printer.logicalDpiX() * (58 / 25.4), printer.logicalDpiY() * (297 / 25.4));
        //doc.setPageSize(s);
//        printer.setPageSize(s);
        printer.setOutputFormat(QPrinter::NativeFormat);
        doc.setHtml("店联");
        doc.print(&printer);
    }
}

5、设置打印字体大小,内容

void MainWindow::PrintBtn()
{
    QPrinter printer;
    QTextDocument doc;
    QFont font = doc.defaultFont();
    font.setBold(true);
    font.setPointSize(5);   //设置字体大小
    doc.setDefaultFont(font);
    QSizeF s = QSizeF(printer.logicalDpiX() * (80/70),  //58 / 25.4
                      printer.logicalDpiY() * (200/2));
    doc.setPageSize(s);
//    printer.setPageSize(s);
    printer.setOutputFormat(QPrinter::NativeFormat);
    doc.setPlainText(QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss"));
    doc.print(&printer);
    doc.setPlainText("yuiftyi\n打印测试\n\n打印结束!");
    doc.print(&printer);
}

Qt之热敏打印机设置相关推荐

  1. Qt for Mac 设置软件开机自启动

    在Qt程序中设置Mac软件的开机自启动,通过调用object-c代码来实现. 目前只测试过在非沙盒的环境下设置开机自启动,沙盒环境下没有测试过(设置方式不同,会比较复杂) 新建类,定义接口 void  ...

  2. qt 设置串口起始位_【IT专家】Qt:如何设置主窗口的初始位置?

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 Qt :如何设置主窗口的初始位置? Qt :如何设置主窗口的初始位置? [ 英 ]Qt: how to set main window's ini ...

  3. Qt利用setStyleSheet设置样式

    Qt利用setStyleSheet设置样式 Qt中设置按钮或QWidget的外观是,可以使用QT Style Sheets来进行设置,非常方便. setStyleSheet("font: b ...

  4. Qt之QWidget设置窗口背景图片的几种方法

    Qt之QWidget设置窗口背景图片的几种方法 几种方法如下: 1.使用调色板QPalette来设置图片 QPalette pal =this->palette(); pal.setBrush( ...

  5. qt designer stylesheet 设置字体加粗无效

    估计是qt designer的bug,qt designer stylesheet 设置字体加粗无效. 解决办法是在右侧的属性窗口对字体进行加粗设置,注意需要将stylesheet里面对字体的加粗设置 ...

  6. QT QTabWidget Tabar设置图标

    QT QTabWidget Tabar设置图标的三种方式;多个tab标签设置图标 一.通过setStyleSheet样式表设置Tabar图标 二.通过setTabIcon函数设置图标 三.通过修改.u ...

  7. QT按钮被设置未checkable之后被选中Checked时很多网格小白点的问题及解决方法

    QT按钮被设置未checkable之后被选中Checked时很多网格小白点的问题及解决方法 qt的按钮被设置为checkable之后,同时给按钮设置样式表之后,如果按钮被checked,即使设置了按下 ...

  8. Qt之布局设置setLayout详解-源码剖析(下)

    一.简述 大家好,我是前行中的小猪,今天呢给大家继续上一篇Qt之布局设置setLayout详解(上)之后的内容,再给大家进行一下拓展. 1.1 setLayout源码剖析 上篇我们说到如何清空部件上的 ...

  9. TI PDK3.0 qt 交叉编译环境设置

    上午剑锋给的方法,成功在qtcreator上面加入TI官方的qmake以及他的交叉编译器. 1. 步骤如下:1. 我假设TI PDK3.0 安装目录为顶层目录.2. 进入linux-devkit 目录 ...

最新文章

  1. painticon java_新人,关于java的 paintIcon()方法
  2. 表面上在帮女朋友拍照,其实镜头瞄准的是......
  3. php 501解决办法,PHP 使用错误处理解析
  4. 【干货】华为组织成长的动力机制.pdf(附下载链接)
  5. Android Studio实现一个智能聊天机器人
  6. 四级数据中心认证机构更新标准全新上线
  7. mysql中加号变成空格了_从数据库中读取字符串时其中的空格变成加号
  8. simotion基本功能手册_深入浅出西门子运动控制器——SIMOTION实用手册(1CD)
  9. excel两个表格数据对比_Excel中两个表格对比,找出不同数据
  10. 机器学习sklearn基础(1):多元逻辑回归分类器 (pcolormesh说明及绘图)
  11. graphpad做柱状图,GraphPad软件做图表,就这么简单!
  12. 【XJTUSE计算机图形学】第三章 几何造型技术(3)——B样条曲线与曲面
  13. Word中如何制作红头文件?学会技巧提高工作效率
  14. java 拼音首字母_java获取中文拼音首字母的实例
  15. EdgeX(1)研究 开源边缘计算框架 EdgeX Foundry
  16. 隐马尔科夫模型java实现
  17. 线束音视频传输连接器FAKRA与HSD区别?
  18. 价值链-名词解释01
  19. SiTime硅晶振和石英晶振的冲击和振动性能比较
  20. office 2016 安装

热门文章

  1. 微信翻译,快把上海老外搞疯了
  2. 绝地求生手游qq和微信不在一个服务器,绝地求生刺激战场微信和qq好友能一起玩吗 qq和微信服务器互通吗...
  3. 宇信科技有限公司面试题目
  4. linux 内核配置简介
  5. 信息化计算机学什么作用,信息化教学在计算机技术课程的应用
  6. 【最新最详细】SQL Server 2019 安装教程{超详细 附网盘下载链接}
  7. 2020-09-25
  8. R语言第十讲 逻辑斯蒂回归
  9. 【云原生之Docker实战】使用Docker部署File Manager文件管理系统
  10. 小白程序员的学习路线