Skip to main content

zipreport

Very lightweight module for creating PDF reports with Python

Motivation

This library is meant to be a drop-in replacement for report generation I was doing with Filemaker Pro and operates under about the same principles as print layout on Filemaker Pro. You, the client, have a list of ordered records, which can be any subscriptable thing but in my example are dicts, and these are fed into a Document object you create and customize which establishes how fields in each record are formatted and laid out on the page, the formatting of page headers and footers, and summary headers and footers.

Example

In the example you can see how a basic report is customized. All formatting is contained in a Document object, draws Part objects in various parts of the document based on certain conditions. The page_header and page_footer parts are drawn at the top and bottom of each page.

Each record to be printed is displayed in a content_part:

content_part = Part(
    elements=[Element(x=0.,
                      y=0.,
                      width=72.,
                      height=18.,
                      content=FormattedText("N:$name", font_family='Futura', font_size=9.)),

              Element(x=96.,
                      y=0,
                      width=72.*4.,
                      height=4.*72.,
                      can_shrink=True,
                      content=FormattedText("$comment", font_family='Futura', font_size=9.)),
              Element(x=72. * 6, y=0., width=36, height=18,
                      content=FormattedText("$rn", font_family='Futura', font_size=9.,
                                            alignment='r'))],
    minimum_height=72.
)

A Part contains a list of Element objects which define a rectangle (positioned relative to the origin, the upper-left corner of the parent Part), and each element has a corresponding Content. Content objects contain specific style and content. The FormattedText content has a format string which can substitute values from a content object. For example above, the first element reades the 'name' key from the content object and substitutes it into the format string.

Under Contruction

This project is still under contruction but functions on a basic level.

Release files for zipreport 0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zipreport 0.1
File Size Uploaded
zipreport-0.1.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for zipreport 0.1
File Interpreter ABI Platform
zipreport-0.1-py3-none-any.whl Python 3 none any Details

Total release size: 13.5 kB

Release files / zipreport-0.1.tar.gz

Download URL zipreport-0.1.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a1be1f9446613e0a1c9747328ed65eee62e2f94b182c2110e5823938913e8fb8
BLAKE2b-256 checksum
How to use checksums
8d7fccd3b2e2e7a799678265aa3839a5a31e70ea9b54741fa4411ddd8e0a5514
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.4

Release files / zipreport-0.1-py3-none-any.whl

Download URL zipreport-0.1-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
004c2eedb091a68591ff22e84a790dd0e035007350c5058c70a215c8109fc65f
BLAKE2b-256 checksum
How to use checksums
e90a4f20f9477d2127d743f41e229841848402588f589aef0cbba5900abbc732
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.20.1 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.4

Release history Release notifications | RSS feed

This release

0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page