主要是记录一下利用Qt 结合打印机(zebra, deli)打印相关条码或者label marker打印以及遇到问题。
项目pro ,pri文件中添加printsupport 模块支持
Qt += printsupport
此设备表示一系列打印输出页面,且使用方式几乎准确如同其它描绘设备,譬如 QWidget and QPixmap 。提供了一组额外函数来管理特定设备特征,譬如:取向和分辨率,及在生成文档时遍历文档页面。
在 Windows 或 macOS 上直接打印到打印机时, QPrinter 使用内置的打印机驱动程序。在 X11 上, QPrinter 使用 CUPS (公共 Unix 打印系统) 将 PDF 输出发送到打印机。或者,printProgram () 函数可用于指定要使用的命令或实用程序,而不是系统默认值。
请注意,在无效打印机上设置纸张大小和分辨率等参数是未定义的。在更改任何参数之前,您可以使用 QPrinter::isValid () 来验证这一点。
QPrinter 支持许多参数,其中大部分参数可以由最终用户通过打印对话框 进行更改。通常,QPrinter 将这些函数传递给底层 QPrintEngine 。
其中许多函数只能在实际打印开始之前(即在调用 QPainter::begin () 之前)调用。这通常是有道理的,因为例如,在打印进行到一半时,无法更改份数。还有一些设置是用户设置的(通过打印机对话框),应用程序应遵守这些设置。有关详细信息,请参见 QAbstractPrintDialog 的文档。
当 QPainter::begin () 被调用时,它所操作的 QPrinter 会为新页面做好准备,从而能够立即使用 QPainter 来绘制文档中的第一页。 绘制完第一页后,可以调用 newPage () 来请求新的空白页进行绘制,或者可以调用 QPainter::end () 来完成打印。第二页和所有后续页面都是在绘制之前使用对 newPage () 的调用来准备的。
文档中的第一页不需要在前面调用 **newPage ()。**如果您需要在打印文档的开头插入空白页,则只需在 QPainter::begin () 之后调用 newPage ()。同样,在绘制文档的最后一页后调用 newPage () 将导致在打印文档的末尾附加一个尾随空白页。
如果要中止打印作业, abort () 将尽力停止打印。它可能会取消整个作业或仅取消其中的一部分。
由于 QPrinter 可以打印到任何 QPrintEngine 子类, 可以通过子类化 QPrintEngine 并重新实现其接口来扩展打印支持以涵盖新型打印子系统.
QPrinter::ColorMode
常量 | 值 | 描述 |
---|---|---|
QPrinter::Color | 1 | 如果可用,则以彩色打印,否则以灰度打印。 |
QPrinter::GrayScale | 0 | 以灰度打印,即使在彩色打印机上也是如此。 |
QPrinter:: DuplexMode
常量 | 值 | 描述 |
---|---|---|
QPrinter::DuplexNone | 0 | 仅限单面(单面)打印。 |
QPrinter::DuplexAuto | 1 | 打印机的默认设置用于确定是否使用双面打印。 |
QPrinter::DuplexLongSide | 2 | 每张纸的两面都用于打印。在打印第二面之前,将纸张翻转到其最长的边缘 |
QPrinter::DuplexShortSide | 3 | 每张纸的两面都用于打印。在打印第二面之前,将纸张翻转到其最短的边缘 |
QPrinter:: Orientation
此枚举类型用于指定每个页面的方向
常量 | 值 | 描述 |
---|---|---|
QPrinter::Portrait | 0 | 页面的高度大于其宽度。 |
QPrinter::Landscape | 1 | 页面的宽度大于其高度。 |
此类型与 QPrinter::PaperSize() 和 QPrinter::setFullPage () 交互,以确定应用程序可用的页面的最终大小。
QPrinter::OutputFormat
OutputFormat 枚举用于描述 QPrinter 应用于打印的格式。
常量 | 值 | 描述 |
---|---|---|
QPrinter::NativeFormat | 0 | QPrinter 将使用运行它的平台定义的方法打印输出。此模式是直接打印到打印机时的默认模式。 |
QPrinter::PdfFormat | 1 | QPrinter 会将其输出生成为可搜索的 PDF 文件。此模式是打印到文件时的默认模式。 |
QPrinter:: PageOrder
QPrinter 使用此枚举类型来告诉应用程序如何打印。
常量 | 值 | 描述 |
---|---|---|
QPrinter::FirstPageFirst | 0 | 应首先打印编号最低的页面。 |
QPrinter::LastPageFirst | 1 | 应首先打印编号最高的页面。 |
QPrinter:: PaperSize
枚举 QPagedPaintDevice::PageSize 的 typdef 。
此枚举类型指定 QPrinter 应使用的纸张大小。 QPrinter 不会检查纸张尺寸是否可用;它只是使用此信息以及 QPrinter::Orientation 和 QPrinter::setFullPage () 来确定可打印区域。
定义的大小(使用 setFullPage (true)) 可在 QPagedPaintDevice 中找到。
采用 setFullPage (false) (默认),指标会小一点;多少取决于使用的打印机。
由于历史原因,QPageSize:: Executive 与标准 Postscript 和 Windows Executive 大小不同,请使用 QPageSize::ExecutiveStandard 代替。
Postscript 标准大小 QPageSize::Folio 与 Windows DMPAPER_FOLIO大小不同,如果需要,请使用 Postscript 标准大小 QPageSize::FanFoldGermanLegal。
这个 typedef 是在 Qt 4.4 中引入的。
QPrinter:: PaperSource
此枚举类型指定 QPrinter 要使用的纸张源。 QPrinter 不检查纸张来源是否可用;它只是使用此信息来尝试设置纸张来源。是否设置纸张来源取决于打印机是否具有该特定来源。
警告: 这目前仅适用于 Windows。
常量 | 值 | 描述 |
---|---|---|
QPrinter::Auto | 6 | |
QPrinter::Cassette | 11 | |
QPrinter::Envelope | 4 | |
QPrinter::EnvelopeManual | 5 | |
QPrinter::FormSource | 12 | |
QPrinter::LargeCapacity | 10 | |
QPrinter::LargeFormat | 9 | |
QPrinter::Lower | 1 | |
QPrinter::MaxPageSource | 13 | 已弃 |