Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/openpyxl/worksheet/page.py: 60%
97 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1# Copyright (c) 2010-2022 openpyxl
3from openpyxl.descriptors.serialisable import Serialisable
4from openpyxl.descriptors import (
5 Float,
6 Bool,
7 Integer,
8 NoneSet,
9 )
10from openpyxl.descriptors.excel import UniversalMeasure, Relation
13class PrintPageSetup(Serialisable):
14 """ Worksheet print page setup """
16 tagname = "pageSetup"
18 orientation = NoneSet(values=("default", "portrait", "landscape"))
19 paperSize = Integer(allow_none=True)
20 scale = Integer(allow_none=True)
21 fitToHeight = Integer(allow_none=True)
22 fitToWidth = Integer(allow_none=True)
23 firstPageNumber = Integer(allow_none=True)
24 useFirstPageNumber = Bool(allow_none=True)
25 paperHeight = UniversalMeasure(allow_none=True)
26 paperWidth = UniversalMeasure(allow_none=True)
27 pageOrder = NoneSet(values=("downThenOver", "overThenDown"))
28 usePrinterDefaults = Bool(allow_none=True)
29 blackAndWhite = Bool(allow_none=True)
30 draft = Bool(allow_none=True)
31 cellComments = NoneSet(values=("asDisplayed", "atEnd"))
32 errors = NoneSet(values=("displayed", "blank", "dash", "NA"))
33 horizontalDpi = Integer(allow_none=True)
34 verticalDpi = Integer(allow_none=True)
35 copies = Integer(allow_none=True)
36 id = Relation()
39 def __init__(self,
40 worksheet=None,
41 orientation=None,
42 paperSize=None,
43 scale=None,
44 fitToHeight=None,
45 fitToWidth=None,
46 firstPageNumber=None,
47 useFirstPageNumber=None,
48 paperHeight=None,
49 paperWidth=None,
50 pageOrder=None,
51 usePrinterDefaults=None,
52 blackAndWhite=None,
53 draft=None,
54 cellComments=None,
55 errors=None,
56 horizontalDpi=None,
57 verticalDpi=None,
58 copies=None,
59 id=None):
60 self._parent = worksheet
61 self.orientation = orientation
62 self.paperSize = paperSize
63 self.scale = scale
64 self.fitToHeight = fitToHeight
65 self.fitToWidth = fitToWidth
66 self.firstPageNumber = firstPageNumber
67 self.useFirstPageNumber = useFirstPageNumber
68 self.paperHeight = paperHeight
69 self.paperWidth = paperWidth
70 self.pageOrder = pageOrder
71 self.usePrinterDefaults = usePrinterDefaults
72 self.blackAndWhite = blackAndWhite
73 self.draft = draft
74 self.cellComments = cellComments
75 self.errors = errors
76 self.horizontalDpi = horizontalDpi
77 self.verticalDpi = verticalDpi
78 self.copies = copies
79 self.id = id
82 def __bool__(self):
83 return bool(dict(self))
88 @property
89 def sheet_properties(self):
90 """
91 Proxy property
92 """
93 return self._parent.sheet_properties.pageSetUpPr
96 @property
97 def fitToPage(self):
98 return self.sheet_properties.fitToPage
101 @fitToPage.setter
102 def fitToPage(self, value):
103 self.sheet_properties.fitToPage = value
106 @property
107 def autoPageBreaks(self):
108 return self.sheet_properties.autoPageBreaks
111 @autoPageBreaks.setter
112 def autoPageBreaks(self, value):
113 self.sheet_properties.autoPageBreaks = value
116 @classmethod
117 def from_tree(cls, node):
118 self = super(PrintPageSetup, cls).from_tree(node)
119 self.id = None # strip link to binary settings
120 return self
123class PrintOptions(Serialisable):
124 """ Worksheet print options """
126 tagname = "printOptions"
127 horizontalCentered = Bool(allow_none=True)
128 verticalCentered = Bool(allow_none=True)
129 headings = Bool(allow_none=True)
130 gridLines = Bool(allow_none=True)
131 gridLinesSet = Bool(allow_none=True)
133 def __init__(self, horizontalCentered=None,
134 verticalCentered=None,
135 headings=None,
136 gridLines=None,
137 gridLinesSet=None,
138 ):
139 self.horizontalCentered = horizontalCentered
140 self.verticalCentered = verticalCentered
141 self.headings = headings
142 self.gridLines = gridLines
143 self.gridLinesSet = gridLinesSet
146 def __bool__(self):
147 return bool(dict(self))
150class PageMargins(Serialisable):
151 """
152 Information about page margins for view/print layouts.
153 Standard values (in inches)
154 left, right = 0.75
155 top, bottom = 1
156 header, footer = 0.5
157 """
158 tagname = "pageMargins"
160 left = Float()
161 right = Float()
162 top = Float()
163 bottom = Float()
164 header = Float()
165 footer = Float()
167 def __init__(self, left=0.75, right=0.75, top=1, bottom=1, header=0.5,
168 footer=0.5):
169 self.left = left
170 self.right = right
171 self.top = top
172 self.bottom = bottom
173 self.header = header
174 self.footer = footer