def text(text,options={})
text = text.to_s.dup
save_font do
options = @text_options.merge(options)
process_text_options(options)
font.normalize_encoding!(text) unless @skip_encoding
if options[:at]
if options[:align]
raise ArgumentError, "The :align option does not work with :at"
end
x,y = translate(options[:at])
font_size(options[:size]) { add_text_content(text,x,y,options) }
else
if options[:rotate]
raise ArgumentError, "Rotated text may only be used with :at"
end
wrapped_text(text,options)
end
end
end