= ThinReports Generator
{}[http://travis-ci.org/thinreports/thinreports-generator] {}[https://codeclimate.com/github/thinreports/thinreports-generator]
{ThinReports}[http://www.thinreports.org/] is Open Source Reporting Solution for Ruby.
* ThinReports Editor (GUI Designer)
* ThinReports Generator (Report Generator for Ruby)
== Generator's features
Editor's features is {here}[http://www.thinreports.org/features/editor/].
=== Easy to generate PDF file
Design the layout using Editor, then embed values to text field in layout. That's it!
=== Simple runtime environments
Ruby, RubyGems, Prawn and Generator.
=== Dynamic
Generator can be dynamically operated ...
* value of TextBlock
* image of ImageBlock
* styles (border, fill, visibility, position, color, font) of shape
=== For Japan
* Japanese OK
* External characters (Gaiji)
== Supported Versions
* Ruby 1.8.7, 1.9.2, 1.9.3
* JRuby 1.6.5+ (Only 1.8mode)
== Install
Add the following line in your Gemfile:
gem 'thinreports'
Then bundle:
$ bundle
Or:
$ gem install thinreports
== Usage
*Caution:* In order to use the Generator, you must need the layout file(*.tlf) created with {ThinReportsEditor}[http://www.thinreports.org/features/editor/].
=== Basic format
require 'thinreports'
report = ThinReports::Report.new :layout => 'report.tlf'
# Page 1
report.start_new_page do
item(:title).value('ThinReports')
end
# Page 2
report.start_new_page do |page|
page.item(:title).value('Pure Ruby')
page.item(:title).style(:color, 'red')
end
report.generate_file('report.pdf')
Or,
ThinReports::Report.generate_file('report.pdf', :layout => 'report.tlf') do
start_new_page
page.item(:title).value('ThinReports')
start_new_page
page.item(:title).value('Pure Ruby').style(:color, '#ff0000')
end
=== List format
report = ThinReports::Report.new :layout => 'list.tlf'
report.start_new_page
10.times do |n|
report.page.list(:default).add_row do |row|
row.item(:no).value(n)
end
end
report.generate_file('list.tlf')
Or,
report.page.list(:default) do |list|
10.times do |n|
list.add_row :no => n
end
end
Since 0.7.5:
report = ThinReports::Report.new :layout => 'list.tlf'
10.times do |n|
report.list.add_row do |row|
row.item(:no).value(n)
end
end
More simply,
report.list do |list|
10.times do |n|
list.add_row :title => n
end
end
* +#start_new_page+ can be omitted because it is created new page automatically when +#list+ is called
* id argument of +#list+ can be omitted if is :default
{Learn more}[http://osc.matsukei.net/projects/thinreports/wiki/Getting_Started].
=== Rails3
* Rails Template handler for ThinReports DSL: {thinreports-rails}[https://github.com/takeshinoda/thinreports-rails]
== For more information
=== Release information
{News}[http://osc.matsukei.net/projects/thinreports/news] /
{Changelog}[http://osc.matsukei.net/projects/thinreports/wiki/Changelog]
=== Documentation
{Getting Started}[http://osc.matsukei.net/projects/thinreports/wiki/Getting_Started] /
{Examples}[http://osc.matsukei.net/projects/thinreports/wiki/Examples] /
{HowTos}[http://osc.matsukei.net/projects/thinreports/wiki/HowTos]
=== Support
{Open Forum}[http://osc.matsukei.net/projects/thinreports/boards]
== Author
{Matsukei}[http://www.matsukei.co.jp/] Co.,Ltd.
* twitter: {@thinreports_org}[https://twitter.com/thinreports_org]
* email: {thinreports@gmail.com}[mailto:thinreports@gmail.com]
== Contributing
* Pull request
* Feedback from {here}[http://osc.matsukei.net/projects/thinreports/issues/new]
== License
See LICENSE file.