KPrinter Class Reference
#include <kprinter.h>
Inheritance diagram for KPrinter:

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 88 of file kprinter.h.
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 | |
static void | addDialogPage (KPrintDialogPage *_page) |
static void | setPageSelection (PageSelectionType _mode) |
static PageSelectionType | pageSelection () |
static void | setApplicationType (ApplicationType type) |
static ApplicationType | applicationType () |
static void | addStandardPage (int p) |
static 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 |
Friends | |
class | KPrinterWrapper |
class | KPrinterImpl |
Member Enumeration Documentation
|
Defines the type of the application, this affects the GUI of the print dialog:.
Definition at line 126 of file kprinter.h. |
|
Defines the collate property of the printer (if supported by the print system):.
Definition at line 145 of file kprinter.h. |
|
Defines the color mode of the printer.
Definition at line 152 of file kprinter.h. |
|
Defines the orientation of the paper.
Definition at line 157 of file kprinter.h. |
|
Defines the page order of the print job.
Definition at line 162 of file kprinter.h. |
|
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:
Definition at line 116 of file kprinter.h. |
|
Defines the page set to print:.
Definition at line 137 of file kprinter.h. |
|
Defines the paper size to use.
Definition at line 167 of file kprinter.h. |
|
Defines the standard pages available for the print dialog:.
Definition at line 102 of file kprinter.h. |
Constructor & Destructor Documentation
|
Constructor.
This also restores/saves the state from a previous KPrinter object created within the same application run, if
Definition at line 123 of file kprinter.cpp. |
|
Destructor. This also saves the current KPrinter state for future printing. Definition at line 129 of file kprinter.cpp. |
Member Function Documentation
|
See QPrinter::abort().
Definition at line 932 of file kprinter.cpp. |
|
See QPrinter::aborted(. ) Definition at line 935 of file kprinter.cpp. |
|
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.
Definition at line 250 of file kprinter.cpp. |
|
Adds a standard page to the print dialog.
This is not useful yet as there's only one standard page defines
Definition at line 240 of file kprinter.cpp. |
|
Returns the application type concerning the print dialog. For internal use only.
Definition at line 270 of file kprinter.cpp. |
|
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
Definition at line 667 of file kprinter.cpp. |
|
Returns the collate status of the current KPrinter.
Definition at line 827 of file kprinter.cpp. |
|
See QPrinter::colorMode().
Definition at line 809 of file kprinter.cpp. |
|
See QPrinter::creator().
Definition at line 797 of file kprinter.cpp. |
|
Returns the current page number.
Definition at line 858 of file kprinter.cpp. |
|
Get the default document directory, that is the directory used for any output file. By default, it is the $HOME directory.
Definition at line 1032 of file kprinter.cpp. |
|
Get the default document filename, that is the default basename used for the output file.
Definition at line 1026 of file kprinter.cpp. |
|
See QPrinter::docName().
Definition at line 791 of file kprinter.cpp. |
|
Returns the last error message issued by the print system. Unimplemented yet.
Definition at line 1007 of file kprinter.cpp. |
|
Returns the first page to be printed.
Definition at line 842 of file kprinter.cpp. |
|
See QPrinter::fullPage().
Definition at line 803 of file kprinter.cpp. |
|
For internal use only.
Definition at line 782 of file kprinter.cpp. |
|
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-...".
Definition at line 645 of file kprinter.cpp. |
|
See QPrinter::margins().
Definition at line 550 of file kprinter.cpp. |
|
See QPrinter::maxPage().
Definition at line 836 of file kprinter.cpp. |
|
See QPrinter::minPage().
Definition at line 833 of file kprinter.cpp. |
|
See QPrinter::newPage().
Definition at line 906 of file kprinter.cpp. |
|
See QPrinter::numCopies().
Definition at line 543 of file kprinter.cpp. |
|
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; ... } }
Definition at line 785 of file kprinter.cpp. |
|
Returns the complete set of print options from the KPrinter object. For internal use.
Definition at line 897 of file kprinter.cpp. |
|
See QPrinter::orientation().
Definition at line 818 of file kprinter.cpp. |
|
See QPrinter::outputFileName().
Definition at line 913 of file kprinter.cpp. |
|
See QPrinter::outputToFile().
Definition at line 919 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.
Definition at line 470 of file kprinter.cpp. |
|
See QPrinter::pageOrder().
Definition at line 821 of file kprinter.cpp. |
|
Returns the page selection mode of the current application.
Definition at line 260 of file kprinter.cpp. |
|
Returns the page set of the current KPrinter object.
Definition at line 855 of file kprinter.cpp. |
|
See QPrinter::pageSize().
Definition at line 852 of file kprinter.cpp. |
|
Returns the preview-only state for this KPrinter object.
Definition at line 1020 of file kprinter.cpp. |
|
See QPrinter::printerName().
Definition at line 864 of file kprinter.cpp. |
|
See QPrinter::printerSelectionOption(). Unused. Definition at line 891 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 358 of file kprinter.cpp. |
|
Returns the print program as set by setPrintProgram() or by the print dialog if a special printer has been selected.
Definition at line 870 of file kprinter.cpp. |
|
DO NOT USE, WILL BE REMOVED.
Definition at line 998 of file kprinter.cpp. |
|
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.
Definition at line 953 of file kprinter.cpp. |
|
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
Definition at line 245 of file kprinter.cpp. |
|
Resturns the resolution of the current KPrinter object. The resolution is given in DPI.
Definition at line 1041 of file kprinter.cpp. |
|
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.
Definition at line 900 of file kprinter.cpp. |
|
Sets the application type concerning the print dialog. You probably don't want to use it. For internal use only.
Definition at line 265 of file kprinter.cpp. |
|
Sets the collate status for the current KPrinter to
Definition at line 830 of file kprinter.cpp. |
|
See QPrinter::setColorMode().
Definition at line 812 of file kprinter.cpp. |
|
See QPrinter::setCreator().
Definition at line 800 of file kprinter.cpp. |
|
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 ... } }
Definition at line 861 of file kprinter.cpp. |
|
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.
Definition at line 1029 of file kprinter.cpp. |
|
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.
Definition at line 1023 of file kprinter.cpp. |
|
See QPrinter::setDocName().
Definition at line 794 of file kprinter.cpp. |
|
Sets the last error message. For internal use.
Definition at line 1010 of file kprinter.cpp. |
|
Sets the first and last page to be printed. See QPrinter::setFromTo(). Definition at line 848 of file kprinter.cpp. |
|
Definition at line 806 of file kprinter.cpp. |
|
Not used yet.
Definition at line 938 of file kprinter.cpp. |
|
Definition at line 839 of file kprinter.cpp. |
|
Definition at line 815 of file kprinter.cpp. |
|
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().
Definition at line 788 of file kprinter.cpp. |
|
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.
Definition at line 622 of file kprinter.cpp. |
|
See QPrinter::setOrientation().
Definition at line 600 of file kprinter.cpp. |
|
See QPrinter::setOutputFileName().
Definition at line 916 of file kprinter.cpp. |
|
See QPrinter::setOutputToFile().
Definition at line 922 of file kprinter.cpp. |
|
See QPrinter::setPageOrder().
Definition at line 824 of file kprinter.cpp. |
|
Sets the page selection mode of the application.
If needed, call this method somewhere at the beginning of your code. The default value is
Definition at line 255 of file kprinter.cpp. |
|
Definition at line 615 of file kprinter.cpp. |
|
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 ); }
Definition at line 1017 of file kprinter.cpp. |
|
See QPrinter::setPrinterName().
Definition at line 867 of file kprinter.cpp. |
|
See QPrinter::setPrinterSelectionOption(). Unused Definition at line 894 of file kprinter.cpp. |
|
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:
Definition at line 873 of file kprinter.cpp. |
|
DO NOT USE, WILL BE REMOVED.
Definition at line 992 of file kprinter.cpp. |
|
DO NOT USE, WILL BE REMOVED.
Definition at line 986 of file kprinter.cpp. |
|
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.
Definition at line 1035 of file kprinter.cpp. |
|
Sets the search name of the KPrinter object. For internal use.
Definition at line 903 of file kprinter.cpp. |
|
Sets up the KPrinter object using the print dialog, returns true if the user clicked OK.
Definition at line 219 of file kprinter.cpp. |
|
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
Definition at line 1044 of file kprinter.cpp. |
|
Returns the last page to be printed.
Definition at line 845 of file kprinter.cpp. |
|
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. |
The documentation for this class was generated from the following files: