class OoxmlParser::FileReference
Class for storing image data
Attributes
@return [String] content of file
@return [String] path to file
@return [String] id of resource
Public Instance Methods
Source
# File lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb, line 18 def parse(node) node.attributes.each do |key, value| case key when 'embed', 'id', 'link' @resource_id = value.value end end return self unless @resource_id return self if @resource_id.empty? @path = root_object.get_link_from_rels(@resource_id) if !@path || @path.empty? warn "Cant find path to media file by id: #{@resource_id}" return self end return self if @path == 'NULL' return self if @path.match?(URI::DEFAULT_PARSER.make_regexp) full_path_to_file = root_object.unpacked_folder + root_object.root_subfolder + @path.gsub('..', '') if File.exist?(full_path_to_file) @content = if File.extname(@path) == '.xlsx' parse_ole_xlsx(full_path_to_file) else File.binread(full_path_to_file) end else warn "Couldn't find #{full_path_to_file} file on filesystem. Possible problem in original document" end self end
Parse FileReference
object @param node [Nokogiri::XML:Element] node to parse @return [FileReference] result of parsing
Private Instance Methods
Source
# File lib/ooxml_parser/common_parser/common_data/alternate_content/drawing/graphic/picture/docx_blip/file_reference.rb, line 54 def parse_ole_xlsx(full_path) OoxmlParser::XlsxParser.parse_xlsx(full_path) end
Parse ole xlsx file @param [String] full_path to file @return [XLSXWorkbook]