Qt进行小票打印

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();

        }

    }

}


你可能感兴趣的:(html,qt)