00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
#ifndef KPRINTER_H
00022
#define KPRINTER_H
00023
00024
#include <qpaintdevice.h>
00025
#include <qprinter.h>
00026
#include <qmap.h>
00027
#include <qstring.h>
00028
#include <qstringlist.h>
00029
#include <qvaluelist.h>
00030
#include <kdemacros.h>
00031
#include <kdelibs_export.h>
00032
00033
#include <kdeprint/kpreloadobject.h>
00034
00035
class KPrinterImpl;
00036
class KPrintDialogPage;
00037
class KPrinterPrivate;
00038
class DrPageSize;
00039
00088 class KDEPRINT_EXPORT KPrinter :
public QPaintDevice,
public KPReloadObject
00089 {
00090
friend class KPrinterWrapper;
00091
friend class KPrinterImpl;
00092
public:
00093
00102 enum StandardPageType { CopiesPage = 0x01, FilesPage = 0x02, Custom = 0x10 };
00116 enum PageSelectionType { ApplicationSide = 0x01, SystemSide = 0x02 };
00126 enum ApplicationType { Dialog = 0x00, StandAlone = 0x01, StandAlonePersistent = 0x02 };
00127
00128
00137 enum PageSetType { AllPages = 0x00, OddPages = 0x01, EvenPages = 0x02 };
00145 enum CollateType { Collate = 0x00, Uncollate = 0x01 };
00146
00147
00152 enum ColorMode { GrayScale = QPrinter::GrayScale, Color = QPrinter::Color };
00157 enum Orientation { Portrait = QPrinter::Portrait, Landscape = QPrinter::Landscape };
00162 enum PageOrder { FirstPageFirst = QPrinter::FirstPageFirst, LastPageFirst = QPrinter::LastPageFirst };
00167 enum PageSize
00168 {
00169 A4 = QPrinter::A4,
00170 B5 = QPrinter::B5,
00171 Letter = QPrinter::Letter,
00172 Legal = QPrinter::Legal,
00173 Executive = QPrinter::Executive,
00174 A0 = QPrinter::A0,
00175 A1 = QPrinter::A1,
00176 A2 = QPrinter::A2,
00177 A3 = QPrinter::A3,
00178 A5 = QPrinter::A5,
00179 A6 = QPrinter::A6,
00180 A7 = QPrinter::A7,
00181 A8 = QPrinter::A8,
00182 A9 = QPrinter::A9,
00183 B0 = QPrinter::B0,
00184 B1 = QPrinter::B1,
00185 B10 = QPrinter::B10,
00186 B2 = QPrinter::B2,
00187 B3 = QPrinter::B3,
00188 B4 = QPrinter::B4,
00189 B6 = QPrinter::B6,
00190 B7 = QPrinter::B7,
00191 B8 = QPrinter::B8,
00192 B9 = QPrinter::B9,
00193 C5E = QPrinter::C5E,
00194 Comm10E = QPrinter::Comm10E,
00195 DLE = QPrinter::DLE,
00196 Folio = QPrinter::Folio,
00197 Ledger = QPrinter::Ledger,
00198 Tabloid = QPrinter::Tabloid,
00199 NPageSize = QPrinter::NPageSize
00200 };
00201
00202
00210 KPrinter(
bool restore =
true, QPrinter::PrinterMode m = QPrinter::ScreenResolution );
00214 ~KPrinter();
00215
00216
00220
bool newPage();
00224
bool abort();
00228
bool aborted() const;
00232
bool outputToFile() const;
00236
void setOutputToFile(
bool);
00240
QString outputFileName() const;
00244
void setOutputFileName(const
QString&);
00248 QString docName() const;
00252
void setDocName(const QString&);
00256 QString creator() const;
00260
void setCreator(const QString&);
00264
bool fullPage() const;
00268
void setFullPage(
bool);
00272 ColorMode colorMode() const;
00276
void setColorMode(ColorMode);
00280
int numCopies() const;
00284
void setNumCopies(
int n);
00288 Orientation orientation() const;
00292
void setOrientation(Orientation);
00296 PageOrder pageOrder() const;
00300
void setPageOrder(PageOrder);
00304 CollateType collate() const;
00308
void setCollate(CollateType type);
00312
int minPage() const;
00316
int maxPage() const;
00320
void setMinMax(
int,
int);
00329
int fromPage() const KDE_DEPRECATED;
00338
int toPage() const;
00342
void setFromTo(
int,
int);
00346 PageSize pageSize() const;
00350
void setPageSize(PageSize);
00354 QString printerName() const;
00358
void setPrinterName(const QString&);
00365 QString printProgram() const;
00394
void setPrintProgram(const QString& cmd);
00398 QString printerSelectionOption() const;
00402
void setPrinterSelectionOption(const QString&);
00407
int currentPage() const;
00435
void setCurrentPage(
int p = 0);
00439 PageSetType pageSet() const;
00447
bool setup(
QWidget *parent = 0, const QString& caption = QString::null,
bool forceExpand = false);
00451
QSize margins() const;
00455
void setMargins(
QSize m);
00465
QSize realPageSize() const;
00470
void setRealPageSize(
QSize p );
00475
void setRealDrawableArea( const
QRect& r );
00480
QRect realDrawableArea() const;
00481
00482
void margins( uint *top, uint *left, uint *bottom, uint *right ) const;
00483
void setMargins( uint top, uint left, uint bottom, uint right );
00484
00491
QValueList<
int> pageList() const;
00511
void setPreviewOnly(
bool on);
00516
bool previewOnly() const;
00525
void setResolution(
int dpi);
00531
int resolution() const;
00532
00543
void setUsePrinterResolution(
bool on );
00544
00548 KPrinterImpl* implementation() const;
00556
bool printFiles(const
QStringList& files,
bool removeafter = false,
bool startviewer = true);
00557
00567 static
void addDialogPage(
KPrintDialogPage* _page);
00574 static
void setPageSelection(PageSelectionType _mode);
00580 static PageSelectionType pageSelection();
00587 static
void setApplicationType(ApplicationType type);
00593 static ApplicationType applicationType();
00600 static
void addStandardPage(
int p);
00608 static
void removeStandardPage(
int p);
00615
00616
00647 const QString& option(const QString& key) const;
00656
void setOption(const QString& key, const QString& value);
00661 const
QMap<QString,QString>& options() const;
00668
void setOptions(const
QMap<QString,QString>& opts);
00675
void initOptions(const
QMap<QString,QString>& opts);
00676
00683 QString searchName() const;
00689
void setSearchName(const QString& n);
00694 QString errorMessage() const;
00699
void setErrorMessage(const QString& msg);
00717
bool autoConfigure(const QString& prname = QString::null,
QWidget *parent = 0);
00726
void setDocFileName(const QString& filename);
00733 QString docFileName() const;
00741
void setDocDirectory( const QString& dir );
00748 QString docDirectory() const;
00749
00750 protected:
00751 virtual
bool cmd(
int,
QPainter*, QPDevCmdParam*);
00752 virtual
int metric(
int) const;
00753
void translateQtOptions();
00754
void loadSettings();
00755
void saveSettings();
00756
void preparePrinting();
00757
void finishPrinting();
00758
void reload();
00759
void init(
bool restore = true,
QPrinter::PrinterMode m =
QPrinter::ScreenResolution);
00760
bool doPreview(const QString& file);
00761
void setRealPageSize(DrPageSize* p);
00762
void setOption( const QString& key, const QString& value,
bool broadcast );
00763
00764 protected:
00765 KPrinterPrivate *d;
00766 };
00767
00768
00769
00770
00771
00772 KDEPRINT_EXPORT KPrinter::PageSize pageNameToPageSize(const QString& name);
00773 KDEPRINT_EXPORT const
char* pageSizeToPageName(KPrinter::PageSize s);
00778
QSize rangeToSize( const QString& );
00779
00780 #endif