# File lib/prawn/svg/document.rb, line 24
  def initialize(data, bounds, options)
    @css_parser = CssParser::Parser.new if CSS_PARSER_LOADED

    @root = REXML::Document.new(data).root
    @warnings = []
    @options = options
    @actual_width, @actual_height = bounds # set this first so % width/heights can be used

    if vb = @root.attributes['viewBox']
      x1, y1, x2, y2 = vb.strip.split(/\s+/)
      @x_offset, @y_offset = [x1.to_f, y1.to_f]
      @actual_width, @actual_height = [x2.to_f - x1.to_f, y2.to_f - y1.to_f]
    else
      @x_offset, @y_offset = [0, 0]
      @actual_width = points(@root.attributes['width'] || DEFAULT_WIDTH, :x)
      @actual_height = points(@root.attributes['height'] || DEFAULT_HEIGHT, :y)
    end
    
    if @options[:width]
      @width = @options[:width]      
      @scale = @options[:width] / @actual_width.to_f
    elsif @options[:height]
      @height = @options[:height]
      @scale = @options[:height] / @actual_height.to_f
    else
      @scale = 1
    end

    @width ||= @actual_width * @scale
    @height ||= @actual_height * @scale    
  end