signer is a CLI tool to label certificates quickly and efficiently. You need to provide it with three inputs:
- a CSV file with the names of certificate recipients;
- the PNG file of the certificate template including any signatures added by representatives of the endorsing organisations;
- the path to a truetype font (
.ttf) or open type font (.otf) file of the font to be used to label the certificates.
- No need for an internet connection.
- It's quick and efficient.
- Avoid the risk of exposing the recipients' personal information on an online platform.
- No limits on how many certificates you can sign. Most online platforms have a paltry free tier.
Install signer using the following command in a virtual environment:
pip install git+https://github.com/sci2pro/signerPresently, there are two commands:
signer labelwhich labels a template with names provided from a file.signer viewwhich displays a template with an optional grid to select where on the template the text will need to appear. Details on each is provided below but you can view the help using:
signer --help
usage: signer [-h] {label,view} ...
positional arguments:
{label,view}
label Label image
view Image viewer
options:
-h, --help show this help message and exitGiven a template file, we would like to label it using a list of names provided in a file. This assumes that you know where in the template the text will be placed. If you need to locate the writing position on the template then see the Viewing a template section below.
signer label -n names.csv -t templates/template.png -F fonts/arial.ttf -S 60 -O output_dirwhere
-nis the name of a CSV file with a column of names;-tis the path to the template file, a PNG image;-Fis the name the font to use and should be a.ttfor.otf;-Sis the font size;-Ois the name of the directory into which to write the labeled documents.
Below is an example of a labelled template
To view the template with an overlaid calibration grid enter:
signer view --show-grid templates/template.png
Clicking on any point on the displayed template will capture the coordinates of the labelling position into a file called name_coords.txt (as displayed).

