rtflite 1.0.0: Production-Ready Clinical TLFs in Python

[This article was first published on pharmaverse blog, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

We are thrilled to announce the release of {rtflite} 1.0.0, marking a significant milestone in bringing production-ready TLF generation capabilities in RTF format to Python for clinical trial reporting. This major release represents our commitment to providing the pharmaceutical industry with robust, reliable tools for creating tables, listings, and figures (TLFs) in RTF format.

What is rtflite?

{rtflite} is a Python package designed specifically for generating TLFs in RTF format for clinical trial reporting. Inspired by the {r2rtf} it provides a programmatic interface to create highly customized TLFs that meet regulatory submission requirements. When used together with pkglite for Python, rtflite bridges the gap between Python’s data science ecosystem and the specialized requirements of clinical trial reporting and submission.

Major enhancements in rtflite 1.0.0

Pagination capabilities

With the page_by, group_by, and subline_by features in RTFBody introduced in rtflite 1.0.0, we can efficiently create paginated TLFs (examples).

Embedding figures

With the RTFFigure feature introduced in rtflite 1.0.0, we can embed multiple figures with titles, footnotes, and data sources (examples).

Table combination

RTFDocument now supports a list of tables. This allows users to combine multiple tables to create advanced layouts (examples).

Getting started

Please check out the rtflite quick start guide.

Acknowledgments

We acknowledge the pharmaverse community for feedback and contributions, the r2rtf team for architectural inspiration, and the uv project for simplifying Python environment management. uv is a fast, Rust-based tool that unifies dependency resolution, packaging, and isolated environments which helped saving our time in building, testing, and publishing Python packages. We also appreciate Claude Code for accelerating our AI-assisted development workflow. For project architecture, coding standards, and shared workflows, see our CLAUDE.md and contributing guidelines.

Disclaimer

This blog contains opinions that are of the authors alone and do not necessarily reflect the strategy of their respective organizations.

Last updated

2025-08-13 17:00:08.369419

Details

Reuse

Citation

BibTeX citation:
@online{zhang2025,
  author = {Zhang, Yilong and Xiao, Nan},
  title = {Rtflite 1.0.0: {Production-Ready} {Clinical} {TLFs} in
    {Python}},
  date = {2025-08-13},
  url = {https://pharmaverse.github.io/blog/posts/2025-08-13_rtflite_1.0.0/rtflite.html},
  langid = {en}
}
For attribution, please cite this work as:
Zhang, Yilong, and Nan Xiao. 2025. “Rtflite 1.0.0: Production-Ready Clinical TLFs in Python.” August 13, 2025. https://pharmaverse.github.io/blog/posts/2025-08-13_rtflite_1.0.0/rtflite.html.
To leave a comment for the author, please follow the link and comment on their blog: pharmaverse blog.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)