Rapport (rapport v0.7.2)
Rapport aims to provide a robust set of modules to generate HTML reports that both looks good in the browser and when being printed.
Summary
Functions
Generates HTML for the report.
See Rapport.Page.generate_pages/2
.
See Rapport.Page.generate_pages/3
.
Creates a new report.
Convenient function to save a report to file.
Sets the padding (in millimeters) for the report.
Sets the paper size for the report.
Sets the rotation for the report.
Sets the title for a report. This is the title of the generated html report.
Functions
add_page(report, page)
@spec add_page(Rapport.Report.t(), Rapport.Page.t()) :: Rapport.Report.t()
add_page(report, page_template, fields)
@spec add_page(Rapport.Report.t(), String.t(), map()) :: Rapport.Report.t()
add_page_numbers(report)
@spec add_page_numbers(Rapport.Report.t()) :: Rapport.Report.t()
add_page_numbers(report, page_number_position)
@spec add_page_numbers(Rapport.Report.t(), atom()) :: Rapport.Report.t()
add_page_numbers(report, page_number_position, formatter)
@spec add_page_numbers(Rapport.Report.t(), atom(), any()) :: Rapport.Report.t()
add_pages(report, pages)
@spec add_pages(Rapport.Report.t(), [Rapport.Page.t()]) :: Rapport.Report.t()
generate_html(report)
@spec generate_html(Rapport.Report.t()) :: String.t()
Generates HTML for the report.
Options
report
- TheRapport.Report
that you want to generate to HTML.
generate_pages(pages, padding)
@spec generate_pages([Rapport.Page.t()], Rapport.Report.padding()) :: String.t()
See Rapport.Page.generate_pages/2
.
generate_pages(pages, padding, page_number_opts)
@spec generate_pages( [Rapport.Page.t()], Rapport.Report.padding(), Rapport.PageNumbering.t() ) :: String.t()
See Rapport.Page.generate_pages/3
.
new(template \\ "", fields \\ %{})
@spec new(String.t(), map()) :: Rapport.Report.t()
Creates a new report.
An optional EEx template can be passed to the new
function. This template
is meant to hold global things like styles, fonts etc that can be used on all
pages thats added to the report.
The new
function sets the default paper size to :A4
, the rotation
to :portrait
, the page padding to 10mm and the report title to "Report".
Those defaults can easily be overridden by using set_paper_size/2
,
set_rotation/2
, set_padding/2
and set_title/2
.
Returns a Rapport.Report
struct.
Options
template
- An optional EEx template for the report.fields
- A map with fields to assign to the EEx report template
save_to_file(report, file_path)
@spec save_to_file(Rapport.Report.t(), binary()) :: :ok
Convenient function to save a report to file.
Options
report
- TheRapport.Report
that you want to save to a HTML filefile_path
- The path to the HTML file you want to save.
set_padding(report, padding)
@spec set_padding(Rapport.Report.t(), Rapport.Report.padding()) :: Rapport.Report.t()
Sets the padding (in millimeters) for the report.
It expects the padding to be an integer and must be 10
, 15
, 20
or 25
mm,
otherwise ArgumentError
will be raised.
Options
report
- TheRapport.Report
that you want set the padding forrotation
- The padding.
set_paper_size(report, paper_size)
@spec set_paper_size( Rapport.Report.t(), Rapport.Report.paper_size() ) :: Rapport.Report.t()
Sets the paper size for the report.
It expects the paper size to be an atom and must be
:A4
, :A3
, :A5
, :half_letter
, :letter
, :legal
, :junior_legal
or :ledger
, otherwise ArgumentError
will be raised.
Options
report
- TheRapport.Report
that you want set the paper size forpaper_size
- The paper size.
set_rotation(report, rotation)
@spec set_rotation(Rapport.Report.t(), Rapport.Report.rotation()) :: Rapport.Report.t()
Sets the rotation for the report.
It expects the rotation to an atom and must be :portrait
or :landscape
,
otherwise ArgumentError
will be raised.
Options
-
report
- TheRapport.Report
that you want set the rotation for -
rotation
- The rotation.
set_title(report, title)
@spec set_title(Rapport.Report.t(), String.t()) :: Rapport.Report.t()
Sets the title for a report. This is the title of the generated html report.
Options
report
- TheRapport.Report
you want to set the title for.title
- The new title