Rapport aims to provide a robust set of modules to generate HTML reports that both looks good in the browser and when being printed.
The package can be installed
by adding rapport
to your list of dependencies in mix.exs
:
def deps do
[
{:rapport, "~> 0.7"}
]
end
- Specify paper size for the report
- Specify rotation for the report
- Image helpers
- Font helpers
- Page numbering
- Add custom styling & even Javascript
- Barcodes
page_template = "<h1><%= @hello %></h1>"
html_report =
Rapport.new
|> Rapport.add_page(page_template, %{hello: "Hello world!"})
|> Rapport.save_to_file("/home/users/ricn/hello.html")
The snippet above generates a report containing only one page with a heading that says "Hello world!".
- Custom fonts and styling
- Invoice
- Page numbering
- List of people with cover page
- Barcodes
- More examples are coming...
If you want to see how the examples has been created, you can look at the example_test.exs
file in the test folder.
It's easy to Integrate Rapport with Phoenix. Just load the template as a module attribute, create the HTML for the report and send a response with the generated HTML:
defmodule ReportsWeb.ReportController do
use ReportsWeb, :controller
@page_template File.read!(Path.join(__DIR__, "../templates/report/hello.html.eex"))
def hello(conn, _params) do
html_report =
Rapport.new
|> Rapport.add_page(@page_template, %{hello: "Hello World!"})
|> Rapport.generate_html
conn
|> put_resp_content_type("text/html")
|> send_resp(200, html_report)
end
end
- Charts
- PDF conversion
The following people have contributed ideas, documentation, or code to Rapport:
- Richard Nyström
- 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