Class: Axlsx::PageMargins

Inherits:
Object
  • Object
show all
Includes:
OptionsParser, SerializedAttributes
Defined in:
lib/axlsx/workbook/worksheet/page_margins.rb

Overview

Note:

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
0.50

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from SerializedAttributes

#declared_attributes, included, #serialized_attributes, #serialized_element_attributes

Methods included from OptionsParser

#parse_options

Constructor Details

#initialize(options = {}) ⇒ PageMargins

Creates a new PageMargins object

Parameters:

  • options (Hash) (defaults to: {})

    a customizable set of options

Options Hash (options):

  • left (Numeric)

    The left margin in inches

  • right (Numeric)

    The right margin in inches

  • bottom (Numeric)

    The bottom margin in inches

  • top (Numeric)

    The top margin in inches

  • header (Numeric)

    The header margin in inches

  • footer (Numeric)

    The footer margin in inches



23
24
25
26
27
28
29
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 23

def initialize(options={})
  # Default values taken from MS Excel for Mac 2011
  @left = @right = DEFAULT_LEFT_RIGHT
  @top = @bottom = DEFAULT_TOP_BOTTOM
  @header = @footer = DEFAULT_HEADER_FOOTER
  parse_options options
end

Instance Attribute Details

#bottomFloat

Bottom margin (in inches)

Returns:

  • (Float)


56
57
58
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 56

def bottom
  @bottom
end

Footer margin (in inches)

Returns:

  • (Float)


64
65
66
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 64

def footer
  @footer
end

#headerFloat

Header margin (in inches)

Returns:

  • (Float)


60
61
62
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 60

def header
  @header
end

#leftFloat

Left margin (in inches)

Returns:

  • (Float)


44
45
46
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 44

def left
  @left
end

#rightFloat

Right margin (in inches)

Returns:

  • (Float)


48
49
50
# File 'lib/axlsx/workbook/worksheet/page_margins.rb', line 48

def right
  @right
end

#topFloat

Top margin (in inches)

Returns:

  • (Float)


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.

Parameters:

  • margins (Hash)

    the margins to set (possible keys are :left, :right, :top, :bottom, :header and :footer).



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

Note:

For compatibility, this is a noop unless custom margins have been specified.

Serializes the page margins element

Parameters:

  • str (String) (defaults to: '')

Returns:

  • (String)

See Also:

  • #custom_margins_specified?


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