GithubHelp home page GithubHelp logo

edmaarcosta / rapport Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ricn/rapport

0.0 0.0 0.0 6.7 MB

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: MIT License

Elixir 81.37% HTML 13.67% CSS 4.96%

rapport's Introduction

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.

Build Status Hex.pm Inline docs Coverage Status

Installation

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

def deps do
  [
    {:rapport, "~> 0.6"}
  ]
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

rapport's People

Contributors

ricn avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.