← Back to all sparks
R

reporter

ANALYTICS
Velocity2.5

Creates Statistical Reports

A clinical-report generator steadily trading automatic layout for user control.

clinical-reportingdocument-generationsas-migrationpaginationr-package
Current state
reporter produces paginated statistical reports in RTF, DOCX, PDF, HTML and text from R, aimed at the regulated clinical output that SAS PROC REPORT has traditionally produced. It is the most actively developed component of the r-sassy suite, shipping several releases a year, each a batch of layout capabilities plus pagination fixes. The dominant engineering problem across every release is page breaking, especially in DOCX.
Where it's heading
The direction is consistently toward exposing control over behaviour that was previously automatic: line breaks, page wrapping, page counts, title blocks and page breaks have all moved from fixed policy to user-settable options. Alongside that, the page header and footer have grown from a fixed structure into a layout region with column widths, centre columns and images. Pagination correctness remains the recurring cost of that flexibility, appearing in nearly every release.
Prediction
Expect further options carving out exceptions to automatic layout, and continued DOCX pagination fixes, which are the most frequently revisited area in this history.

Recent moves

  1. 26d ago

    report_options() centralises control over automatic layout

    Introduces report_options() as a single place to override behaviours that were previously fixed: inserting code directly into RTF and HTML, disabling automatic line breaks, setting lines per page, turning off page wrapping and automatic page breaks, and emitting titles as a paragraph rather than a table for editor compatibility. page_wrap and auto_page also reach create_table(). This is the clearest expression of the package's move from opinionated defaults to configurable ones.

    View source ↗
  2. 3mo ago

    Group cohesion and break labels added to define()

    Adds group_cohesion and break_label to define(), lets a stub row label be removed by passing NA, and fixes page numbering in titles and footnotes plus spanning header borders. The group-cohesion control is another instance of handing pagination decisions to the report author. DOCX page breaking is improved again, as in most releases here.

    View source ↗
  3. 6mo ago

    Page headers and footers gain column widths and images

    Turns the page header and footer into a layout region: column widths are settable, a zero width removes a column, a centre column is available, and header_image() and footer_image() insert images. A group_border option on define() and bold control on page_by() round it out. Extends the same principle as the surrounding releases from the report body to its margins.

    View source ↗
  4. 8mo ago

    EMF image import and a Courier default font

    Adds EMF import for RTF and DOCX, raises the maximum column width to five inches, improves stub indenting on wrapped lines, and fixes several PDF border and HTML underline problems. The default font on create_report() changes from fixed to Courier, which silently alters existing output unless font is set explicitly. Worth noting for anyone regenerating a validated report against this version.

    View source ↗
  5. 2y ago

    Dedupe, page-break and page-numbering fixes

    A pure fix release covering dedupe behaviour, page_by() formatting on plots, continuous table borders, early page breaks when appending content dynamically, RTF page numbers in titles, and show_cols overriding define(visible = FALSE). No new capability, but it touches most of the layout areas the feature releases had recently extended.

    View source ↗
  6. 2y ago

    Dedupe fix for non-unique values plus CRAN corrections

    Fixes dedupe on define() when values are not unique, together with corrections requested for CRAN. Routine maintenance with no user-facing addition.

    View source ↗