| /**************************************************************************** |
| ** |
| ** Copyright (C) 2015 The Qt Company Ltd. |
| ** Contact: http://www.qt.io/licensing/ |
| ** |
| ** This file is part of the QtGui module of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:LGPL21$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see http://www.qt.io/terms-conditions. For further |
| ** information use the contact form at http://www.qt.io/contact-us. |
| ** |
| ** GNU Lesser General Public License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Lesser |
| ** General Public License version 2.1 or version 3 as published by the Free |
| ** Software Foundation and appearing in the file LICENSE.LGPLv21 and |
| ** LICENSE.LGPLv3 included in the packaging of this file. Please review the |
| ** following information to ensure the GNU Lesser General Public License |
| ** requirements will be met: https://www.gnu.org/licenses/lgpl.html and |
| ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. |
| ** |
| ** As a special exception, The Qt Company gives you certain additional |
| ** rights. These rights are described in The Qt Company LGPL Exception |
| ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. |
| ** |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| #ifndef QPRINTER_H |
| #define QPRINTER_H |
| |
| #include <QtCore/qstring.h> |
| #include <QtCore/qscopedpointer.h> |
| #include <QtGui/qpagedpaintdevice.h> |
| #include <QtGui/qpagelayout.h> |
| #include <QtPrintSupport/qtprintsupportglobal.h> |
| |
| QT_BEGIN_NAMESPACE |
| |
| |
| #ifndef QT_NO_PRINTER |
| |
| #if defined(B0) |
| #undef B0 // Terminal hang-up. We assume that you do not want that. |
| #endif |
| |
| class QPrinterPrivate; |
| class QPaintEngine; |
| class QPrintEngine; |
| class QPrinterInfo; |
| class QPageSize; |
| class QPageMargins; |
| |
| class Q_PRINTSUPPORT_EXPORT QPrinter : public QPagedPaintDevice |
| { |
| Q_DECLARE_PRIVATE(QPrinter) |
| public: |
| enum PrinterMode { ScreenResolution, PrinterResolution, HighResolution }; |
| |
| explicit QPrinter(PrinterMode mode = ScreenResolution); |
| explicit QPrinter(const QPrinterInfo& printer, PrinterMode mode = ScreenResolution); |
| ~QPrinter(); |
| |
| int devType() const Q_DECL_OVERRIDE; |
| |
| enum Orientation { Portrait, Landscape }; |
| |
| // ### Qt6 Remove in favor of QPage::PageSize |
| // NOTE: Must keep in sync with QPageSize and QPagedPaintDevice |
| #ifndef Q_QDOC |
| typedef PageSize PaperSize; |
| #else |
| enum PaperSize { |
| // Existing Qt sizes |
| A4, |
| B5, |
| Letter, |
| Legal, |
| Executive, |
| A0, |
| A1, |
| A2, |
| A3, |
| A5, |
| A6, |
| A7, |
| A8, |
| A9, |
| B0, |
| B1, |
| B10, |
| B2, |
| B3, |
| B4, |
| B6, |
| B7, |
| B8, |
| B9, |
| C5E, |
| Comm10E, |
| DLE, |
| Folio, |
| Ledger, |
| Tabloid, |
| Custom, |
| |
| // New values derived from PPD standard |
| A10, |
| A3Extra, |
| A4Extra, |
| A4Plus, |
| A4Small, |
| A5Extra, |
| B5Extra, |
| |
| JisB0, |
| JisB1, |
| JisB2, |
| JisB3, |
| JisB4, |
| JisB5, |
| JisB6, |
| JisB7, |
| JisB8, |
| JisB9, |
| JisB10, |
| |
| // AnsiA = Letter, |
| // AnsiB = Ledger, |
| AnsiC, |
| AnsiD, |
| AnsiE, |
| LegalExtra, |
| LetterExtra, |
| LetterPlus, |
| LetterSmall, |
| TabloidExtra, |
| |
| ArchA, |
| ArchB, |
| ArchC, |
| ArchD, |
| ArchE, |
| |
| Imperial7x9, |
| Imperial8x10, |
| Imperial9x11, |
| Imperial9x12, |
| Imperial10x11, |
| Imperial10x13, |
| Imperial10x14, |
| Imperial12x11, |
| Imperial15x11, |
| |
| ExecutiveStandard, |
| Note, |
| Quarto, |
| Statement, |
| SuperA, |
| SuperB, |
| Postcard, |
| DoublePostcard, |
| Prc16K, |
| Prc32K, |
| Prc32KBig, |
| |
| FanFoldUS, |
| FanFoldGerman, |
| FanFoldGermanLegal, |
| |
| EnvelopeB4, |
| EnvelopeB5, |
| EnvelopeB6, |
| EnvelopeC0, |
| EnvelopeC1, |
| EnvelopeC2, |
| EnvelopeC3, |
| EnvelopeC4, |
| // EnvelopeC5 = C5E, |
| EnvelopeC6, |
| EnvelopeC65, |
| EnvelopeC7, |
| // EnvelopeDL = DLE, |
| |
| Envelope9, |
| // Envelope10 = Comm10E, |
| Envelope11, |
| Envelope12, |
| Envelope14, |
| EnvelopeMonarch, |
| EnvelopePersonal, |
| |
| EnvelopeChou3, |
| EnvelopeChou4, |
| EnvelopeInvite, |
| EnvelopeItalian, |
| EnvelopeKaku2, |
| EnvelopeKaku3, |
| EnvelopePrc1, |
| EnvelopePrc2, |
| EnvelopePrc3, |
| EnvelopePrc4, |
| EnvelopePrc5, |
| EnvelopePrc6, |
| EnvelopePrc7, |
| EnvelopePrc8, |
| EnvelopePrc9, |
| EnvelopePrc10, |
| EnvelopeYou4, |
| |
| // Last item, with commonly used synynoms from QPagedPrintEngine / QPrinter |
| LastPageSize = EnvelopeYou4, |
| NPageSize = LastPageSize, |
| NPaperSize = LastPageSize, |
| |
| // Convenience overloads for naming consistency |
| AnsiA = Letter, |
| AnsiB = Ledger, |
| EnvelopeC5 = C5E, |
| EnvelopeDL = DLE, |
| Envelope10 = Comm10E |
| }; |
| #endif |
| |
| enum PageOrder { FirstPageFirst, |
| LastPageFirst }; |
| |
| enum ColorMode { GrayScale, |
| Color }; |
| |
| enum PaperSource { OnlyOne, |
| Lower, |
| Middle, |
| Manual, |
| Envelope, |
| EnvelopeManual, |
| Auto, |
| Tractor, |
| SmallFormat, |
| LargeFormat, |
| LargeCapacity, |
| Cassette, |
| FormSource, |
| MaxPageSource, // Deprecated |
| CustomSource, |
| LastPaperSource = CustomSource, |
| Upper = OnlyOne // As defined in Windows |
| }; |
| |
| enum PrinterState { Idle, |
| Active, |
| Aborted, |
| Error }; |
| |
| enum OutputFormat { NativeFormat, PdfFormat }; |
| |
| // Keep in sync with QAbstractPrintDialog::PrintRange |
| enum PrintRange { AllPages, Selection, PageRange, CurrentPage }; |
| |
| enum Unit { |
| Millimeter, |
| Point, |
| Inch, |
| Pica, |
| Didot, |
| Cicero, |
| DevicePixel |
| }; |
| |
| enum DuplexMode { |
| DuplexNone = 0, |
| DuplexAuto, |
| DuplexLongSide, |
| DuplexShortSide |
| }; |
| |
| void setOutputFormat(OutputFormat format); |
| OutputFormat outputFormat() const; |
| |
| void setPrinterName(const QString &); |
| QString printerName() const; |
| |
| bool isValid() const; |
| |
| void setOutputFileName(const QString &); |
| QString outputFileName()const; |
| |
| void setPrintProgram(const QString &); |
| QString printProgram() const; |
| |
| void setDocName(const QString &); |
| QString docName() const; |
| |
| void setCreator(const QString &); |
| QString creator() const; |
| |
| #ifdef Q_QDOC |
| bool setPageLayout(const QPageLayout &pageLayout); |
| bool setPageSize(const QPageSize &pageSize); |
| bool setPageOrientation(QPageLayout::Orientation orientation); |
| bool setPageMargins(const QMarginsF &margins); |
| bool setPageMargins(const QMarginsF &margins, QPageLayout::Unit units); |
| QPageLayout pageLayout() const; |
| #else |
| using QPagedPaintDevice::setPageSize; |
| using QPagedPaintDevice::setPageMargins; |
| #endif |
| |
| void setOrientation(Orientation); |
| Orientation orientation() const; |
| |
| void setPageSize(PageSize) Q_DECL_OVERRIDE; |
| PageSize pageSize() const; |
| |
| void setPageSizeMM(const QSizeF &size) Q_DECL_OVERRIDE; |
| |
| void setPaperSize(PaperSize); |
| PaperSize paperSize() const; |
| |
| void setPaperSize(const QSizeF &paperSize, Unit unit); |
| QSizeF paperSize(Unit unit) const; |
| |
| void setPaperName(const QString &paperName); |
| QString paperName() const; |
| |
| void setPageOrder(PageOrder); |
| PageOrder pageOrder() const; |
| |
| void setResolution(int); |
| int resolution() const; |
| |
| void setColorMode(ColorMode); |
| ColorMode colorMode() const; |
| |
| void setCollateCopies(bool collate); |
| bool collateCopies() const; |
| |
| void setFullPage(bool); |
| bool fullPage() const; |
| |
| void setNumCopies(int); |
| int numCopies() const; |
| |
| int actualNumCopies() const; |
| |
| void setCopyCount(int); |
| int copyCount() const; |
| bool supportsMultipleCopies() const; |
| |
| void setPaperSource(PaperSource); |
| PaperSource paperSource() const; |
| |
| void setDuplex(DuplexMode duplex); |
| DuplexMode duplex() const; |
| |
| QList<int> supportedResolutions() const; |
| |
| #ifdef Q_OS_WIN |
| QList<PaperSource> supportedPaperSources() const; |
| #endif |
| |
| void setFontEmbeddingEnabled(bool enable); |
| bool fontEmbeddingEnabled() const; |
| |
| void setDoubleSidedPrinting(bool enable); |
| bool doubleSidedPrinting() const; |
| |
| void setWinPageSize(int winPageSize); |
| int winPageSize() const; |
| |
| QRect paperRect() const; |
| QRect pageRect() const; |
| QRectF paperRect(Unit) const; |
| QRectF pageRect(Unit) const; |
| |
| QString printerSelectionOption() const; |
| void setPrinterSelectionOption(const QString &); |
| |
| bool newPage() Q_DECL_OVERRIDE; |
| bool abort(); |
| |
| PrinterState printerState() const; |
| |
| QPaintEngine *paintEngine() const Q_DECL_OVERRIDE; |
| QPrintEngine *printEngine() const; |
| |
| void setFromTo(int fromPage, int toPage); |
| int fromPage() const; |
| int toPage() const; |
| |
| void setPrintRange(PrintRange range); |
| PrintRange printRange() const; |
| |
| void setMargins(const Margins &m) Q_DECL_OVERRIDE; |
| |
| void setPageMargins(qreal left, qreal top, qreal right, qreal bottom, Unit unit); |
| void getPageMargins(qreal *left, qreal *top, qreal *right, qreal *bottom, Unit unit) const; |
| |
| protected: |
| int metric(PaintDeviceMetric) const Q_DECL_OVERRIDE; |
| void setEngines(QPrintEngine *printEngine, QPaintEngine *paintEngine); |
| |
| private: |
| Q_DISABLE_COPY(QPrinter) |
| |
| QScopedPointer<QPrinterPrivate> d_ptr; |
| |
| friend class QPrintDialogPrivate; |
| friend class QAbstractPrintDialog; |
| friend class QAbstractPrintDialogPrivate; |
| friend class QPrintPreviewWidgetPrivate; |
| friend class QTextDocument; |
| friend class QPageSetupWidget; |
| }; |
| |
| #endif // QT_NO_PRINTER |
| |
| QT_END_NAMESPACE |
| |
| #endif // QPRINTER_H |