Caracal-Rails
Caracal is a ruby library for dynamically creating professional-quality Microsoft Word documents (.docx).
Caracal-Rails is a drop in solution for registering the Microsoft Word mime type and for establishing a template handler in Rails for the :docx format. All caracal documents are rendered with an explicit block passing an argument named docx
.
Installation
Add this line to your application's Gemfile:
gem 'caracal-rails'
Then execute:
$ bundle install
Usage
Design your controller normally:
class ReportsController < ApplicationController
def show
# collect your models/view models here
end
end
Then add a view file with the Caracal extension:
apps/views/reports/show.docx.caracal
Inside your view, simply issue Caracal commands on the document object:
docx.file_name 'quarterly_report'
docx.font 'Arial'
docx.font 'Droid Serif'
docx.style 'special' do
font 'Droid Serif'
italic true
size 16
end
docx.content do
h1 'Quarterly Report'
hr
h2 'Client A'
p 'Lorem ipsum dolor...'
p do
text 'Normal text'
link 'Link text', 'http://www.google.com/', class: 'special
text 'More normal text'
end
img image_url('example.png'), width: 300, height: 200, align: 'right'
br
table data, border: 1 do
cell_style rows(0), background_color: '3366cc', color: 'ffffff', bold: true
end
page
p 'This is an bulleted list'
ul do
li do
strong 'Item 1'
text 'More text'
end
li 'Item 2'
end
...
end
See the Caracal library for more details.
Contributing
- Fork it ( https://github.com/ibpinc/caracal-rails/fork )
- 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 a new Pull Request
Why is It Called Caracal?
Because my son likes caracals. :)
Inspiration
A tip of the hat to the wonderful PDF generation libraries Prawn and Prawnto.
License
Copyright (c) 2014 Trade Informatics, Inc