Qt wiki will be updated on October 12th 2023 starting at 11:30 AM (EEST) and the maintenance will last around 2-3 hours. During the maintenance the site will be unavailable.
Qt-Printing
Qt Printing
This is the hub page for the Qt Printing module. This page will link to developer documentation for the module.
The Qt Printing module maintainer is John Layt (jlayt on Devnet or johnlayt on JIRA/Gerrit) <jlaytkde.org>.
Qt 5.0 Status
Status as at 2010-06-22
"Qt 5.0 Release Task":https://bugreports.qt.io/browse/QTBUG-25381
Linux - In Testing, mostly works
Mac - In Testing, mostly works
* Fonts rendered incorrectly, see https://bugreports.qt.io/browse/QTBUG-25555
Windows - Untested by me.
Todo:
* Complete removal of QAbstractPageSetupWidget
* Still time for removal of QAbstractPrintDialog?
* Clean-ups and bug fixes in Linux print dialog
* Write a feature matrix for print support on different platforms
* Rewrite tst_qprinter to correctly test platform options per feature matrix, currently very broken
* Write manual printing test plan for features that cannot be auto tested
* Develop auto tests that add/delete printers to test QPrinterInfo
* Review platform specific code still in core
Release criteria
The following criteria must be met on all 3 platforms for release:
- No blocker bugs open
- All unit tests not failing, i.e. passing or skipped for valid reasons
- Platform Plugin fully implemented for all required features
- Print to printer tested visually, no font or layout issues
- Print to PDF tested visually, no font or layout issues
- Print dialog tested, all options function as expected
The following tasks also performed:
* API reviewed for any last clean-ups
* Build system reviewed
* Includes reviewed
* Documentation reviewed
For testing painted output, use the example/richtext/textedit or Qt Assistant.
Bugs
Bugs are assigned to the "GUI: Printing":https://bugreports.qt.io/browse/QTBUG/component/19140 component in JIRA.
The following are Tasks to track specific areas within Qt Printing:
"QTBUG-25385 QPrinter - New Printing Module requested features":https://bugreports.qt.io/browse/QTBUG-25385
"QTBUG-25384 QPrinter - Windows related issues":https://bugreports.qt.io/browse/QTBUG-25384
"QTBUG-25383 QPrinter - Mac OS X related issues":https://bugreports.qt.io/browse/QTBUG-25383
"QTBUG-25381 QPrinter - Qt 5.0 Release Task":https://bugreports.qt.io/browse/QTBUG-25381
"QTBUG-25380 QPrinter - Page Size and Margin Related Issues":https://bugreports.qt.io/browse/QTBUG-25380
"QTBUG-25379 QPrinter - PDF Generator Related Issues":https://bugreports.qt.io/browse/QTBUG-25379
"QTBUG-25378 QPrinter - Font Related Issues":https://bugreports.qt.io/browse/QTBUG-25378
"QTBUG-25377 QPrinter - Remote Printer Issues":https://bugreports.qt.io/browse/QTBUG-25377
"QTBUG-25372 QPrinter - CUPS Settings In Linux Print Dialog":https://bugreports.qt.io/browse/QTBUG-25372
Qt 4 Printing Support in QtGui / QtWidgets
Qt 5 QtPrintSupport Module
The Qt 4 printing code was moved in a new library QtPrintingSupport and a new PrintSupport platform plugin. The code can be found in qtbase/src/printsupport and qtbase/plugins/printsupport
QPrintEngine Keys
Key
Type
Win Set
Win Get
Mac Set
Mac Get
PDF Set
PDF Get
CUPS Set
CUPS Get
PPK_CollateCopies
Setting
y
FALSE
n
FALSE
y
y
y
y
PPK_ColorMode
Setting
y
y
n
Color
y
y
y
y
PPK_Creator
Setting
n
NULL
n
NULL
y
y
y
y
PPK_DocumentName
Setting
y
y
n
NULL
y
y
y
y
PPK_FullPage
Setting
y
y
y
y
y
y
y
y
PPK_NumberOfCopies
Setting
y
1
y
1
y
y
y
1
PPK_Orientation
Setting
y
y
y
y
y
y
y
y
PPK_OutputFileName
Setting
y
y
y
y
y
y
y
y
PPK_PageOrder
Setting
n
NULL
n
NULL
y
y
y
y
PPK_PageSize
Setting
y
y
y
y
y
y
y
y
PPK_PaperSize = PPK_PageSize
Setting
y
y
y
y
y
y
y
y
PPK_PaperSource
Setting
y
y
n
NULL
y
y
y
y
PPK_PrinterName
Setting
y
y
y
y
y
y
y
y
PPK_PrinterProgram
Setting
n
NULL
n
NULL
y
y
y
y
PPK_Resolution
Setting
y
y
y
y
y
y
y
y
PPK_SelectionOption
Setting
n
NULL
n
NULL
y
y
y
y
PPK_WindowsPageSize
Setting
y
y
n
NULL
n
NULL
n
NULL
PPK_FontEmbedding
Setting
n
NULL
n
NULL
y
y
y
y
PPK_Duplex
Setting
n
NULL
n
NULL
y
y
y
y
PPK_CustomPaperSize
Setting
y
y
y
y
y
y
y
y
PPK_PageMargins
Setting
y
y
y
y
y
y
y
y
PPK_CopyCount
Setting
y
y
y
y
y
y
y
y
PPK_PageRect
Derived
n
y
n
y
n
y
n
y
PPK_PaperRect
Derived
n
y
n
y
n
y
n
y
PPK_SupportedResolutions
Feature
n
y
n
y
n
72
n
72
PPK_PaperSources
Feature
n
y
n
NULL
n
NULL
n
NULL
PPK_SupportsMultipleCopies
Feature
n
TRUE
n
TRUE
n
FALSE
n
TRUE
PPK_SuppressSystemPrintStatus
Unused?
n
NULL
n
NULL
n
NULL
n
NULL
Architecture
Mac OSX Differences
The Mac paint engine, print engine and print support plugin actually live in the Cocoa Platform Plugin in qtbase/src/plugins/platform/cocoa due to dependencies between the code. It is hoped to clean these up in a future release.
Qt 5 QtPrint Planning