KPrinter Class Reference
This class is the main interface to access the KDE print framework. The central interface class to access the KDE print system. More...
#include <kprinter.h>
Inheritance diagram for KPrinter:

Public Types | |
enum | StandardPageType { CopiesPage = 0x01, FilesPage = 0x02, Custom = 0x10 } |
enum | PageSelectionType { ApplicationSide = 0x01, SystemSide = 0x02 } |
enum | ApplicationType { Dialog = 0x00, StandAlone = 0x01, StandAlonePersistent = 0x02 } |
enum | PageSetType { AllPages = 0x00, OddPages = 0x01, EvenPages = 0x02 } |
enum | CollateType { Collate = 0x00, Uncollate = 0x01 } |
enum | ColorMode { GrayScale = QPrinter::GrayScale, Color = QPrinter::Color } |
enum | Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape } |
enum | PageOrder { FirstPageFirst = QPrinter::FirstPageFirst, LastPageFirst = QPrinter::LastPageFirst } |
enum | PageSize { A4 = QPrinter::A4, B5 = QPrinter::B5, Letter = QPrinter::Letter, Legal = QPrinter::Legal, Executive = QPrinter::Executive, A0 = QPrinter::A0, A1 = QPrinter::A1, A2 = QPrinter::A2, A3 = QPrinter::A3, A5 = QPrinter::A5, A6 = QPrinter::A6, A7 = QPrinter::A7, A8 = QPrinter::A8, A9 = QPrinter::A9, B0 = QPrinter::B0, B1 = QPrinter::B1, B10 = QPrinter::B10, B2 = QPrinter::B2, B3 = QPrinter::B3, B4 = QPrinter::B4, B6 = QPrinter::B6, B7 = QPrinter::B7, B8 = QPrinter::B8, B9 = QPrinter::B9, C5E = QPrinter::C5E, Comm10E = QPrinter::Comm10E, DLE = QPrinter::DLE, Folio = QPrinter::Folio, Ledger = QPrinter::Ledger, Tabloid = QPrinter::Tabloid, NPageSize = QPrinter::NPageSize } |
Public Member Functions | |
KPrinter (bool restore=true, QPrinter::PrinterMode m=QPrinter::ScreenResolution) | |
~KPrinter () | |
bool | newPage () |
bool | abort () |
bool | aborted () const |
bool | outputToFile () const |
void | setOutputToFile (bool) |
QString | outputFileName () const |
void | setOutputFileName (const QString &) |
QString | docName () const |
void | setDocName (const QString &) |
QString | creator () const |
void | setCreator (const QString &) |
bool | fullPage () const |
void | setFullPage (bool) |
ColorMode | colorMode () const |
void | setColorMode (ColorMode) |
int | numCopies () const |
void | setNumCopies (int n) |
Orientation | orientation () const |
void | setOrientation (Orientation) |
PageOrder | pageOrder () const |
void | setPageOrder (PageOrder) |
CollateType | collate () const |
void | setCollate (CollateType type) |
int | minPage () const |
int | maxPage () const |
void | setMinMax (int, int) |
int | fromPage () const KDE_DEPRECATED |
int | toPage () const |
void | setFromTo (int, int) |
PageSize | pageSize () const |
void | setPageSize (PageSize) |
QString | printerName () const |
void | setPrinterName (const QString &) |
QString | printProgram () const |
void | setPrintProgram (const QString &cmd) |
QString | printerSelectionOption () const |
void | setPrinterSelectionOption (const QString &) |
int | currentPage () const |
void | setCurrentPage (int p=0) |
PageSetType | pageSet () const |
bool | setup (QWidget *parent=0, const QString &caption=QString::null, bool forceExpand=false) |
QSize | margins () const |
void | setMargins (QSize m) |
QSize | realPageSize () const |
void | setRealPageSize (QSize p) |
void | setRealDrawableArea (const QRect &r) |
QRect | realDrawableArea () const |
void | margins (uint *top, uint *left, uint *bottom, uint *right) const |
void | setMargins (uint top, uint left, uint bottom, uint right) |
QValueList< int > | pageList () const |
void | setPreviewOnly (bool on) |
bool | previewOnly () const |
void | setResolution (int dpi) |
int | resolution () const |
void | setUsePrinterResolution (bool on) |
KPrinterImpl * | implementation () const |
bool | printFiles (const QStringList &files, bool removeafter=false, bool startviewer=true) |
const QString & | option (const QString &key) const |
void | setOption (const QString &key, const QString &value) |
const QMap< QString, QString > & | options () const |
void | setOptions (const QMap< QString, QString > &opts) |
void | initOptions (const QMap< QString, QString > &opts) |
QString | searchName () const |
void | setSearchName (const QString &n) |
QString | errorMessage () const |
void | setErrorMessage (const QString &msg) |
bool | autoConfigure (const QString &prname=QString::null, QWidget *parent=0) |
void | setDocFileName (const QString &filename) |
QString | docFileName () const |
void | setDocDirectory (const QString &dir) |
QString | docDirectory () const |
Static Public Member Functions | |
void | addDialogPage (KPrintDialogPage *_page) |
void | setPageSelection (PageSelectionType _mode) |
PageSelectionType | pageSelection () |
void | setApplicationType (ApplicationType type) |
ApplicationType | applicationType () |
void | addStandardPage (int p) |
void | removeStandardPage (int p) |
Protected Member Functions | |
virtual bool | cmd (int, QPainter *, QPDevCmdParam *) |
virtual int | metric (int) const |
void | translateQtOptions () |
void | loadSettings () |
void | saveSettings () |
void | preparePrinting () |
void | finishPrinting () |
void | reload () |
void | init (bool restore=true, QPrinter::PrinterMode m=QPrinter::ScreenResolution) |
bool | doPreview (const QString &file) |
void | setRealPageSize (DrPageSize *p) |
void | setOption (const QString &key, const QString &value, bool broadcast) |
Protected Attributes | |
KPrinterPrivate * | d |
Detailed Description
This class is the main interface to access the KDE print framework. The central interface class to access the KDE print system.It allows KDE applications to easily access the print system, through an interface that is compatible with QPrinter. So that the porting of an existing application should be as easy as replacing any occurrence of QPrinter by KPrinter. However applications that explicitly used the QPrintDialog class must be changed to the standard KPrinter way of accessing the print dialog.
Basically, a KDE application will use the KPrinter object as a paint device, and will draw on it using QPainter. In a standard application, the use of the KPrinter class will look like this:
#include <kprinter.h> #include <qpainter.h> void MyClass::doPrint() { KPrinter printer; // do some printer initialization printer.setFullPage( true ); // initialize the printer using the print dialog if ( printer.setup( this ) ) { // create a painter to paint on the printer object QPainter painter; // start painting painter.begin( &printer ); <do something> // stop painting, this will automatically send the print data to the printer painter.end(); } }
The KPrinter interface also allows some more advanced possibilities, like the customization of the print dialog to integrate application specific print options. This is done by subclassing KPrintDialogPage and adding the page using addDialogPage().
When compiling an application that uses KPrinter, you must link to -lkdeprint, which when using the standard KDE build framework can be done by adding to _LDADD.
- Author:
- Michael Goffioul
- See also:
- QPrinter, KPrintDialogPage
Definition at line 87 of file kprinter.h.
Member Enumeration Documentation
|
Defines the standard pages available for the print dialog:
|
|
Defines whether the application can perform page selection itself or not. Some print systems (like CUPS) can do page selection, in this case the page selection will be enabled in the print dialog, otherwise it will be disabled. However some applications (word processor) can do page selection themselves, then it will be enabled in the print dialog, whatever the print system used. But such an application has to tell kdeprint about its feature:
Referenced by pageSelection(). |
|
Defines the type of the application, this affects the GUI of the print dialog:
Definition at line 125 of file kprinter.h. Referenced by applicationType(). |
|
Defines the page set to print:
Referenced by pageSet(). |
|
Defines the collate property of the printer (if supported by the print system):
Referenced by collate(). |
|
Defines the color mode of the printer.
Referenced by colorMode(). |
|
Defines the orientation of the paper.
Referenced by orientation(). |
|
Defines the page order of the print job.
Referenced by pageOrder(). |
|
Defines the paper size to use.
Referenced by pageSize(). |
Constructor & Destructor Documentation
|
Constructor.
This also restores/saves the state from a previous KPrinter object created within the same application run, if
|
|
Destructor. This also saves the current KPrinter state for future printing.Definition at line 129 of file kprinter.cpp. |
Member Function Documentation
|
See QPrinter::newPage(). Definition at line 900 of file kprinter.cpp. |
|
See QPrinter::abort(). Definition at line 926 of file kprinter.cpp. |
|
See QPrinter::aborted(.). Definition at line 929 of file kprinter.cpp. |
|
Definition at line 913 of file kprinter.cpp. References QString::isEmpty(), and option(). |
|
See QPrinter::setOutputToFile(). Definition at line 916 of file kprinter.cpp. References setOption(). Referenced by setOutputFileName(), and setPrintProgram(). |
|
See QPrinter::outputFileName(). Definition at line 907 of file kprinter.cpp. References option(). |
|
See QPrinter::setOutputFileName(). Definition at line 910 of file kprinter.cpp. References QString::isEmpty(), setOption(), and setOutputToFile(). |
|
See QPrinter::docName(). Definition at line 785 of file kprinter.cpp. References option(). Referenced by translateQtOptions(). |
|
Definition at line 788 of file kprinter.cpp. References setOption(). |
|
See QPrinter::creator(). Definition at line 791 of file kprinter.cpp. References option(). Referenced by translateQtOptions(). |
|
Definition at line 794 of file kprinter.cpp. References setOption(). |
|
See QPrinter::fullPage(). Definition at line 797 of file kprinter.cpp. References option(). Referenced by translateQtOptions(). |
|
Definition at line 800 of file kprinter.cpp. References setOption(). |
|
Definition at line 803 of file kprinter.cpp. References ColorMode, and option(). Referenced by translateQtOptions(). |
|
Definition at line 806 of file kprinter.cpp. References setOption(). |
|
Definition at line 537 of file kprinter.cpp. References option(), and QString::toInt(). Referenced by translateQtOptions(). |
|
Definition at line 809 of file kprinter.cpp. References setOption(). |
|
Definition at line 812 of file kprinter.cpp. References option(), and Orientation. Referenced by translateQtOptions(). |
|
See QPrinter::setOrientation(). Definition at line 594 of file kprinter.cpp. References setOption(). |
|
Definition at line 815 of file kprinter.cpp. References option(), and PageOrder. Referenced by pageList(). |
|
Definition at line 818 of file kprinter.cpp. References setOption(). |
|
Returns the collate status of the current KPrinter. Definition at line 821 of file kprinter.cpp. References CollateType, and option(). |
|
Sets the collate status for the current KPrinter to Definition at line 824 of file kprinter.cpp. References setOption(). |
|
See QPrinter::minPage(). Definition at line 827 of file kprinter.cpp. References QString::isEmpty(), option(), and QString::toInt(). Referenced by pageList(). |
|
See QPrinter::maxPage(). Definition at line 830 of file kprinter.cpp. References QString::isEmpty(), option(), and QString::toInt(). Referenced by pageList(). |
|
Definition at line 833 of file kprinter.cpp. References setOption(). |
|
Returns the first page to be printed.
References QString::isEmpty(), option(), and QString::toInt(). |
|
Returns the last page to be printed.
References QString::isEmpty(), option(), and QString::toInt(). |
|
Sets the first and last page to be printed. See QPrinter::setFromTo().Definition at line 842 of file kprinter.cpp. References setOption(). |
|
See QPrinter::pageSize(). Definition at line 846 of file kprinter.cpp. References QString::isEmpty(), option(), PageSize, and QString::toInt(). Referenced by translateQtOptions(). |
|
Definition at line 609 of file kprinter.cpp. References setOption(). |
|
Definition at line 858 of file kprinter.cpp. Referenced by printFiles(). |
|
See QPrinter::setPrinterName(). Definition at line 861 of file kprinter.cpp. |
|
Returns the print program as set by setPrintProgram() or by the print dialog if a special printer has been selected.
References option(). |
|
Sets the command line to use when printing. This function is useful when using a KPrinter object without the print dialog, to control what to print and how to do it. The command line may contain the following tags:
References QString::append(), QString::find(), QString::isNull(), setOption(), and setOutputToFile(). |
|
See QPrinter::printerSelectionOption(). Unused.Definition at line 885 of file kprinter.cpp. References QString::fromLatin1(). |
|
See QPrinter::setPrinterSelectionOption(). UnusedDefinition at line 888 of file kprinter.cpp. |
|
Returns the current page number.
References QString::isEmpty(), option(), and QString::toInt(). Referenced by pageList(). |
|
Sets the current page number. This page number will be used if the user selected "current page" in the print dialog. This option will only be enabled if the application does page selection itself and the application has called setCurrentPage() before opening the print dialog: MyClass::MyClass() { // declares my application able to do page selection KPrinter::setPageSelection( KPrinter::ApplicationSide ); } void MyClass::doPrint() { KPrinter printer; printer.setCurrentPage( mycurrentpage ); if ( printer.setup( this ) ) { QValueList<int> pages = printer.pageList(); // print the pages ... } }
References setOption(). |
|
Returns the page set of the current KPrinter object. Definition at line 849 of file kprinter.cpp. References QString::isEmpty(), option(), PageSetType, and QString::toInt(). Referenced by pageList(). |
|
Sets up the KPrinter object using the print dialog, returns true if the user clicked OK.
References autoConfigure(), and QWidget::winId(). |
|
See QPrinter::margins(). Definition at line 544 of file kprinter.cpp. |
|
Not used yet. Definition at line 932 of file kprinter.cpp. References QSize::height(), and QSize::width(). |
|
Returns the page size in dot unit ( 1 dot = 1/72th in ). This method is intended for internal use, if you want to access actual page size, use a QPaintDeviceMetrics object instead. Note that the size returned by this method does not take resolution into account, and that it can returns invalid size if no page metric was found in the printer driver. DO NOT USE, WILL BE REMOVED.
|
|
DO NOT USE, WILL BE REMOVED. Definition at line 980 of file kprinter.cpp. |
|
DO NOT USE, WILL BE REMOVED. Definition at line 986 of file kprinter.cpp. |
|
DO NOT USE, WILL BE REMOVED. Definition at line 992 of file kprinter.cpp. |
|
Returns the page list to be printed, correpsonding to the options selected by the user. This takes into account collate, page order, page set, ranges, ... This is useful when the application does page selection itself.
References QValueList::append(), QValueList::begin(), QMap::begin(), QValueList::count(), currentPage(), QValueList::end(), QMap::end(), QString::isEmpty(), maxPage(), minPage(), option(), pageOrder(), pageSet(), QValueList::remove(), and QStringList::split(). |
|
Sets the KPrinter object to preview mode if In this mode, nothing will be printed but only a preview dialog will be popped up with the single "Close" action. Using this mode, any application can easily implement a preview action: void MyClass:doPreview() { // use a "clean" KPrinter object (independent from previous print jobs), // this is not necessary, it depends on the application KPrinter prt( false ); prt.setPreviewOnly( true ); QPainter painter( &prt ); doPrint( &painter ); }
|
|
Returns the preview-only state for this KPrinter object.
|
|
Set the resolution of the current KPrinter object. The resolution is given in DPI. This resolution mainly affects the accuracy for object positionning on the paint device, and does not influence the real resolution that will be used by the printer (this should be set in the driver settings). The resolution is usually defined in the constructor.
|
|
Resturns the resolution of the current KPrinter object. The resolution is given in DPI.
Referenced by translateQtOptions(). |
|
Define the KPrinter object to use the actual printer resolution.
Under some print systems (CUPS, Foomatic, PostScript printers), it is possible to know the actual resolution that is used by the printer, as selected by the user in the driver settings. If
|
|
For internal use only. Definition at line 776 of file kprinter.cpp. |
|
Prints the files given in argument. This will first filter the files accorsing to the filtering options selected by the user in the print dialog, then send the filtered files to the printer with the print options selected. This function is called automatically when calling QPainter::end() for a painter object constructed on KPrinter. In normal use, you don't need this use this function explicitly.Definition at line 345 of file kprinter.cpp. References option(), printerName(), and QFile::remove(). |
|
Adds a customized page to the print dialog. The pages will appear in a tab widget in the bottom half of the dialog, along with the standard "Copies" page. The page must be created and added each time you want open a print dialog with setup(). If you correctly reimplemented KPrintDialogPage::setOptions(), the settings will be restored from call to call, you don't have to worry about state saving/restoration.
|
|
Sets the page selection mode of the application.
If needed, call this method somewhere at the beginning of your code. The default value is
|
|
Returns the page selection mode of the current application.
References PageSelectionType. |
|
Sets the application type concerning the print dialog. You probably don't want to use it. For internal use only.
|
|
Returns the application type concerning the print dialog. For internal use only.
References ApplicationType. |
|
Adds a standard page to the print dialog.
This is not useful yet as there's only one standard page defines
|
|
Removes a standard page from the print dialog.
If your application doesn't want a standard page in the dialog, simply call this method with the correct identifier. By default, the print dialog includes the
|
|
The KPrinter object stores all its settings in an internal QMap structure on QString. This allows to store any property. This method allows an application to access any print option from the KPrinter object, using the option name. For example if your application add a customized page to the print dialog, this page will saves its settings into the KPrinter object using this QMap<QString,QString> structure. After showing the print dialog, your application can then access these options using this method. The custom option name should follow the form "kde-appname-optionname". void MyClass::doPrint() { KPrinter prt; // add my custom page prt.addDialogPage( new MyDialogPage() ); // open print dialog if ( prt.setup( this ) ) { QString fntname = prt.option( "kde-myapp-fontname" ); ... do_something; ... } }
Referenced by collate(), colorMode(), creator(), currentPage(), docName(), fromPage(), fullPage(), maxPage(), minPage(), numCopies(), orientation(), outputFileName(), outputToFile(), pageList(), pageOrder(), pageSet(), pageSize(), printFiles(), printProgram(), toPage(), and translateQtOptions(). |
|
Adds or modifies an option in the KPrinter object. You probably don't need to use this function explicitly. This will be done implicitely for example when reimplementing KPrintDialogPage::getOptions().
Referenced by initOptions(), setCollate(), setColorMode(), setCreator(), setCurrentPage(), setDocName(), setFromTo(), setFullPage(), setMinMax(), setNumCopies(), setOrientation(), setOutputFileName(), setOutputToFile(), setPageOrder(), setPageSize(), and setPrintProgram(). |
|
Returns the complete set of print options from the KPrinter object. For internal use.
|
|
Sets the option set in one operation. This method has some side effects like merging the internal map with the one given in argument, but only for option in the form "kde-...". For internal use only.
References QMap::begin(), QMap::end(), and QMap::remove(). |
|
For internal use only. Does a similar job as setOption(), except that all possible internal printers are initialized with the option if it has the form "kde-...".
References QMap::begin(), QMap::end(), and setOption(). |
|
Returns the search name of the printer selected by the user. Each printer is identified by a unique name. This method is mainly used for state restoration. For internal use.
|
|
Sets the search name of the KPrinter object. For internal use.
|
|
Returns the last error message issued by the print system. Unimplemented yet.
|
|
Sets the last error message. For internal use.
|
|
Configure the KPrinter object to be used with the printer named
After the call, the KPrinter object can be used without the need to call the print dialog. If
References QString::isEmpty(). Referenced by setup(). |
|
Set the default document filename. This filename will be used as the default basename for the output file, instead of the default "print". For example, by using setDocFileName("my_document"), the default output file will be $HOME/my_document.ps.
|
|
Get the default document filename, that is the default basename used for the output file.
|
|
Set the default document directory. This directory will be used as the default location for any output file. If not set, $HOME directory is used instead.
|
|
Get the default document directory, that is the directory used for any output file. By default, it is the $HOME directory.
References QDir::homeDirPath(). |
|
Scale margings as the margin widget always stores values in dot units ( 1/72th in ), to be resolution independent when specified by the user ( who usually specifies margins in metric units ).Definition at line 296 of file kprinter.cpp. References colorMode(), creator(), docName(), fullPage(), QString::isEmpty(), numCopies(), option(), orientation(), pageSize(), and resolution(). |
The documentation for this class was generated from the following files: