class RubyDocx::Html

Attributes

doc[R]

attr_reader :xml, :doc, :zip, :styles, :styles_xml, :rels

html_str[R]

attr_reader :xml, :doc, :zip, :styles, :styles_xml, :rels

xml[R]

attr_reader :xml, :doc, :zip, :styles, :styles_xml, :rels

xml_doc[R]

attr_reader :xml, :doc, :zip, :styles, :styles_xml, :rels

zip[R]

attr_reader :xml, :doc, :zip, :styles, :styles_xml, :rels

Public Class Methods

new(html_str) click to toggle source
# File lib/ruby_docx/html.rb, line 21
def initialize(html_str)
  @html_str = html_str
  @doc = Nokogiri::HTML(@html_str)

  @zip = Zip::File.open("template.docx")

  @xml = @zip.read('word/document.xml')
  @xml_doc = Nokogiri::XML(@xml)

  # @path = path
  # @zip = Zip::File.open(path)

  # rels_xml = @zip.read('word/_rels/document.xml.rels')
  # @rels = Nokogiri::XML(rels_xml)
  # @rels.remove_namespaces!
  # @doc = Nokogiri::XML(@xml)
  # @styles_xml = @zip.read('word/styles.xml')
  # @styles = Nokogiri::XML(@styles_xml)
end
open_path(path) click to toggle source
# File lib/ruby_docx/html.rb, line 13
def self.open_path(path)
  self.new(File.read(path))
end
parse(html_str) click to toggle source
# File lib/ruby_docx/html.rb, line 17
def self.parse(html_str)
  self.new(html_str)
end

Public Instance Methods

save(path) click to toggle source
# File lib/ruby_docx/html.rb, line 41
def save(path)
  Zip::OutputStream.open(path) do |out|
    @zip.each do |entry|
      out.put_next_entry(entry.name)

      unless entry.name  =~ /\/$/
        out.write(@zip.read(entry.name))
      end
    end
  end
end