Class: Axlsx::PageMargins
- Inherits:
-
Object
- Object
- Axlsx::PageMargins
- Includes:
- OptionsParser, SerializedAttributes
- Defined in:
- lib/axlsx/workbook/worksheet/page_margins.rb
Overview
The recommended way to manage page margins is via Worksheet#page_margins
PageMargins specify the margins when printing a worksheet.
For compatibility, PageMargins serialize to an empty string, unless at least one custom margin value has been specified. Otherwise, it serializes to a PageMargin element specifying all 6 margin values (using default values for margins that have not been specified explicitly).
Constant Summary collapse
- DEFAULT_LEFT_RIGHT =
Default left and right margin (in inches)
0.75
- DEFAULT_TOP_BOTTOM =
Default top and bottom margins (in inches)
1.00
- DEFAULT_HEADER_FOOTER =
Default header and footer margins (in inches)
0.50
Instance Attribute Summary collapse
-
#bottom ⇒ Float
Bottom margin (in inches).
-
#footer ⇒ Float
Footer margin (in inches).
-
#header ⇒ Float
Header margin (in inches).
-
#left ⇒ Float
Left margin (in inches).
-
#right ⇒ Float
Right margin (in inches).
-
#top ⇒ Float
Top margin (in inches).
Instance Method Summary collapse
-
#initialize(options = {}) ⇒ PageMargins
constructor
Creates a new PageMargins object.
-
#set(margins) ⇒ Object
Set some or all margins at once.
-
#to_xml_string(str = '') ⇒ String
Serializes the page margins element.
Methods included from SerializedAttributes
#declared_attributes, included, #serialized_attributes, #serialized_element_attributes
Methods included from OptionsParser
Constructor Details
#initialize(options = {}) ⇒ PageMargins
Creates a new PageMargins object
23 24 25 26 27 28 29 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 23 def initialize(={}) # Default values taken from MS Excel for Mac 2011 @left = @right = DEFAULT_LEFT_RIGHT @top = @bottom = DEFAULT_TOP_BOTTOM @header = @footer = DEFAULT_HEADER_FOOTER end |
Instance Attribute Details
#bottom ⇒ Float
Bottom margin (in inches)
56 57 58 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 56 def bottom @bottom end |
#footer ⇒ Float
Footer margin (in inches)
64 65 66 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 64 def @footer end |
#header ⇒ Float
Header margin (in inches)
60 61 62 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 60 def header @header end |
#left ⇒ Float
Left margin (in inches)
44 45 46 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 44 def left @left end |
#right ⇒ Float
Right margin (in inches)
48 49 50 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 48 def right @right end |
#top ⇒ Float
Top margin (in inches)
52 53 54 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 52 def top @top end |
Instance Method Details
#set(margins) ⇒ Object
Set some or all margins at once.
68 69 70 71 72 73 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 68 def set(margins) margins.select do |k, v| next unless [:left, :right, :top, :bottom, :header, :footer].include? k send("#{k}=", v) end end |
#to_xml_string(str = '') ⇒ String
For compatibility, this is a noop unless custom margins have been specified.
Serializes the page margins element
93 94 95 96 97 |
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 93 def to_xml_string(str = '') str << '<pageMargins ' serialized_attributes str str << '/>' end |