Qt进行小票打印

本文介绍了一个使用Qt框架实现的打印对话框功能。该对话框能够设置HTML字符串内容,并通过QPrinter和QTextDocument组件来完成打印任务。此外,还支持调整字体样式、设置页面大小及重复打印多页。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QString htmlString = QString("<html>") + str1 + str2 +str3 + finerysInfo + str5 + str6

                  + QString("<br>%1<br>%2").arg(separateString) + QString("</html>");

    printString(htmlString);


    accept();

}


void PrintDialog::printString(const QString &htmlString) {

    qDebug() << htmlString;


    QPrinter p;

    QTextDocument doc;

    //doc.setHtml(htmlString);


    QFont font = doc.defaultFont();

    font.setBold(true);

    font.setPointSize(font.pointSize() + 1);

    doc.setDefaultFont(font);


    QSizeF s = QSizeF(p.logicalDpiX() * (58 / 25.4), p.logicalDpiY() * (297 / 25.4));

    doc.setPageSize(s);


    p.setOutputFormat(QPrinter::NativeFormat);


    // N

    int pageCount = ui->pageCountLineEdit->text().toInt();

    for (int i = 1; i <= pageCount; ++i) {

        // 如果只打印一份,即只打印店

        if (1 == pageCount) {

            if (Receive_Finery == operationType) {

                doc.setHtml(htmlString.arg(tr("")));

            } else {

                doc.setHtml(htmlString.arg(tr("户联")));

            }

        } else {

            if (i % 2 != 0) {

                doc.setHtml(htmlString.arg(tr("户联")));

            } else {

                doc.setHtml(htmlString.arg(tr("")));

            }

        }

        doc.print(&p);


        if (i < pageCount) {

            p.newPage();

        }

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值