Rasper
JRuby client to JasperReports API.
Currently, only does compilation of JRXML files and generation of PDF reports.
Installation
- After installing the gem
-
gem install rasper
You should install ‘Apache Maven 2 <maven.apache.org>`_ in order to download the JAR files needed to run JasperReports. This done, run a command
- for generating “pom.xml“
-
rasper generate_pom
- and run Maven to download all dependencies
-
mvn dependency:copy-dependencies -DoutputDirectory=/dir/for/jars
where “/dir/for/jars“ is the directory in which JARs will be downloaded.
For running tests, JAR files should be stored in “java/jars“ directory.
Usage
- Before doing anything, you should configure Rasper
-
Rasper::Config.configure do |config|
config.jar_dir = "/dir/of/jars" config.jasper_dir = "/dir/of/compiled/reports" config.image_dir = "/dir/of/images" config.locale = 'pt_BR'
end
Locale can be any Java-supported locale, in the format above.
- To compile a JRXML file, just run
-
Rasper::Compiler.compile(“path-to-jrxml-file”, “output-directory”)
and Rasper will compile JRXML file and generate a “jasper“ file. The second argument is optional and, if provided, should point to directory in which you want jasper file be stored. If it is omitted, jasper file is stored at the same directory as JRXML file.
- Having a compiled jasper file, you can generate a PDF report
-
pdf_content = Rasper::Report.generate(‘programmers’, [
{ name: 'Linus', software: 'Linux' }, { name: 'Yukihiro', software: 'Ruby' }, { name: 'Guido', software: 'Python' } ], { 'CITY' => 'Campos dos Goytacazes, Rio de Janeiro, Brazil', 'DATE' => '02/01/2013' })
In example above, jasper directory and image directory (if there’s some) should be configured.
“Rasper::Report.generate“ returns an array containing PDF bytes. It takes the jasper file name, an array of hashes having the fields and values for the report, and an optional third hash argument containing the report parameters. All the hash keys should match the fields and parameter names within the JRXML report.
Contributing
-
Fork it
-
Create your feature branch (‘git checkout -b my-new-feature`)
-
Commit your changes (‘git commit -am ’Add some feature’‘)
-
Push to the branch (‘git push origin my-new-feature`)
-
Create new Pull Request