Rapport
Rapport aims to provide a robust set of modules to generate HTML reports that both looks good in the browser and when being printed.
Installation
The package can be installed
by adding rapport
to your list of dependencies in mix.exs
:
def deps do
[
{:rapport, "~> 0.4.0"}
]
end
Hello world
page_template = "<h1><%= @hello %></h1>"
html_report =
Rapport.new
|> Rapport.add_page(page_template, %{hello: "Hello world!"})
|> Rapport.generate_html
The snippet above generates a report containing only one page with a heading that says “Hello world!”.
Add styling and custom fonts to a report
report_template = """
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Tangerine">
<style>
h1 {
font-family: 'Tangerine', serif;
font-size: 48px;
text-shadow: 4px 4px 4px #aaa;
margin: 0;
}
</style>
"""
page_template = "<h1><%= @hello %></h1>"
html_report =
Rapport.new(report_template)
|> Rapport.add_page(page_template, %{hello: "Hello world!"})
|> Rapport.generate_html
The report template is injected in the HTML head section so you can bring in things like styles, fonts and JavaScript.
More advanced examples
- Invoice example
- List of people with cover page
- More examples are coming…
The examples are generated from example_test.exs
in the test folder if you want to see how they are created.
Credits
The following people have contributed ideas, documentation, or code to Librex:
- Richard Nyström
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