Class: Rasper::Report

Inherits:
Object
  • Object
show all
Defined in:
lib/rasper/report.rb

Class Method Summary collapse

Class Method Details

.generate(jasper_name, data, params = {}) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/rasper/report.rb', line 16

def generate(jasper_name, data, params = {})
  set_file_resolver(params)

  file_name = File.join(Config.jasper_dir || '.', jasper_name + '.jasper')
  jasper_content = File.read(file_name)
  data = { jasper_name => data }.to_xml
  xpath_criteria = "/hash/#{jasper_name}/#{jasper_name.singularize}"
  source = JRXmlDataSource.new(
      ByteArrayInputStream.new(data.to_java_bytes), xpath_criteria)
  input = BufferedInputStream.new(
      ByteArrayInputStream.new(jasper_content.to_java_bytes))
  String.from_java_bytes(
    JasperRunManager.runReportToPdf(input, params, source))
end