1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# frozen_string_literal: true
module Axlsx
# Header/Footer options for printing a worksheet. All settings are optional.
#
# Headers and footers are generated using a string which is a combination
# of plain text and control characters. A fairly comprehensive list of control
# characters can be found here:
# https://github.com/randym/axlsx/blob/master/notes_on_header_footer.md
#
# @note The recommended way of managing header/footers is via Worksheet#header_footer
# @see Worksheet#initialize
class HeaderFooter
include Axlsx::OptionsParser
include Axlsx::SerializedAttributes
include Axlsx::Accessors
# Creates a new HeaderFooter object
# @option options [String] odd_header The content for headers on odd numbered pages.
# @option options [String] odd_footer The content for footers on odd numbered pages.
# @option options [String] even_header The content for headers on even numbered pages.
# @option options [String] even_footer The content for footers on even numbered pages.
# @option options [String] first_header The content for headers on the first page.
# @option options [String] first_footer The content for footers on the first page.
# @option options [Boolean] different_odd_even Setting this to true will show different headers/footers on odd and even pages. When false, the odd headers/footers are used on each page. (Default: false)
# @option options [Boolean] different_first If true, will use the first header/footer on page 1. Otherwise, the odd header/footer is used.
def initialize(options = {})
parse_options options
end
serializable_attributes :different_odd_even, :different_first
serializable_element_attributes :odd_header, :odd_footer, :even_header, :even_footer, :first_header, :first_footer
string_attr_accessor :odd_header, :odd_footer, :even_header, :even_footer, :first_header, :first_footer
boolean_attr_accessor :different_odd_even, :different_first
# Set some or all header/footers at once.
# @param [Hash] options The header/footer options to set (possible keys are :odd_header, :odd_footer, :even_header, :even_footer, :first_header, :first_footer, :different_odd_even, and :different_first).
def set(options)
parse_options options
end
# Serializes the header/footer object.
# @param [String] str
# @return [String]
def to_xml_string(str = +'')
serialized_tag('headerFooter', str) do
serialized_element_attributes(str) do |value|
::CGI.escapeHTML(value)
end
end
end
end
end
|