Skip to main content

The ReportLab Toolkit (Enhanced Fork)

Project description

reportlab-enhanced

中文

An enhanced fork of ReportLab — the open-source Python library for generating PDF documents, charts, and vector graphics.

Features

  • Generate rich PDF documents with text, images, tables, and charts
  • High-level layout engine (Platypus) with flowables, frames, and page templates
  • Low-level Canvas API for direct PDF drawing operations
  • Charts and graphics with SVG/PS/bitmap rendering support
  • TrueType and Type1 font handling
  • Enhanced: TrueType font fallback support for missing glyphs
  • Pure Python (no C extensions required since v4.0)
  • Python >= 3.9

Enhancements over upstream

This fork builds on ReportLab 4.x with additional features:

  • TTFont Fallback: Automatic font fallback for missing glyphs in TrueType fonts, enabled by default
  • Active development with improvements to font handling and CJK support

See CHANGES.md for the full changelog.

Installation

pip install reportlab-enhanced

For development:

git clone https://github.com/selcarpa/reportlab_enhanced.git
cd reportlab-enhanced
pip install -e .

Optional dependencies

pip install reportlab-enhanced[accel]      # rl_accel acceleration
pip install reportlab-enhanced[renderpm]   # rl_renderPM bitmap rendering
pip install reportlab-enhanced[pycairo]    # Cairo-based rendering
pip install reportlab-enhanced[bidi]       # Bidirectional text support
pip install reportlab-enhanced[shaping]    # HarfBuzz text shaping

Quick Start

from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas

c = canvas.Canvas("hello.pdf", pagesize=A4)
c.drawString(100, 750, "Hello, reportlab-enhanced!")
c.save()

For the high-level Platypus API:

from reportlab.lib.pagesizes import A4
from reportlab.platypus import SimpleDocTemplate, Paragraph
from reportlab.lib.styles import getSampleStyleSheet

doc = SimpleDocTemplate("doc.pdf", pagesize=A4)
styles = getSampleStyleSheet()
story = [Paragraph("Hello, reportlab-enhanced!", styles["Title"])]
doc.build(story)

Documentation

The original ReportLab documentation is available at docs.reportlab.com.

To build the included PDF manuals:

cd docs && python genAll.py

This generates three PDF references in the docs/ directory.

Development

This project extensively uses vibe coding with Claude Code (Anthropic Claude) as a development partner for code generation, refactoring, and documentation.

Running tests

python setup.py tests-preinstall
# or
cd tests && python runAll.py

Contributing

Contributions are welcome! Please open an issue or pull request on GitHub.

Acknowledgements

This project is a fork of ReportLab by ReportLab Inc., originally created by Andy Robinson, Robin Becker, and the ReportLab team. The upstream project has been developed since 2000 and provides the foundation for this enhanced version.

License

BSD License. See LICENSE for details.

  • Copyright (c) 2025-2026, selcarpa
  • Copyright (c) 2000-2024, ReportLab Inc.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reportlab_enhanced-0.1.1.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reportlab_enhanced-0.1.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file reportlab_enhanced-0.1.1.tar.gz.

File metadata

  • Download URL: reportlab_enhanced-0.1.1.tar.gz
  • Upload date:
  • Size: 2.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for reportlab_enhanced-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a7349676460a8f6d1016d3fa2c42e4ab77e258eac85c547f1173f1229005ac16
MD5 1b5ad4a94642b57794a8f6c399c17477
BLAKE2b-256 95bf2f3a7fce9ef3a90634fefc8a202e7b717fd6450bdee924fc7067a433748a

See more details on using hashes here.

Provenance

The following attestation bundles were made for reportlab_enhanced-0.1.1.tar.gz:

Publisher: release.yml on selcarpa/reportlab_enhanced

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reportlab_enhanced-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for reportlab_enhanced-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 40778874657cb94552102f902f68e53280a160a74cde1303afae704366f0fbc6
MD5 27eb6b8b50d8857d2f1955ee5a0cfafd
BLAKE2b-256 9cfe71d408ecd7cd684e39e3314560b123b138f060c484af0b49986206cfa2b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for reportlab_enhanced-0.1.1-py3-none-any.whl:

Publisher: release.yml on selcarpa/reportlab_enhanced

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page