您的位置:首页 > 编程语言 > Qt开发

QT调用打印机的实现

2016-06-25 22:23 387 查看
在QT中,实现打印功能,我们可以通过调用QPrinter类来实现。(这里为pos58热敏打印机)

如下实例:

.h文件:

#include <QPrintDialog>
#include <QPrinter>
#include <QPrintPreviewDialog>
#include <QFileDialog>
#include <QPageSetupDialog>
<pre name="code" class="cpp">namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();

private slots:

void doPrint();//打印

private:
Ui::MainWindow *ui;
QSqlDatabase db;//数据库句柄
};


.cpp文件:

void MainWindow::doPrint()//打印
{
// 创建打印机对象
QPrinter printer;
// 创建打印对话框
QString printerName = printer.printerName();
if( printerName.size() == 0)
return;
<pre name="code" class="cpp">//QPrintDialog dlg(&printer, this);
if (dlg.exec() == QDialog::Accepted)
{
<pre name="code" class="cpp">QTextDocument doc;

//doc.setHtml(htmlString);
QFont font = doc.defaultFont();

//font.setBold(true);
font.setPointSize(3);
doc.setDefaultFont(font);
//打印尺寸
QSizeF s = QSizeF(printer.logicalDpiX() * (58 / 25.4), printer.logicalDpiY() * (297 / 25.4));
doc.setPageSize(s);
printer.setPageSizeMM(s);
printer.setOutputFormat(QPrinter::NativeFormat);
<pre name="code" class="cpp">doc.setHtml("hello");//打印hello

doc.print(&printer);
}


}




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: