PDF helpers for the work at CPI
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

81 lines
2.1 KiB

PDF helpers for the work at CPI
===============================
6 years ago
This package provides some cli commands:
- `nameplates` generate a pdf with nameplates
- `addruler` adds a blue ruler to a pdf
And a module to assist with filling out pdf forms: `pdftools.formfill`
6 years ago
nameplates (cli)
----------------
6 years ago
Usage: nameplates [OPTIONS] ATTENDEES [LOGO]
creates a pdf with name plate cards
The attendees file should be a tab separated text file with no headers.
Put the company name in the first column, the given name in the second and
the last name in the third column, e.g:
Hochimin Enterprizes \t Jane \t Doe \n
The positioning of the optional logo file can be controlled with the size
and adjustment options.
Options:
-s, --size INTEGER [default: (10 mm)]
-y, --adjust_y INTEGER [default: ( 0 mm)]
-x, --adjust_x INTEGER [default: ( 0 mm)]
--help Show this message and exit.
addruler (cli)
--------------
6 years ago
Usage: addruler [OPTIONS] PDF
adds a blue ruler overlay to a pdf file
Options:
--help Show this message and exit.
formfill (module)
-----------------
The formfill module helps filling out pdf forms with other data. But there is
no command line interface, you have to create a function on where to position
what on the form.
The function requires some Reportlab knowledge. An example:
from pdftools.formfill import fill
from reportlab.lib.units import mm
# `parse_file` is an exercise to the reader
attendees = parse_file("teilnehmertabelle.txt")
# function defining where to draw what.
def custom_function(canvas, item):
# one item consists of three things
company, address, name = item
canvas.setFont("Helvetica", 11)
canvas.drawString( 35*mm, 204*mm, f"{company}, {address}")
canvas.setFont("Helvetica-Bold", 11)
canvas.drawString( 35*mm, 169*mm, name)
canvas.drawString( 35*mm, 82*mm, "19.02.2019")
# "form.pdf" should be the path to the form file
fill("form.pdf", attendees, custom_function)