class OoxmlParser::HeaderFooter

Class Header Footer classes

Attributes

elements[R]

@return [Array<OOXMLDocumentObject>] list of elements if object

id[R]

@return [Integer] id of header-footer

path_suffix[R]

@return [String] suffix for object files

type[R]

@return [Symbol] `:header` or `:footer`

Public Class Methods

new(type = :header, parent: nil) click to toggle source
Calls superclass method OoxmlParser::OOXMLDocumentObject::new
# File lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb, line 15
def initialize(type = :header, parent: nil)
  @type = type
  @elements = []
  super(parent: parent)
end

Public Instance Methods

parse(node) click to toggle source

Parse HeaderFooter @param [Nokogiri::XML:Node] node with HeaderFooter @return [HeaderFooter] result of parsing

# File lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb, line 47
def parse(node)
  @id = node.attribute('id').value.to_i
  parse_type(node)
  doc = parse_xml(OOXMLDocumentObject.path_to_folder + xml_path)
  doc.search(xpath_for_search).each do |footnote|
    next unless footnote.attribute('id').value.to_i == @id

    paragraph_number = 0
    footnote.xpath('w:p').each do |paragraph|
      @elements << DocumentStructure.default_paragraph_style.dup.parse(paragraph, paragraph_number, DocumentStructure.default_run_style, parent: self)
      paragraph_number += 1
    end
  end
  self
end
parse_type(node) click to toggle source

Parse type and path suffix by node type @param [Nokogiri::XML:Node] node with HeaderFooter

# File lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb, line 33
def parse_type(node)
  case node.name
  when 'footnoteReference'
    @path_suffix = 'footnote'
    @type = :header
  when 'endnoteReference'
    @path_suffix = 'endnote'
    @type = :footer
  end
end
xml_path() click to toggle source

@return [String] string with xml path

# File lib/ooxml_parser/docx_parser/docx_data/document_structure/header_footer.rb, line 27
def xml_path
  "word/#{path_suffix}s.xml"
end