Qt的打印机使用设置

最近项目要加一个打印设置,查了下Qt打印机的调用方法,主要用到下面的类QPrinter, QPrintDialog;

初步的打印机调用demo:

  ps: 首先要在qt的.pro文件中添加打印机支持:

QT += printsupport

 
 QPrinter printer(QPrinter::ScreenResolution);
    QPrintDialog* printDialog = new QPrintDialog(&printer, 0);
    if (printDialog->exec() == QDialog::Accepted) {
        QImage img(path);
        QPainter painter(&printer);
        painter.drawImage(0, 0, img);
        painter.end();
    }
    delete printDialog

----------------------------------------------------------------------

上个打印机对话框截图:


QPrinter类的文档:

QPrinter类是用来在打印机上进行绘制的一个绘制设备。

这个设备代表了多页的打印输出,它和其他的绘制设备类如QWidget和QPixmap的使用方式类似。额外的用来管理特定的设备的特性也有提供,如方向,分辨率,遍历文档的页面在文档生成之后等。

在Windows或者OS X上面直接向打印机打印,QPrinter使用内置的打印机驱动。在X11上面,QPrinter一般使用Common Unix Printing System (CUPS) 来发送pdf 的输出给打印机。也可以换一种方式,调用 printProgram() 可以使用特定的命令或者设施替代系统默认打印方式。

注意一些设置参数:

  • 纸张大小(默认的是A4)
  • 分辨率
看看这些参数是否在打印机上是有效的设置,你可以通过QPrinter::isValid()来判断。
QPrinter 支持很多参数的设置,大多数的可以通过print dialog来进行修改。一般QPrinter传递这个参数给底层的QPrintEngine.
 最重要的参数有:
  • setOrientation() tells QPrinter which page orientation to use.
  • setPaperSize() tells QPrinter what paper size to expect from the printer.
  • setResolution() tells QPrinter what resolution you wish the printer to provide, in dots per inch (DPI).
  • setFullPage() tells QPrinter whether you want to deal with the full page or just with the part the printer can draw on.
  • setCopyCount() tells QPrinter how many copies of the document it should print.
大部分的参数只能在打印机被调用之前修改,因为打印机正常打印的时候,你可能半路去修改这些参数,更多的用户参数设置和应用需要相应设置的参见:QAbstractPrintDialog的文档。

当QPainter::begin()被调用,QPrinter会准备新的预打印也。你需要调用newPage()在QPainter::begin()之后,如果你需要在打印前插入空白页。同样的,在上一页文档打印完时调用newPage()将会返回一个追加到文档后面的空白页。

如果你想终止打印,abort()将会尽最大的可能停止打印。它有可能会取消以完成的或完成部分的打印工作。
自从QPrint可以向任意的QPrintEngine子类使用打印,因此通过子类化QPrintEngine和实现它的接口来扩展打印支持,使其能够覆盖新的类型的打印子系统成为可能。
---------------------------------------------------------
QPrintDialog这个类就是用来设置打印机参数的对话框。
这个对话框允许用户改变文档相关的设置,例如纸张的大小和方向,打印的色彩(黑白或彩色),打印范围,打印份数等。
控件还提供了用户选择可用的打印机,包括任何配置的网络打印机。

  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值