QPrintEngine Class

The QPrintEngine class defines an interface for how QPrinter interacts with a given printing subsystem. More...

Header: #include <QPrintEngine>
CMake: find_package(Qt6 COMPONENTS PrintSupport REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::PrintSupport)
qmake: QT += printsupport

Note: All functions in this class are reentrant.

Public Types

enum PrintEnginePropertyKey { PPK_CollateCopies, PPK_ColorMode, PPK_Creator, PPK_Duplex, PPK_DocumentName, …, PPK_CustomBase }

Public Functions

virtual ~QPrintEngine()
virtual bool abort() = 0
virtual int metric(QPaintDevice::PaintDeviceMetric id) const = 0
virtual bool newPage() = 0
virtual QPrinter::PrinterState printerState() const = 0
virtual QVariant property(QPrintEngine::PrintEnginePropertyKey key) const = 0
virtual void setProperty(QPrintEngine::PrintEnginePropertyKey key, const QVariant &value) = 0

Detailed Description

The common case when creating your own print engine is to derive from both QPaintEngine and QPrintEngine. Various properties of a print engine are given with property() and set with setProperty().

See also QPaintEngine.

Member Type Documentation

enum QPrintEngine::PrintEnginePropertyKey

This enum is used to communicate properties between the print engine and QPrinter. A property may or may not be supported by a given print engine.

Constant Value Description
QPrintEngine::PPK_CollateCopies 0 A boolean value indicating whether the printout should be collated or not.
QPrintEngine::PPK_ColorMode 1 Refers to QPrinter::ColorMode, either color or monochrome.
QPrintEngine::PPK_Creator 2 A string describing the document's creator.
QPrintEngine::PPK_Duplex 20 A boolean value indicating whether both sides of the printer paper should be used for the printout.
QPrintEngine::PPK_DocumentName 3 A string describing the document name in the spooler.
QPrintEngine::PPK_FontEmbedding 19 A boolean value indicating whether data for the document's fonts should be embedded in the data sent to the printer.
QPrintEngine::PPK_FullPage 4 A boolean describing if the printer should be full page or not.
QPrintEngine::PPK_NumberOfCopies 5 Obsolete. An integer specifying the number of copies. Use PPK_CopyCount instead.
QPrintEngine::PPK_Orientation 6 Specifies a QPageLayout::Orientation value.
QPrintEngine::PPK_OutputFileName 7 The output file name as a string. An empty file name indicates that the printer should not print to a file.
QPrintEngine::PPK_PageOrder 8 Specifies a QPrinter::PageOrder value.
QPrintEngine::PPK_PageRect 9 A QRect specifying the page rectangle
QPrintEngine::PPK_PageSize 10 Obsolete. Use PPK_PaperSize instead.
QPrintEngine::PPK_PaperRect 11 A QRect specifying the paper rectangle.
QPrintEngine::PPK_PaperSource 12 Specifies a QPrinter::PaperSource value.
QPrintEngine::PPK_PaperSources 21 Specifies more than one QPrinter::PaperSource value.
QPrintEngine::PPK_PaperName 26 A string specifying the name of the paper.
QPrintEngine::PPK_PaperSize PPK_PageSize Specifies a QPrinter::PaperSize value.
QPrintEngine::PPK_PrinterName 13 A string specifying the name of the printer.
QPrintEngine::PPK_PrinterProgram 14 A string specifying the name of the printer program used for printing,
QPrintEngine::PPK_Resolution 15 An integer describing the dots per inch for this printer.
QPrintEngine::PPK_SelectionOption 16
QPrintEngine::PPK_SupportedResolutions 17 A list of integer QVariants describing the set of supported resolutions that the printer has.
QPrintEngine::PPK_WindowsPageSize 18 An integer specifying a DM_PAPER entry on Windows.
QPrintEngine::PPK_CustomPaperSize 22 A QSizeF specifying a custom paper size in the QPrinter::Point unit.
QPrintEngine::PPK_PageMargins 23 A QList<QVariant> containing the left, top, right and bottom margin values in the QPrinter::Point unit.
QPrintEngine::PPK_CopyCount 24 An integer specifying the number of copies to print.
QPrintEngine::PPK_SupportsMultipleCopies 25 A boolean value indicating whether or not the printer supports printing multiple copies in one job.
QPrintEngine::PPK_QPageSize 27 Set the page size using a QPageSize object.
QPrintEngine::PPK_QPageMargins 28 Set the page margins using a QPair of QMarginsF and QPageLayout::Unit.
QPrintEngine::PPK_QPageLayout 29 Set the page layout using a QPageLayout object.
QPrintEngine::PPK_CustomBase 0xff00 Basis for extension.

Member Function Documentation

[virtual] QPrintEngine::~QPrintEngine()

Destroys the print engine.

[pure virtual] bool QPrintEngine::abort()

Instructs the print engine to abort the printing process. Returns true if successful; otherwise returns false.

[pure virtual] int QPrintEngine::metric(QPaintDevice::PaintDeviceMetric id) const

Returns the metric for the given id.

[pure virtual] bool QPrintEngine::newPage()

Instructs the print engine to start a new page. Returns true if the printer was able to create the new page; otherwise returns false.

[pure virtual] QPrinter::PrinterState QPrintEngine::printerState() const

Returns the current state of the printer being used by the print engine.

[pure virtual] QVariant QPrintEngine::property(QPrintEngine::PrintEnginePropertyKey key) const

Returns the print engine's property specified by key.

See also setProperty().

[pure virtual] void QPrintEngine::setProperty(QPrintEngine::PrintEnginePropertyKey key, const QVariant &value)

Sets the print engine's property specified by key to the given value.

See also property().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qprintengine.html