IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QPageSize Class

The QPageSize class describes the size and name of a defined page size.

This class was introduced in Qt 5.3.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QPageSize Class

  • Header: QPageSize

  • Since: Qt 5.3

  • CMake:

    find_package(Qt6 REQUIRED COMPONENTS Gui)

    target_link_libraries(mytarget PRIVATE Qt6::Gui)

  • qmake: QT += gui

Detailed Description

This class implements support for the set of standard page sizes as defined in the Adobe Postscript PPD Standard v4.3. It defines the standard set of page sizes in points, millimeters and inches and ensures these sizes are consistently used. Other size units can be used but will be calculated results and so may not always be consistent. The defined point sizes are always a integer, all other sizes can be fractions of a unit.

The defined size is always in width x height order with no implied page orientation. Note that it is possible for page sizes to be defined where the width is greater than the height, such as QPageSize::Ledger, so you cannot rely on comparing the width and height values to determine page orientation.

For example, A4 is defined by the standard as 210mm x 297mm, 8.27in x 11.69in, or 595pt x 842pt.

You can also define custom page sizes with custom names in any units you want and this unit size will be preserved and used as the base for all other unit size calculations.

When creating a QPageSize using a custom QSize you can choose if you want QPageSize to try match the size to a standard page size. By default QPaperSize uses a FuzzyMatch mode where it will match a given page size to a standard page size if it falls within 3 postscript points of a defined standard size. You can override this to request only an exact match but this is not recommended as conversions between units can easily lose 3 points and result in incorrect page sizes.

A QPageSize instance may also be obtained by querying the supported page sizes for a print device. In this case the localized name returned is that defined by the printer itself. Note that the print device may not support the current default locale language.

The class also provides convenience methods for converting page size IDs to and from various unit sizes.

See Also

Member Type Documentation

 

enum QPageSize::PageSizeId

This enum type lists the available page sizes as defined in the Postscript PPD standard. These values are duplicated in QPagedPaintDevice and QPrinter.

The defined sizes are:

Constant

Value

Description

QPageSize::A0

3

841 x 1189 mm

QPageSize::A1

4

594 x 841 mm

QPageSize::A2

5

420 x 594 mm

QPageSize::A3

6

297 x 420 mm

QPageSize::A4

7

210 x 297 mm, 8.26 x 11.69 inches

QPageSize::A5

8

148 x 210 mm

QPageSize::A6

9

105 x 148 mm

QPageSize::A7

10

74 x 105 mm

QPageSize::A8

11

52 x 74 mm

QPageSize::A9

12

37 x 52 mm

QPageSize::B0

14

1000 x 1414 mm

QPageSize::B1

15

707 x 1000 mm

QPageSize::B2

16

500 x 707 mm

QPageSize::B3

17

353 x 500 mm

QPageSize::B4

18

250 x 353 mm

QPageSize::B5

19

176 x 250 mm, 6.93 x 9.84 inches

QPageSize::B6

20

125 x 176 mm

QPageSize::B7

21

88 x 125 mm

QPageSize::B8

22

62 x 88 mm

QPageSize::B9

23

44 x 62 mm

QPageSize::B10

24

31 x 44 mm

QPageSize::C5E

25

163 x 229 mm

QPageSize::Comm10E

26

105 x 241 mm, U.S. Common 10 Envelope

QPageSize::DLE

27

110 x 220 mm

QPageSize::Executive

2

7.5 x 10 inches, 190.5 x 254 mm

QPageSize::Folio

28

210 x 330 mm

QPageSize::Ledger

29

431.8 x 279.4 mm

QPageSize::Legal

1

8.5 x 14 inches, 215.9 x 355.6 mm

QPageSize::Letter

0

8.5 x 11 inches, 215.9 x 279.4 mm

QPageSize::Tabloid

30

279.4 x 431.8 mm

QPageSize::Custom

31

Unknown, or a user defined size.

QPageSize::A10

13

 

QPageSize::A3Extra

32

 

QPageSize::A4Extra

33

 

QPageSize::A4Plus

34

 

QPageSize::A4Small

35

 

QPageSize::A5Extra

36

 

QPageSize::B5Extra

37

 

QPageSize::JisB0

38

 

QPageSize::JisB1

39

 

QPageSize::JisB2

40

 

QPageSize::JisB3

41

 

QPageSize::JisB4

42

 

QPageSize::JisB5

43

 

QPageSize::JisB6

44

,

QPageSize::JisB7

45

 

QPageSize::JisB8

46

 

QPageSize::JisB9

47

 

QPageSize::JisB10

48

 

QPageSize::AnsiA

Letter

= Letter

QPageSize::AnsiB

Ledger

= Ledger

QPageSize::AnsiC

49

 

QPageSize::AnsiD

50

 

QPageSize::AnsiE

51

 

QPageSize::LegalExtra

52

 

QPageSize::LetterExtra

53

 

QPageSize::LetterPlus

54

 

QPageSize::LetterSmall

55

 

QPageSize::TabloidExtra

56

 

QPageSize::ArchA

57

 

QPageSize::ArchB

58

 

QPageSize::ArchC

59

 

QPageSize::ArchD

60

 

QPageSize::ArchE

61

 

QPageSize::Imperial7x9

62

 

QPageSize::Imperial8x10

63

 

QPageSize::Imperial9x11

64

 

QPageSize::Imperial9x12

65

 

QPageSize::Imperial10x11

66

 

QPageSize::Imperial10x13

67

 

QPageSize::Imperial10x14

68

 

QPageSize::Imperial12x11

69

 

QPageSize::Imperial15x11

70

 

QPageSize::ExecutiveStandard

71

 

QPageSize::Note

72

 

QPageSize::Quarto

73

 

QPageSize::Statement

74

 

QPageSize::SuperA

75

 

QPageSize::SuperB

76

 

QPageSize::Postcard

77

 

QPageSize::DoublePostcard

78

 

QPageSize::Prc16K

79

 

QPageSize::Prc32K

80

 

QPageSize::Prc32KBig

81

 

QPageSize::FanFoldUS

82

 

QPageSize::FanFoldGerman

83

 

QPageSize::FanFoldGermanLegal

84

 

QPageSize::EnvelopeB4

85

 

QPageSize::EnvelopeB5

86

 

QPageSize::EnvelopeB6

87

 

QPageSize::EnvelopeC0

88

 

QPageSize::EnvelopeC1

89

 

QPageSize::EnvelopeC2

90

 

QPageSize::EnvelopeC3

91

 

QPageSize::EnvelopeC4

92

 

QPageSize::EnvelopeC5

C5E

= C5E

QPageSize::EnvelopeC6

93

 

QPageSize::EnvelopeC65

94

 

QPageSize::EnvelopeC7

95

 

QPageSize::EnvelopeDL

DLE

= DLE

QPageSize::Envelope9

96

 

QPageSize::Envelope10

Comm10E

= Comm10E

QPageSize::Envelope11

97

 

QPageSize::Envelope12

98

 

QPageSize::Envelope14

99

 

QPageSize::EnvelopeMonarch

100

 

QPageSize::EnvelopePersonal

101

 

QPageSize::EnvelopeChou3

102

 

QPageSize::EnvelopeChou4

103

 

QPageSize::EnvelopeInvite

104

 

QPageSize::EnvelopeItalian

105

 

QPageSize::EnvelopeKaku2

106

 

QPageSize::EnvelopeKaku3

107

 

QPageSize::EnvelopePrc1

108

 

QPageSize::EnvelopePrc2

109

 

QPageSize::EnvelopePrc3

110

 

QPageSize::EnvelopePrc4

111

 

QPageSize::EnvelopePrc5

112

 

QPageSize::EnvelopePrc6

113

 

QPageSize::EnvelopePrc7

114

 

QPageSize::EnvelopePrc8

115

 

QPageSize::EnvelopePrc9

116

 

QPageSize::EnvelopePrc10

117

 

QPageSize::EnvelopeYou4

118

 

QPageSize::LastPageSize

EnvelopeYou4

= EnvelopeYou4

Due to historic reasons QPageSize::Executive is not the same as the standard Postscript and Windows Executive size, use QPageSize::ExecutiveStandard instead.

The Postscript standard size QPageSize::Folio is different to the Windows DMPAPER_FOLIO size, use the Postscript standard size QPageSize::FanFoldGermanLegal if needed.

enum QPageSize::SizeMatchPolicy

Constant

Value

Description

QPageSize::FuzzyMatch

0

Match to a standard page size if within the margin of tolerance.

QPageSize::FuzzyOrientationMatch

1

Match to a standard page size if within the margin of tolerance regardless of orientation.

QPageSize::ExactMatch

2

Only match to a standard page size if the sizes match exactly.

enum QPageSize::Unit

This enum type is used to specify the measurement unit for page sizes.

Constant

Value

QPageSize::Millimeter

0

 

QPageSize::Point

1

1/72th of an inch

QPageSize::Inch

2

 

QPageSize::Pica

3

1/72th of a foot, 1/6th of an inch, 12 Points

QPageSize::Didot

4

1/72th of a French inch, 0.375 mm

QPageSize::Cicero

5

1/6th of a French inch, 12 Didot, 4.5mm

Member Function Documentation

 

QPageSize::QPageSize()

Creates a null QPageSize.

QPageSize::QPageSize(QPageSize::PageSizeId pageSize)

Creates a QPageSize of the standard pageSize.

If pageSize is QPageSize::Custom then the resulting QPageSize will not be valid. Use the custom size constructor instead.

[explicit] QPageSize::QPageSize(const QSize &pointSize, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

Creates a QPageSize of the given pointSize in Points using the matching matchPolicy.

If the given pointSize matches a standard QPageSize::PageSizeId, then that page size will be used. Note that if the matchPolicy is FuzzyMatch this may result in the pointSize being adjusted to the standard size. To prevent this happening use a matchPolicy of ExactMatch instead.

If the given pointSize is not a standard QPageSize::PageSizeId then a QPageSize::Custom size will be created.

If name is null then the standard localized name will be used. If a custom page size then a custom name in the format "Custom (width x height)" will be created.

The matchPolicy defaults to FuzzyMatch.

[explicit] QPageSize::QPageSize(const QSizeF &size, QPageSize::Unit units, const QString &name = QString(), QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

Creates a custom page of the given size in units.

If the given size matches a standard QPageSize::PageSizeId, then that page size will be used. Note that if the matchPolicy is FuzzyMatch this may result in the size being adjusted to the standard size. To prevent this happening use a matchPolicy of ExactMatch instead.

If the given size is not a standard QPageSize::PageSizeId then a QPageSize::Custom size will be created. The original unit size will be preserved and used as the base for all other unit size calculations.

If name is null then a custom name will be created in the form "Custom (width x height)" where the size is expressed in units provided.

QPageSize::QPageSize(const QPageSize &other)

Copy constructor, copies other to this.

QPageSize::~QPageSize()

Destroys the page.

QSizeF QPageSize::definitionSize() const

Returns the definition size of the page size.

For a standard page size this will be the size as defined in the relevant standard, i.e. ISO A4 will be defined in millimeters while ANSI Letter will be defined in inches.

For a custom page size this will be the original size used to create the page size object.

If the QPageSize is invalid then the QSizeF will be invalid.

See Also

See also definitionUnits()

[static] QSizeF QPageSize::definitionSize(QPageSize::PageSizeId pageSizeId)

Returns the definition size of the standard pageSizeId.

To obtain the definition units, call QPageSize::definitionUnits().

QPageSize::Unit QPageSize::definitionUnits() const

Returns the definition units of the page size.

For a standard page size this will be the units as defined in the relevant standard, i.e. ISO A4 will be defined in millimeters while ANSI Letter will be defined in inches.

For a custom page size this will be the original units used to create the page size object.

If the QPageSize is invalid then the QPageSize::Unit will be invalid.

See Also

See also definitionSize()

[static] QPageSize::Unit QPageSize::definitionUnits(QPageSize::PageSizeId pageSizeId)

Returns the definition units of the standard pageSizeId.

To obtain the definition size, call QPageSize::definitionSize().

QPageSize::PageSizeId QPageSize::id() const

Returns the standard QPageSize::PageSizeId of the page, or QPageSize::Custom.

If the QPageSize is invalid then the ID will be QPageSize::Custom.

[static] QPageSize::PageSizeId QPageSize::id(const QSize &pointSize, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

Returns the standard QPageSize::PageSizeId of the given pointSize in points using the given matchPolicy.

If using FuzzyMatch then the point size of the PageSizeId returned may not exactly match the pointSize you passed in. You should call QPageSize::sizePoints() using the returned PageSizeId to find out the actual point size of the PageSizeId before using it in any calculations.

[static] QPageSize::PageSizeId QPageSize::id(const QSizeF &size, QPageSize::Unit units, QPageSize::SizeMatchPolicy matchPolicy = FuzzyMatch)

Returns the standard QPageSize::PageSizeId of the given size in units using the given matchPolicy.

If using FuzzyMatch then the unit size of the PageSizeId returned may not exactly match the size you passed in. You should call QPageSize::size() using the returned PageSizeId to find out the actual unit size of the PageSizeId before using it in any calculations.

[static] QPageSize::PageSizeId QPageSize::id(int windowsId)

Returns the PageSizeId for the given Windows DMPAPER enum value windowsId.

If there is no matching PageSizeId then QPageSize::Custom is returned.

bool QPageSize::isEquivalentTo(const QPageSize &other) const

Returns true if this page is equivalent to the other page, i.e. if the page has the same size regardless of other attributes like name.

bool QPageSize::isValid() const

Returns true if this page size is valid.

The page size may be invalid if created with an invalid PageSizeId, or a negative or invalid QSize or QSizeF, or the null constructor.

QString QPageSize::key() const

Returns the unique key of the page size.

By default this is the PPD standard mediaOption keyword for the page size, or the PPD custom format key. If the QPageSize instance was obtained from a print device then this will be the key provided by the print device and may differ from the standard key.

If the QPageSize is invalid then the key will be an empty string.

This key should never be shown to end users, it is an internal key only. For a human-readable name use name().

See Also

See also name()

[static] QString QPageSize::key(QPageSize::PageSizeId pageSizeId)

Returns the PPD mediaOption keyword of the standard pageSizeId.

If the QPageSize is invalid then the key will be empty.

QString QPageSize::name() const

Returns a localized human-readable name for the page size.

If the QPageSize instance was obtained from a print device then the name used is that provided by the print device. Note that a print device may not support the current default locale language.

If the QPageSize is invalid then the name will be an empty string.

[static] QString QPageSize::name(QPageSize::PageSizeId pageSizeId)

Returns the localized name of the standard pageSizeId.

If the QPageSize is invalid then the name will be empty.

QRectF QPageSize::rect(QPageSize::Unit units) const

Returns the page rectangle in the required units.

If the QPageSize is invalid then the QRect will be invalid.

QRect QPageSize::rectPixels(int resolution) const

Returns the page rectangle in Device Pixels at the given resolution.

If the QPageSize is invalid then the QRect will be invalid.

QRect QPageSize::rectPoints() const

Returns the page rectangle in Postscript Points (1/72 of an inch).

If the QPageSize is invalid then the QRect will be invalid.

QSizeF QPageSize::size(QPageSize::Unit units) const

Returns the size of the page in the required units.

If the QPageSize is invalid then the QSizeF will be invalid.

[static] QSizeF QPageSize::size(QPageSize::PageSizeId pageSizeId, QPageSize::Unit units)

Returns the size of the standard pageSizeId in the requested units.

QSize QPageSize::sizePixels(int resolution) const

Returns the size of the page in Device Pixels at the given resolution.

If the QPageSize is invalid then the QSize will be invalid.

[static] QSize QPageSize::sizePixels(QPageSize::PageSizeId pageSizeId, int resolution)

Returns the size of the standard pageSizeId in Device Pixels for the given resolution.

QSize QPageSize::sizePoints() const

Returns the size of the page in Postscript Points (1/72 of an inch).

If the QPageSize is invalid then the QSize will be invalid.

[static] QSize QPageSize::sizePoints(QPageSize::PageSizeId pageSizeId)

Returns the size of the standard pageSizeId in Points.

void QPageSize::swap(QPageSize &other)

Swaps this QPageSize with other. This function is very fast and never fails.

int QPageSize::windowsId() const

Returns the Windows DMPAPER enum value for the page size.

Not all valid PPD page sizes have a Windows equivalent, in which case 0 will be returned.

If the QPageSize is invalid then the Windows ID will be 0.

See Also

See also id()

[static] int QPageSize::windowsId(QPageSize::PageSizeId pageSizeId)

Returns the Windows DMPAPER enum value of the standard pageSizeId.

Not all valid PPD page sizes have a Windows equivalent, in which case 0 will be returned.

QPageSize &QPageSize::operator=(QPageSize &&other)

Move-assigns other to this QPageSize instance, transferring the ownership of the managed pointer to this instance.

QPageSize &QPageSize::operator=(const QPageSize &other)

Assignment operator, assigns other to this.

Related Non-Members

 

bool operator!=(const QPageSize &lhs, const QPageSize &rhs)

Returns true if page size lhs is unequal to page size rhs, i.e. if the page size has different attributes. Current attributes are size and name.

bool operator==(const QPageSize &lhs, const QPageSize &rhs)

Returns true if page size lhs is equal to page size rhs, i.e. if the page sizes have the same attributes. Current attributes are size and name.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+