Qt之热敏打印机设置

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



猜你喜欢

转载自blog.csdn.net/u014252478/article/details/80461452