{"id":21660740,"url":"https://github.com/schorschii/simple-signer","last_synced_at":"2026-03-11T08:03:07.073Z","repository":{"id":39415428,"uuid":"366384982","full_name":"schorschii/Simple-Signer","owner":"schorschii","description":"Sign and certify PDF files on Linux with optional visual stamp using a .p12/.pfx certificate file","archived":false,"fork":false,"pushed_at":"2024-08-07T12:16:17.000Z","size":112,"stargazers_count":43,"open_issues_count":2,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-08-07T14:49:57.915Z","etag":null,"topics":["certificate","certify","p12","pdf","sign","signature"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/schorschii.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["schorschii"],"liberapay":"schorschii","custom":["https://www.paypal.me/schorschii"]}},"created_at":"2021-05-11T13:06:28.000Z","updated_at":"2024-08-07T12:16:21.000Z","dependencies_parsed_at":"2024-01-26T11:40:11.029Z","dependency_job_id":"bfe5019d-c694-4374-8796-6fb9b9ecdf10","html_url":"https://github.com/schorschii/Simple-Signer","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FSimple-Signer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FSimple-Signer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FSimple-Signer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/schorschii%2FSimple-Signer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/schorschii","download_url":"https://codeload.github.com/schorschii/Simple-Signer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230520392,"owners_count":18238948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["certificate","certify","p12","pdf","sign","signature"],"created_at":"2024-11-25T09:38:33.693Z","updated_at":"2025-10-19T20:35:57.288Z","avatar_url":"https://github.com/schorschii.png","language":"Python","funding_links":["https://github.com/sponsors/schorschii","https://liberapay.com/schorschii","https://www.paypal.me/schorschii"],"categories":[],"sub_categories":[],"readme":"# Simple Signer\nSimple Signer allows you to sign PDF files using a simple GUI.\n\n![Screenshot](.github/screenshot.png)\n\n## But why?\nOn current Ubuntu versions, it is not possible to import personal certificates into the certificate management application called \"Seahorse\" (see [here](https://gitlab.gnome.org/GNOME/seahorse/-/issues/232)). This prevents LibreOffice from signing PDF documents. And also Okular did not have the signing feature at the time I started the development. That's why I created this workaround.\n\nAs additional features, Simple Signer allows you to certify documents (which, in contrast to signing, locks the document so no further signature is allowed) and draw stamps corresponding to your signature as known from the Adobe Reader. Simple Signer can also use Elliptic Curve certificates in constrast to recent Okular versions.\n\n## Installation\n### Debian Package\nYou can download and install the `.deb` package from the [latest release](https://github.com/schorschii/Simple-Signer/releases) on GitHub.\n\nNote: if you are on Debian 12, install `python3-oscrypto` via apt before installing the Simple Signer Debian package (the PIP oscrypto version is buggy).\n\n### Manual Installation\n```\n# install system-wide dependencies from Debian/Ubuntu repos\napt install python3-pip python3-pyqt5 python3-pil python3-venv swig\n\n# if you are on Debian 12, install this too\napt install python3-oscrypto\n\n# create a new Python venv dir\npython3 -m venv --system-site-packages venv\n\n# install it with requirements which are not available in Debian/Ubuntu repos in the venv\nvenv/bin/pip3 install .\n\n# start manually\nvenv/bin/simple-signer\n\n# install launcher shortcut\ncp assets/simple-signer.desktop /usr/local/share/applications\nsudo update-desktop-database\n```\n\n### Dark Mode\nQt applications automatically adopt the system theme on Linux Mint (Cinnamon desktop) due to the preinstalled `qt5-gtk2-platformtheme`. For plain Ubuntu/Debian using the Gnome desktop, you need to install this package and set the environment variable `QT_QPA_PLATFORMTHEME=gtk2` before starting the app. Alternatively, you can use the package `qgnomeplatform-qt5` with the environment variable `QT_QPA_PLATFORMTHEME=gnome` (only on newer Ubuntu versions).\n\n## Usage\n- Start the script and choose PDF and cert file using the buttons in the GUI.\n\nor\n\n- Right-click on a PDF file in your file manager -\u003e \"Open With\" -\u003e \"Simple Signer\".\n\nthen\n\n- Enter the path to your certificate file and your certificate's passphrase, then click:\n  - **Sign**: allows multiple users to place their signature\n  - **Certify**: places your signature and locks the document - after that, no further signature can be added\n  - **Draw Stamp**: you can optionally place a visual stamp on the document which is linked to your signature\n\n## Stamp Manifest File\nSimple Signer allows to load a stamp configuration file (extension `.stampinfo` with JSON content), which contains the position and size of the stamp to draw. This feature is intended for visually impaired people who cannot draw the stamp rect themselves. Another person can create this stamp configuration file in advance, so they can sign documents of a certain type with without further help. The resulting stamp config is shown on the command line when drawing the stamp rect manually. This config can then simply be copied into a `.stampinfo` file for further use.\n\nExample `.stampinfo` file:\n```\n{\"rect\":[216.84396666666666, 273.77105369127514, 319.76990476190474, 312.738466442953], \"page\":0}\n```\n\n## Advanced Usage / Signature Customization\nYou can add the following (additional) settings to the config file `~/.config/Simple-Signer/settings.ini`:\n```\n[settings]\ncert-path = /path/to/my/cert.p12\nstamp-path = \ndraw-stamp = 1\n\nsignature-contact = Schorschii\nsignature-location = Sieber Systems HQ\nsignature-reason = Weil's geht!\nstamp-background = 255,255,255\nstamp-outline = 255,0,0\nstamp-border = 2\nstamp-text = Digitally Signed by $SUBJECT_CN$\\n$SUBJECT_EMAIL$\\n$TIMESTAMP$\n```\n\n## Development\n### I18n\n```\n# 1. create translation files from code\npylupdate5 simple-signer.py -ts lang/de.ts\n\n# 2. use Qt Linguist to translate the file\n\n# 3.a. compile translation files for usage\nlrelease lang/*.ts\n# 3.b. or use make to compile all\nmake\n```\n\n### Compiling (on Windows)\nCreate a venv as described in \"Manual Installation\", install Simple Signer and PyInstaller into the venv, then you can build the executable.\n```\npython3 -m venv venv\nvenv\\Scripts\\pip install . pyinstaller\nvenv\\Scripts\\pyinstaller.exe simple-signer.windows.spec\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschorschii%2Fsimple-signer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fschorschii%2Fsimple-signer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fschorschii%2Fsimple-signer/lists"}