Skip to content
/ rapport Public

Rapport aims to provide a robust set of modules to generate HTML reports that both looks good in the browser and when being printed.

License

Notifications You must be signed in to change notification settings

ricn/rapport

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Elixir CI Hex.pm Coverage Status

Installation

The package can be installed by adding rapport to your list of dependencies in mix.exs:

def deps do
  [
    {:rapport, "~> 0.7"}
  ]
end

Notable features

  • Specify paper size for the report
  • Specify rotation for the report
  • Image helpers
  • Font helpers
  • Page numbering
  • Add custom styling & even Javascript
  • Barcodes

Hello world

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!".

See example here

More examples

If you want to see how the examples has been created, you can look at the example_test.exs file in the test folder.

Phoenix integration

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

Upcoming features

  • Charts
  • PDF conversion

Credits

The following people have contributed ideas, documentation, or code to Rapport:

  • Richard Nyström

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

About

Rapport aims to provide a robust set of modules to generate HTML reports that both looks good in the browser and when being printed.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published