Skip to content

maxkurze1/resignation

Repository files navigation

re[sign]ation

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

Documentation

The documentation of this tool can be found here

Why

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.

Features

Description

Customizable Visual Signatures

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.

Description


Visual Field Selection

Choose from existing signature fields through a visual interface and decide which one should be filled.



Description


Interactive Signature Placement

Create and position signature fields through an interactive view, specifying exactly where each signature should appear.


How to use

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.

Nix Flakes

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"

PyPI

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/resignation

Afterward, 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"

Local Development

For local development it is recommended to fetch all dependencies through nix. This can be done rather easily by running:

nix develop

Once 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

About

re[sign]ation: A script to create digital signatures

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors