1 /****************************************************************************
3 ** Copyright (C) 2012 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
6 ** This file is part of the QtGui module of the Qt Toolkit.
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and Digia. For licensing terms and
14 ** conditions see http://qt.digia.com/licensing. For further information
15 ** use the contact form at http://qt.digia.com/contact-us.
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
25 ** In addition, as a special exception, Digia gives you certain additional
26 ** rights. These rights are described in the Digia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
29 ** GNU General Public License Usage
30 ** Alternatively, this file may be used under the terms of the GNU
31 ** General Public License version 3.0 as published by the Free Software
32 ** Foundation and appearing in the file LICENSE.GPL included in the
33 ** packaging of this file. Please review the following information to
34 ** ensure the GNU General Public License version 3.0 requirements will be
35 ** met: http://www.gnu.org/copyleft/gpl.html.
40 ****************************************************************************/
42 #include "qpagedpaintdevice_p.h"
43 #include <qpagedpaintdevice.h>
53 {215.9f, 279.4f}, // Letter
54 {215.9f, 355.6f}, // Legal
55 {190.5f, 254}, // Executive
76 {105, 241}, // US Common
79 {431.8f, 279.4f}, // Ledger
80 {279.4f, 431.8f} // Tabloid
84 \class QPagedPaintDevice
87 \brief The QPagedPaintDevice class is a represents a paintdevice that supports
92 Paged paint devices are used to generate output for printing or for formats like PDF.
93 QPdfWriter and QPrinter inherit from it.
97 Constructs a new paged paint device.
99 QPagedPaintDevice::QPagedPaintDevice()
100 : d(new QPagedPaintDevicePrivate)
107 QPagedPaintDevice::~QPagedPaintDevice()
113 \enum QPagedPaintDevice::PageSize
115 This enum type specifies the page size of the paint device.
117 \value A0 841 x 1189 mm
118 \value A1 594 x 841 mm
119 \value A2 420 x 594 mm
120 \value A3 297 x 420 mm
121 \value A4 210 x 297 mm, 8.26 x 11.69 inches
122 \value A5 148 x 210 mm
123 \value A6 105 x 148 mm
124 \value A7 74 x 105 mm
127 \value B0 1000 x 1414 mm
128 \value B1 707 x 1000 mm
129 \value B2 500 x 707 mm
130 \value B3 353 x 500 mm
131 \value B4 250 x 353 mm
132 \value B5 176 x 250 mm, 6.93 x 9.84 inches
133 \value B6 125 x 176 mm
134 \value B7 88 x 125 mm
137 \value B10 31 x 44 mm
138 \value C5E 163 x 229 mm
139 \value Comm10E 105 x 241 mm, U.S. Common 10 Envelope
140 \value DLE 110 x 220 mm
141 \value Executive 7.5 x 10 inches, 190.5 x 254 mm
142 \value Folio 210 x 330 mm
143 \value Ledger 431.8 x 279.4 mm
144 \value Legal 8.5 x 14 inches, 215.9 x 355.6 mm
145 \value Letter 8.5 x 11 inches, 215.9 x 279.4 mm
146 \value Tabloid 279.4 x 431.8 mm
147 \value Custom Unknown, or a user defined size.
151 The page size can also be specified in millimeters using setPageSizeMM(). In this case the
152 page size enum is set to Custom.
156 \fn bool QPagedPaintDevice::newPage()
158 Starts a new page. Returns \c true on success.
163 Sets the size of the a page to \a size.
167 void QPagedPaintDevice::setPageSize(PageSize size)
172 d->pageSizeMM = QSizeF(pageSizes[A4].width, pageSizes[A4].height);
176 Returns the currently used page size.
178 QPagedPaintDevice::PageSize QPagedPaintDevice::pageSize() const
184 Sets the page size to \a size. \a size is specified in millimeters.
186 void QPagedPaintDevice::setPageSizeMM(const QSizeF &size)
188 d->pageSize = Custom;
189 d->pageSizeMM = size;
193 Returns the page size in millimeters.
195 QSizeF QPagedPaintDevice::pageSizeMM() const
197 return d->pageSizeMM;
201 Sets the margins to be used to \a margins.
203 Margins are specified in millimeters.
205 The margins are purely a hint to the drawing method. They don't affect the
206 coordinate system or clipping.
210 void QPagedPaintDevice::setMargins(const Margins &margins)
212 d->margins = margins;
216 returns the current margins of the paint device. The default is 0.
220 QPagedPaintDevice::Margins QPagedPaintDevice::margins() const