This tool is intended to provide a little convenience for creating digitally signed PDFs on Linux. For that it is based on a couple of existing tools including:
- pyHanko for the creation of the digital/cryptographic part of the signature
- Typst generation of the visual part
The documentation of this tool can be found here
Most existing tools (at least the dozen I tried) were lacking in one or the other regard. Either the signatures visual appearance couldn't be configured, or they completely invalidated all existing signatures when drawing a new one.
Additionally, most of them have been rather inconvenient to use.
Define how signatures should look by using a flexible module system. You can create and host your own
appearance templates, or download existing ones, to adapt the signing experience to your needs.
Choose from existing signature fields through a visual interface and decide which one should be filled.
Create and position signature fields through an interactive view, specifying exactly where
each signature should appear.
Before using resignation you need to install either typst and python
or nix and enable nix flakes.
After installing these dependencies you have multiple options.
For use with nix, resignation provides a flake that can be run directly through nix:
nix run github:maxkurze1/resignation -- \
--input document.pdf \
--output document-signed.pdf \
--template "github:maxkurze1/resignation?dir=templates/logo"To install the script via pip execute the following command: (Use a venv if you don't want to install it globally)
pip install git+https://github.com/maxkurze1/resignationAfterward, you should be able to use the resignation command
on its own:
resignation \
--input document.pdf \
--output document-signed.pdf \
--template "github:maxkurze1/resignation?dir=templates/logo"For local development it is recommended to fetch all dependencies through nix. This can be done rather easily by running:
nix developOnce all dependencies are in place the script can be run locally as a python module:
# go into the project root first
python -m resignation.resignation --input some/local/test.pdf

