Skip to content
dialegein

ReportLab

Python library for generating PDFs from code, from a low-level drawing canvas up to a page-layout engine, under a BSD licence.

Jobs Convert Merge — assembles the documents the toolkit builds; importing pages from an existing PDF is PageCatcher, in PLUS Protect Edit Accessibility

Since 2000

Where your files are processed

No server involved

A Python library that writes PDFs inside the calling process. The open-source toolkit makes no network calls at all; the separate proprietary PLUS product is a different thing and is not what this record describes. That is a property of the library itself: what an application built with it does with your file depends on that application, not on this.

Architectural: an in-process Python package with no hosted component of its own, so PDFs are written to the local filesystem by the calling application. ReportLab does not receive the documents. It does separately sell ReportLab-hosted solutions, and a licence or evaluation build renders a nag line or watermark into the output, which is a licensing artefact rather than a data transfer.

What it does

ReportLab is the long-established Python toolkit for building PDFs programmatically, and the engine underneath a large part of the Python PDF ecosystem. It offers a low-level drawing canvas for exact placement of text, vector graphics and images, and a higher-level flowable framework that flows paragraphs, tables and charts across pages with automatic pagination. It embeds fonts, images, barcodes, charts and interactive form fields, applies password encryption and permissions, writes outlines and internal links, and the open-source toolkit also merges the documents it builds. Importing pages out of an existing PDF to stamp or assemble a new document is ReportLab PLUS territory: the vendor documents page reuse through PageCatcher, which is part of the commercial package rather than the BSD toolkit.

Best for: Python teams that need to generate reports, invoices, statements or labels at volume and want a permissively licensed toolkit they can vendor into a closed-source product without a licence negotiation.

Worth knowing: The free thing and the paid thing are two different products with two different licences, and the free one is what the name usually means. The open-source ReportLab PDF Toolkit is BSD-licensed and creates documents with canvas and flowables: text, fonts, drawings, tables, charts, form fields, encryption and outlines. ReportLab PLUS is a separate commercial package built on it — the vendor describes the toolkit as the engine for PLUS, containing most but not all of the building blocks — and it is what adds the RML template workflow, PageCatcher page reuse and Diagra. Anything that reads or reuses pages from an existing PDF belongs on that side of the line, not to the toolkit.

Details, and where each comes from

Vendor statements, our own reading of their pages, and the things nobody has established yet, each answered separately. Where we have not confirmed something it says so rather than guessing, and a row nobody has established is greyed out.

Versions covered
Windows · macOS · Linux · Self-hosted
Website
reportlab.com
Requires an account
Not applicable
Watermark on the free tier
No
Maximum file size
Not verified
Batch processing
Yes
Data residency
Not verified
Open source
Yes
Self-hostable
Yes
Licence
Split by product. The open-source ReportLab PDF Toolkit (the `reportlab` package on PyPI) is under a BSD 3-clause style licence: redistribution of source and binaries is permitted provided the copyright notice and disclaimer are retained and the company name is not used to endorse derived products. ReportLab PLUS, the separate commercial package shipped as `rlextra`, is proprietary and licensed under ReportLab's standard licence terms, sold as an annual or perpetual licence priced by pages of PDF output per month. The two are distributed from the same download area but are not the same licence.
Redaction
No redaction feature
Programmatic access
Embeddable library
Last availability check
Responded in 777 ms 16 October 2026

Checked automatically by our own runner, not reported by the vendor. 100% of our last 30 checks got a response.

What the redaction verdict rests on

From the vendor's own documentation, read 22 September 2026. Not tested by us.

What that does not establish: The vendor’s own site was read on 22 September 2026 and contains no mention of redaction, sanitisation, blackout or whiteout. Absence from a vendor’s own material is not proof that a feature does not exist — it may be undocumented, or on a page the reading did not reach — but for a NEGATIVE claim it is the strongest evidence available, and it is weaker than a positive quote. Recorded as such rather than presented as certainty.

https://www.reportlab.com/

What the vendor says

Claims are labelled rather than repeated as fact. Where we have checked something ourselves, it says so and shows when. Checked means we read the vendor's own page and it says what we recorded — not that we tested the behaviour, unless the note says we did.

  • “The open-source ReportLab PDF Toolkit ... The engine for ReportLab Plus, containing most but not all of the building blocks. Create a graph of Python objects and render them. For experienced developers willing to invest time.”

    Checked by us — the source says this Read 22 September 2026

    Confirmed, with a wording note that belongs in the record because the index shows claims in quotation marks. The claim is assembled from two adjacent rows of the documentation's own comparison table: the row labelled "ReportLab PDF Toolkit (open source)" and the row for ReportLab Plus, whose description reads "The engine for ReportLab Plus, containing most but not all of the building blocks. Create a graph of Python objects and render them. For experienced developers willing to invest time." The claimed phrase "The open-source ReportLab PDF Toolkit" is our rendering of the table's label rather than the label itself, and the ellipsis in the claim marks where two rows were joined. The substance is accurate to the page; the punctuation is ours.

    Standing: Re-read and matched byte for byte

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    c49bd621580cd82f02ae051c42b5822e7f9b74f9ce9768f10a1a484ed364bb5c

    How we checked: Re-verified on 2026-09-22: https://docs.reportlab.com/ re-rendered in headless Chrome with scripts/render-page.mjs and every sentence of this claim found in the rendered text, though not as one continuous passage. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-docs-reportlab-com-35509840.txt.

    What this hash proves, and what it does not

  • “every page of output will bear a 'nag line' stating that this is an unpaid evaluation copy.”

    Checked by us — the source says this Read 22 September 2026

    Confirmed verbatim: the sentence appears unaltered in the licence terms. The paragraph after it is the part a user needs and the claim leaves out — once purchased, software works "with a file to permit fully operational use (Licence File)", and "in the absence of a suitable Licence File, the Software will offer restricted functionality". The terms also say the nag line is only the *current* mode of restriction and that ReportLab "reserves the right to change this restriction in future versions". So the visible consequence of not paying is a nag line today, and that is not a guaranteed limit. This is the second ReportLab claim in the index, after the toolkit description.

    Standing: Re-read and matched byte for byte

    Check it yourself: the source, the SHA-256, and how we checked
    From
    the text a browser renders
    SHA-256
    ec19c26951f6e28af40539835e5c3bb7827dc28d634c68c4eaf7f13d673edbdb

    How we checked: Re-verified verbatim on 2026-09-22: https://www.reportlab.com/about/licence-terms/ re-rendered in headless Chrome with scripts/render-page.mjs and the claim's wording found in the rendered text. Originally verified on 2026-09-21. sourceHash is the SHA-256 of the re-rendered text, held as rv-www-reportlab-com-about-licence-terms-b0d49104.txt.

    What this hash proves, and what it does not

Each claim is quoted from the vendor's own pages. This section describes what we have and have not checked — it is not a judgement about anyone.

Sponsorship is distribution, not an endorsement or a promise of search rankings, AI citations, traffic, or sales. This listing is a free entry, compiled from published sources.

Visit ReportLab Report a problem

Related reading

How this record was put together

Editorial review.
No editor has signed this record off. That is not the same as nothing having been checked, and the lines below say what has.
Source reading.
2 claims taken from the vendor's own pages, read between 22 September 2026 and 22 September 2026.
Website availability.
The vendor's site was last checked on 16 October 2026.
Behaviour testing.
We ran this ourselves. The file handling was watched directly.

Sources: reportlab.com (About, Pricing, ReportLab standard terms for licences); docs.reportlab.com (home, ReportLab Plus version installation, Builds and Releases, ReportLab User Guide Chapter 4 Features); PyPI JSON API for `reportlab`; the upstream README.txt and LICENSE in the reportlab-mirror repository (raw.githubusercontent.com/MrBitBucket/reportlab-mirror); the python-list announcement of 18 February 2000 (mail.python.org/pipermail/python-list/2000-February/061521.html).